美文网首页
和时间机器的再次斗争(释放 TimeMachine 占用的空间)

和时间机器的再次斗争(释放 TimeMachine 占用的空间)

作者: ingood | 来源:发表于2019-11-02 02:40 被阅读0次

我有一个 6T 的阵列用来备份 TimeMachine 和自己平时拍的照片,这两天导照片的时候,发现阵列满了。用 DaisyDisk 一看,TimeMachine 大概占了 700G 的隐藏空间。

image

为了保证能顺利导入照片,我决定冒险先将 TimeMachine 关闭,等今后硬盘扩容后再考虑开启备份。

其实,我的大部分重要文件都保存在阵列上,所以即便系统崩溃,问题也不是特别严重。

关于时间机器(TimeMachine),德哥曾经写过一篇文章《和时间机器的斗争,找回被封存的空间》,本文在原有基础上进行了精简和拓展。

关闭自动备份

如果你要停掉 TimeMachine 或删除某个快照,则可以将自动备份先关闭。

命令行模式

关闭自动备份

tmutil disable

停止当前备份进程

<pre spellcheck="false" class="" lang="sh" cid="n9" mdtype="fences" style="margin: 0px 0.15em; padding: 0.5em; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; overflow: visible; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 12px; line-height: 1.3em; break-inside: avoid; text-align: left; white-space: normal; background-color: rgb(249, 249, 249); width: inherit; border-radius: 3px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); color: rgb(119, 119, 119);">tmutil stopbackup</pre>

平时还是建议开启自动备份。

tmutil enable

图形化模式

打开时间机器的偏好设置,将自动备份取消。效果同命令行。

image

删除指定快照

命令行形式

macOS 也可以通过命令行删除指定的 TimeMachine 快照。

我们先找到快照备份地址,命令如下:

显示最近的快照

tmutil latestbackup

显示所有已完成的快照

tmutil listbackups

检查是否存在任何第三方快照

tmutil listlocalsnapshots /

显示示例如下:

<pre style="margin: 0.6em 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; background-color: rgb(255, 255, 255); font-family: Consolas, Inconsolata, Courier, monospace; font-size: 12px; line-height: 1.3em;">

Snapshot dates for all disks:2019-10-13-1711202019-10-13-2143242019-10-13-225244……

</pre>

输入删除命令,就可以删除指定的快照而不影响其他快照:

tmutil deletelocalsnapshots 2019-10-13-171120

图形化模式

打开 Finder,进入到你的备份目录,点击顶部菜单右上角的 TimeMachine 图标,选择进入时间机器,或者打开应用程序中的「时间机器」,就可以进入时间机器模式。

image

选择右侧边栏的备份时间,找到备份目录,找到需要删除的备份快照,点击操作,执行删除所有备份

image

手动批量删除 TimeMachine 备份

当我们已关闭了自动备份,想删除所有备份腾出空间时,我们可以采用手动批量方式进行强制删除。

显示当前系统的备份目录

tmutil machinedirectory

删除 Backups.backupdb 目录下所有备份

➜  sudo tmutil delete /Volumes/LaCie/Backups.backupdb

上述命令执行后提示如下:

……
Deleting: /Volumes/LaCie/Backups.backupdb/AdeMini/2019-10-12-233916
Deleted (1.0G): /Volumes/LaCie/Backups.backupdb/AdeMini/2019-10-12-233916
Total deleted: 1.3G

暴力删除 Backups.backupdb 备份

对于一些用tmutil deletelocalsnapshotstmutil delete删除失败的快照或备份文件,你也可以用如下命令进行暴力删除。在用rm进行暴力删除时,可能存在命令执行成功,空间却未释放的 bug。

<pre style="margin: 0.6em 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; background-color: rgb(255, 255, 255); font-family: Consolas, Inconsolata, Courier, monospace; font-size: 12px; line-height: 1.3em;">

sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass rm -rfv Backups.backupdb

</pre>

找回顽固的隐藏空间

您在执行删除命令时发生断电,或备份/删除 APFS 磁盘上的文件发生异常,可能存在数据块遗失、空间未正常释放等情况。

当你的系统存在大量的隐藏磁盘空间,你却通过du等命令无法找到时,很有可能就表示你的文件系统存在错误。

您可能需要使用较低级别的 fsck_apfs 命令来验证和修复卷。

命令行模式

先找到备份盘的文件系统名称:

df -h

再执行修复:

fsck_hfs -fy -x /dev/rdisk0s2

图形化模式

你也可以通过磁盘工具来进行修复,效果和命令行等同。

image

会提示如下信息,当显示操作成功时,即表示完成修复:

正在“LaCie”(disk0s2)上运行“急救”

正在修复文件系统。
宗卷已卸载。
正在执行 fsck_hfs -fy -x /dev/rdisk0s2
……
已成功修复宗卷“LaCie”。
文件系统检查退出代码为 0。
正在恢复发现为已卸载的原始状态。

操作成功。

终于,700G 的空间重新回来了。

另附:其他常用 tmutil 命令

打开/关闭本地快照

tmutil enablelocaltmutil disablelocal

分析快照目录

sudo tmutil calculatedrift /Volumes/LaCie/Backups.backupdb/AdeMini

显示/指定/删除备份目标

tmutil destinationinfo [-X]sudo tmutil setdestination /Volumes/LaCie/Backups.backupdb/AdeMinisudo tmutil removedestination destination_id

简单显示用法

tmutil help

相关文章

  • 和时间机器的再次斗争(释放 TimeMachine 占用的空间)

    我有一个 6T 的阵列用来备份 TimeMachine 和自己平时拍的照片,这两天导照片的时候,发现阵列满了。用 ...

  • 释放Xcode占用空间

    1、移除对旧设备的支持 影响:可重新生成;再连接旧设备调试时,会重新自动生成。路径:/Users/XXXX/Lib...

  • 01垃圾回收机制

    垃圾回收(Garbage Collection,GC) 垃圾回收就是释放垃圾占用的空间 内存的动态分配和垃圾回收,...

  • 释放Xcode占用的硬盘空间

    给经常面临磁盘已满的iOS开发者带来一点小帮助~ Xcode磁盘空间大清理 1、移除对旧设备的支持影响:可重新生成...

  • 释放xcode占用硬盘空间

    1、移除对旧设备的支持 影响:可重新生成;再连接旧设备调试时,会重新自动生成。我移除了4.3.2, 5.0, 5....

  • Java 垃圾回收机制

    垃圾回收(Garbage Collection,GC) 垃圾回收就是释放垃圾占用的空间,在Java中,什么...

  • 怎么彻底释放微信占用的空间

    每次过不了两月,微信就占满了手机空间,怎么清理掉呢。 首先卸载微信,然后用文件管理器删除根目录下的tencent、...

  • Centos 磁盘根目录100%问题

    阿里云ECS报警磁盘占用100% 登陆控制台查看 查看占用高的目录 清理不需要的文件,释放空间

  • 两种div隐藏和显示方式及区别

    方式1: 隐藏后仍占有页面空间,显示空白 设置样式: jquery修改: 方式2: 隐藏后释放占用的页面空间 设置...

  • Java 内存划分

    当程序运行时在内存中开辟空间 当程序完成结束后内存空间被释放,将不占用内存空间.

网友评论

      本文标题:和时间机器的再次斗争(释放 TimeMachine 占用的空间)

      本文链接:https://www.haomeiwen.com/subject/vhhcbctx.html