启动磁盘快满了:空间到底去哪了
提示总在最不该来的时候弹出,正在导出视频、安装更新,或保存一份文档,macOS 就会打断过来,弹出 启动磁盘几乎已满。下意识会打开「下载」开始删,通常能腾出几个 GB,提示隔天又回来,什么也没搞明白。
macOS 在说的是,这个卷给交换空间、更新和临时文件留的工作余量已经不够了,那些还能回收但仍被钉住的空间,会跟真实文件一样算进占用,所以删看得见的文件,有时数字会动,有时完全不动。
短答: 先查清楚空间去哪了再动手删,用 df -h / 看可用空间,再打开 系统设置 > 通用 > 储存空间,如果删了一个大文件数字几乎不动,空间是被快照或可清除池钉住的,不是看得见的那些文件。
这条提示真正在说什么
macOS 会在启动卷上留一块储备,用来放虚拟内存交换空间、系统更新时的安装暂存、应用工作时写的临时文件,以及 APFS 自己的记账,可用空间掉到这块储备附近,系统就会警告。
Apple 没有公布确切的触发阈值,它会随卷的大小和当时系统在做什么而变,把这条提示当成余量信号即可,不要当成一个能反推回去的精确测量。
比数字更要紧的是两件事:
- 磁盘空间不够时,Mac 会先变慢,再真正出问题,交换空间没处写,内存压力就会上去,系统开始拼命压缩和换页。
- macOS 更新即使安装包看起来比可用空间小,也可能拒绝安装,因为它会先完整暂存一份再动手。
先量清楚再删
先看文件系统,别先看 Finder,因为 Finder 报的空间已经把可回收池折进去了。
df -h /
一台标称 1 TB 的 Mac 上,输出大概是这样:
Filesystem Size Used Avail Capacity Mounted on
/dev/disk3s1s1 926Gi 12Gi 299Gi 4% /
Used 那一列很小,因为 / 是密封的系统快照,不是数据卷,Size 显示 926Gi,硬盘卖的是 1 TB,因为 df 按二进制吉字节计,Apple 按十进制 GB 计,字节并没少,同一堆字节用了两套单位。
看整个容器,改问 diskutil:
diskutil info / | grep -i "Container"
Container Total Space: 994.6 GB (994610155520 Bytes)
Container Free Space: 321.0 GB (321045377024 Bytes)
现在有了一个真实基线,把可用空间这个数字记下来,下面每一步都看这个数字动没动。
空间通常都在哪
个人 Mac 上启动磁盘满了,几乎总是下面六种情况之一,按这份清单往下查,别见什么大就删什么。
| 可疑项 | 怎么确认 | 去哪处理 |
|---|---|---|
| 本地 Time Machine 快照 | tmutil listlocalsnapshots / 有条目返回 |
删除本地快照 |
| 照片图库 | 通常是个人文件夹里最大的单项 | 给照片腾出空间 |
| iOS 设备备份 | ~/Library/Application Support/MobileSync/Backup |
删除旧的 iPhone 备份 |
| 邮件下载 | 邮件的账户数据会无限涨 | 减小邮件占用 |
| 开发缓存 | Xcode、Docker、Homebrew、node 包仓库 | 清理开发缓存 |
| 忘了的大文件 | 旧导出、磁盘映像、下载 | 找出大文件 |
macOS 会把其中好几项折进储存空间设置里的 系统数据 这一类,所以那根条看起来又吓人又说不清,它标的是一堆剩余物,不是一个能打开的文件夹,见 系统数据里到底有什么。
删了文件空间却没回来
就是这种情况把人推向清理软件,删了一个 20 GB 的文件,倒掉废纸篓,可用空间几乎没动。
常见原因是 APFS 的写时复制,本地 Time Machine 快照还在引用那个已删文件占过的块,文件系统就放不掉它们,空间会显示成可清除而不是可用,直接查:
tmutil listlocalsnapshots /
如果有条目返回,先读 快照指南,别先干别的,精简快照往往整件事就解决了,而且不会动到外置 Time Machine 磁盘上的备份。
第二个原因是 macOS 认为有些空间可以回收,所以并不急着收回去,真有东西要用时才会腾出来,这也是为什么 Mac 报的可用空间很少,更新却仍能装上。
储存空间设置该怎么用
系统设置 > 通用 > 储存空间 有两处用得上:分类条能看出这个卷的大致形状,建议面板会把本来要到处翻的控件露出来,包括自动清空废纸篓和查看大文件。
拿它当测量就不太行,分类会重叠,改完之后数字落得很慢,系统数据还会吞掉分类器拿不准的一切,用它来导航,用 df 和 diskutil 来量。
不要做这些事
- 不要为了腾地方去删
/System、/Library或/private里的文件。 近几版 macOS 上系统卷是密封只读的,能写的那些部分都是承重的。 - 不要按日程清空缓存。 清掉还会长回来的缓存马上就回来了,扫完之后每个应用第一次启动都会变慢,见 哪些可以安全清理。
- 不要信那种承诺能清出固定数量可清除空间的工具。 可清除是一堆混合池的上限,不是一份清单。
- 不要在 Finder 里直接删照片图库、邮件数据或备份文件夹 来腾空间,走所属应用,数据库才不会乱。
要的是稳定余量,不是一个大数字
目标是能守住的余量,不是一次性刷出来的最大数字,Mac 稳稳待在储备之上,就不会再警告,负载下也不会拼命换页。
到这个状态通常靠一次结构性调整,而不是很多次小删除:把照片图库或视频归档挪到外置磁盘,给大型图库打开「优化 Mac 储存空间」,或卸掉已经不用的开发工具链,其中任何一件,都比一下午删截图更经得住。
检查工具适合放在哪一步
Mole 会先量再提出删除,按真实磁盘占用把这个卷摊开,删之前先说明每个候选项是什么,并且移到废纸篓而不是直接删掉,选错了还能挽回,它不会承诺一个自己证明不了的可清除数字。
操作顺序
- 用
df -h /和diskutil info /记下可用空间。 - 查
tmutil listlocalsnapshots /,有快照就先处理快照。 - 找出真正最大的占用,先看个人文件夹,再看别处。
- 做一次结构性调整,然后重新量。
- 卷上有余量就停,不要追工具报出来的那个痛快总数。
常见问题
为什么删完文件第二天提示又回来了?
因为删的那些并没有改结构,真正占着的如果是照片图库、iOS 备份或一组快照,删掉几个 GB 的文档只会刚过阈值,下一次更新或交换空间爆发又会压回去。
Mac 要留多少可用空间?
没有官方数字,读到的任何具体百分比都是别人的经验口诀,不是 Apple 规格,实际够一次完整 macOS 更新做暂存,再加上日常负载下交换空间要用的地方就行。
这条提示说明磁盘快坏了吗?
不是,它报的是容量,跟磁盘健康无关,那是另一个问题,对应另一组症状。
可以先不管它吗?
短时间可以,macOS 会靠回收可清除空间继续运转,代价是内存压力一上来 Mac 就变慢,更新也开始失败,修掉它比天天点掉提示划算。