![6471446a066e02516280e59daeb36e21.png](https://img-blog.csdnimg.cn/img_convert/6471446a066e02516280e59daeb36e21.png)
我有一个 6T 的阵列用来备份 TimeMachine 和自己平时拍的照片,这两天导照片的时候,发现阵列满了。用 DaisyDisk 一看,TimeMachine 大概占了 700G 的隐藏空间。
![7f605087a6bc43ea8e5f63a8d2215966.png](https://img-blog.csdnimg.cn/img_convert/7f605087a6bc43ea8e5f63a8d2215966.png)
为了保证能顺利导入照片,我决定冒险先将 TimeMachine 关闭,等今后硬盘扩容后再考虑开启备份。
其实,我的大部分重要文件都保存在阵列上,所以即便系统崩溃,问题也不是特别严重。
关于时间机器(TimeMachine),阿德曾经写过一篇文章《和时间机器的斗争,找回被封存的空间》,本文在原有基础上进行了精简和拓展。
关闭自动备份
如果你要停掉 TimeMachine 或删除某个快照,则可以将自动备份先关闭。
命令行模式
关闭
tmutil disable
停止当前备份进程
tmutil stopbackup
平时还是建议开启自动备份。
tmutil enable
图形化模式
打开时间机器的偏好设置,将自动备份取消。效果同命令行。
![f768b94e9ae5a1826d6b433339a741bb.png](https://img-blog.csdnimg.cn/img_convert/f768b94e9ae5a1826d6b433339a741bb.png)
删除指定快照
命令行形式
macOS 也可以通过命令行删除指定的 TimeMachine 快照。
我们先找到快照备份地址,命令如下:
显示最近的快照
tmutil latestbackup
显示所有已完成的快照
tmutil listbackups
检查是否存在任何第三方快照
tmutil listlocalsnapshots /
显示示例如下:
Snapshot dates for all disks:
2019-10-13-171120
2019-10-13-214324
2019-10-13-225244
……
输入删除命令,就可以删除指定的快照而不影响其他快照:
tmutil deletelocalsnapshots 2019-10-13-171120
图形化模式
打开 Finder,进入到你的备份目录,点击右上角的 TimeMachine 图标,选择进入时间机器
,或者打开应用程序中的「时间机器」,就可以进入时间机器模式。
![9d12b6c2be0c2cd72d3a63e8fbcb9483.png](https://img-blog.csdnimg.cn/img_convert/9d12b6c2be0c2cd72d3a63e8fbcb9483.png)
选择右侧边栏的备份时间,找到备份目录,找到需要删除的备份快照,点击操作
,执行删除所有备份
。
![7ca4e7e5271460415f33bb631af81e41.png](https://img-blog.csdnimg.cn/img_convert/7ca4e7e5271460415f33bb631af81e41.png)
手动批量删除 TimeMachine 备份
当我们已关闭了自动备份,想删除所有备份腾出空间时,我们可以采用手动批量方式进行强制删除。
显示当前系统的备份目录
![b274ac0974c8321d29a64b57393795a6.png](https://img-blog.csdnimg.cn/img_convert/b274ac0974c8321d29a64b57393795a6.png)
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
暴力删除指定快照
对于一些用tmutil deletelocalsnapshots
和tmutil delete
删除失败的快照或备份文件,你也可以用如下命令进行暴力删除。在用rm
进行暴力删除时,可能存在命令执行成功,空间却未释放的 bug。
sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass rm -rfv Backups.backupdb
找回顽固的隐藏空间
您在执行删除命令时发生断电,或备份/删除 APFS 磁盘上的文件发生异常,可能存在数据块遗失、空间未正常释放等情况。
当你的系统存在大量的隐藏磁盘空间,你却通过du
等命令无法找到时,很有可能就表示你的文件系统存在错误。
您可能需要使用较低级别的 fsck_apfs
命令行实用程序来从恢复模式下验证和修复卷。
命令行模式
先找到备份盘的文件系统名称:
df -h
再执行修复:
fsck_hfs -fy -x /dev/rdisk0s2
图形化模式
你也可以通过磁盘工具
来进行修复,效果和命令行等同。
![b274ac0974c8321d29a64b57393795a6.png](https://img-blog.csdnimg.cn/img_convert/b274ac0974c8321d29a64b57393795a6.png)
会提示如下信息,当显示操作成功时,即表示完成修复:
正在“LaCie”(disk0s2)上运行“急救”
正在修复文件系统。 宗卷已卸载。 正在执行 fsck_hfs -fy -x /dev/rdisk0s2 …… 已成功修复宗卷“LaCie”。 文件系统检查退出代码为 0。 正在恢复发现为已卸载的原始状态。
操作成功。
终于,700 多 G 的空间重新回来了。
另附:其他常用 tmutil 命令
打开/关闭本地快照
tmutil enablelocal
tmutil disablelocal
分析快照目录
sudo tmutil calculatedrift /Volumes/LaCie/Backups.backupdb/AdeMini
显示/指定/删除备份目标
tmutil destinationinfo [-X]
sudo tmutil setdestination /Volumes/LaCie/Backups.backupdb/AdeMini
sudo tmutil removedestination destination_id
简单显示用法
tmutil help