Mac 提示磁盘已满,但“访达”显示还有空间
安装器或更新提示空间不足,“访达”却说你还有很多空间。两边说的都是实话:它们读的是不同的数字。
一句话:macOS 把可清除空间(本地 Time Machine 快照、保留在本地的 iCloud 文件、部分缓存)算作可用空间,因为需要时它可以把这些移除。有些应用只看当前空闲的空间。用 df -h / 查看真正的空闲空间;要把可清除空间变成空闲空间,就精简本地快照并重启。
为什么会有两个数字?
应用询问空间时,macOS 会给出两个答案:
- 空闲:当前没有被任何文件占用的空间。
- 可用:空闲空间加上可清除空间;当有文件需要空间时,macOS 会自行移除可清除的内容。
在撰写本文的那台 Mac 上,同一块磁盘在同一时刻有 154.8 GB 空闲、368.7 GB 可用。“访达”显示的是较大的那种数字;先检查空闲空间的安装器可能只看到较小的那个。
怎样查看真正的空闲空间?
df -h /
diskutil info / | grep "Container Free Space"
两条命令显示的都是当前的空闲空间,不含可清除空间。df 使用二进制单位(Gi),所以同样的字节数,它显示的数字看起来比“访达”的小。
什么是可清除空间?
- 本地 Time Machine 快照:备份磁盘没有连接时保留在 Mac 上。用
tmutil listlocalsnapshots /列出它们。 - iCloud 云盘和“照片”中的文件:在打开“优化Mac储存空间”的情况下,iCloud 中也有一份的文件。
- 部分缓存:macOS 知道可以重新生成的缓存。
怎样把可清除空间变成空闲空间?
- 连接 Time Machine 磁盘并等一次备份完成,或者用
tmutil thinlocalsnapshots / 999999999999 4移除本地快照。 - 重启 Mac:临时文件和交换文件会被清掉。
- 再次运行
df -h /。如果空闲空间仍然太少,就移除不再需要的东西:“系统设置”›“通用”›“储存空间”会列出占用最多的类别。
为什么安装器还是说空间不足?
macOS 更新既需要放下载内容的空间,也需要准备更新所用的空间,比显示的下载大小要多。腾出空间,直到 df 显示的空闲数字明显更大为止,而不只是可用的那个数字。