Mac 本地快照占用空间问题
Mac 本地快照占用空间问题
问题描述
在使用 Mac 的过程中,可能遇到如下问题:
当我们在 App Store 中下载一个比较大的软件时(如 Xcode,>6GB),弹出对话框提示说:“可用的磁盘空间不足,无法安装此产品”。
这时,我们点击菜单栏左上角”🍎”图标->“关于本机”->“储存空间”,或查看 Finder(访达)底部,发现显示的可用空间还有50GB,怎么可能“空间不足呢”?
带着疑问,我们又尝试使用其他方法查看磁盘剩余空间:如果你稍微了解 Unix/Linux,我想这时你的一个可能选择一定会是 “$ df -h
”,而如果你对前面这句话不甚了解或一无所知对话,你可以打开 macOS 系统自带的“磁盘工具”。
通过前者的做法你可能看到类似下面这样的结果:
1 | [Foo@Bar-MacBook:] 00:00 ~ !502 $ df -h |
不用解释(如果你真的是我说的前者,否则,请看下一段),你吃惊地发现系统可用空间只有13GB了😱!
而在“磁盘工具”中你可以看见图条展示的可用“实际可用”只有13.34G,下面还写有一条”可用: 50GB(36.66GB可清除)”。🤔
“可清除”? 什么意思? 怎么清除? 到头来还是不能用嘛!
解决方案
我知道你急于解决问题,而不是看我写问题分析的过程,所以,先贴出解决方案。若有兴趣,再请一瞥最后的问题分析。
- 打开终端(如果不知道可以
command+空格
聚焦搜索 “终端.app”),输入如下指令,回车:
1 | tmutil listlocalsnapshotdates |
然后,你会看到输出这样的东西:
1 | Snapshot dates for all disks: |
- 然后,再分别键入指令
tmutil deletelocalsnapshots <snapshot_date>
,把里面的 ”<snapshot_date>
“ 换成你在上面看到的某一行日期,回车后稍等,看到:
1 | Deleted local snapshot '2066-06-05-223724' |
嗯,删了一个某种东西,不管他是什么,反正可用可用磁盘空间会增大吧,故如法炮制,继续tmutil deletelocalsnapshots
干掉刚才 tmutil listlocalsnapshotdates
出来的所有日期。
完成后,稍等几分钟,再
df -h
或打开”磁盘工具”,你会发现,实际可用空间大了几十G,之前的可清除,被我们清除了😊!这时再尝试安装之前的软件就可以成功了。
问题解决💪!
P.S. 参考”文本式截图”😜:
1 | [foo@His-MacBook:] 06:06 ~ !501 $ tmutil listlocalsnapshotdates |
【注】我也经历过在上述操作后完全没解决问题的情况。而在我做完上述所有操作并且重启,再重复一遍这些操作后,It works.
问题分析
好的,问题解决了,但为什么可以这样操作呢?答案就藏在我们解决的办法里。
首先,“tmutil
” 是什么东西,通过 $ whatis tmutil
,我们可以知道,它的学名叫做“时间机器实用工具(Time Machine utility)”,又通过 $ man tmutil
,我们会明白,我们刚才是列出(listlocalsnapshotdates)并逐个删除(deletelocalsnapshots)了磁盘中储存的“时间机器本地快照(local Time Machine snapshots)”。
现在,我们知道了占用我们”可清除”的磁盘空间、还逍遥“访达”外、不为”关于本机“所知的真凶是谁了————万恶的“本地快照”。接下来,我们打算人肉搜索,揭开它丑陋的外衣!
大肆 Google 后,我们在 Apple 官网找到了一篇名为 “关于“时间机器”本地快照” 的文章,里面有记载:
您的“时间机器”备份磁盘有时可能不可用,因此“时间机器”还会将某些备份储存在您的 Mac 上。这些备份称作本地快照。
您无需考虑本地快照所占用的储存空间大小,因为它们不会占用诸如下载文件、拷贝文件或安装新软件等任务所需的空间。
您的 Mac 将快照占用的空间计为可用储存空间。即便如此,“时间机器”只会将快照储存在具有大量可用空间的磁盘上,并且会在快照过旧或其他内容需要空间时自动删除相应的快照。
emmm,这就可以解释问题了。这个自动的快照本来是不应该影响我们下载安装软件的,但可能它有点抽不听系统使唤了。
我们的解决方案是手动删除了那些快照,当然,读完了 Apple 的文档,我们知道也可以通过设置”取消选择’自动备份‘”来达到同样的效果。但!是!,这些快照平时感觉用处并不大,但偶尔或许还真有大用(备份这种东西就像保险一样,希望一辈子都用不到,但该买的还是应该买),所以 Apple 和我们都并不推荐取消这个功能,我们只要在不时之需到来时,懂得如何手动释放一些空间就好了。
That’s it.😉