# 启动磁盘快满了：空间到底去哪了

> 这条提示说的是工作余量不够，不是让人去删文件。先用 df 和 diskutil 量清楚，优先查本地快照，再做一次结构性调整，而不是零敲碎打地删。

Published: 2026-08-09 | Updated: 2026-08-16

提示总在最不该来的时候弹出，正在导出视频、安装更新，或保存一份文档，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 /` 有条目返回 | [删除本地快照](https://mole.fit/zh/blog/how-to-delete-local-time-machine-snapshots-mac) |
| 照片图库 | 通常是个人文件夹里最大的单项 | [给照片腾出空间](https://mole.fit/zh/blog/how-to-free-up-photos-storage-mac) |
| iOS 设备备份 | `~/Library/Application Support/MobileSync/Backup` | [删除旧的 iPhone 备份](https://mole.fit/zh/blog/how-to-delete-iphone-backups-mac) |
| 邮件下载 | 邮件的账户数据会无限涨 | [减小邮件占用](https://mole.fit/zh/blog/how-to-reduce-mail-storage-mac) |
| 开发缓存 | Xcode、Docker、Homebrew、node 包仓库 | [清理开发缓存](https://mole.fit/zh/blog/how-to-clear-dev-caches-mac) |
| 忘了的大文件 | 旧导出、磁盘映像、下载 | [找出大文件](https://mole.fit/zh/blog/how-to-find-large-files-on-mac) |

macOS 会把其中好几项折进储存空间设置里的 **系统数据** 这一类，所以那根条看起来又吓人又说不清，它标的是一堆剩余物，不是一个能打开的文件夹，见 [系统数据里到底有什么](https://mole.fit/zh/blog/what-is-system-data-on-mac)。

## 删了文件空间却没回来

就是这种情况把人推向清理软件，删了一个 20 GB 的文件，倒掉废纸篓，可用空间几乎没动。

常见原因是 APFS 的写时复制，本地 Time Machine 快照还在引用那个已删文件占过的块，文件系统就放不掉它们，空间会显示成可清除而不是可用，直接查：

```
tmutil listlocalsnapshots /
```

如果有条目返回，先读 [快照指南](https://mole.fit/zh/blog/how-to-delete-local-time-machine-snapshots-mac)，别先干别的，精简快照往往整件事就解决了，而且不会动到外置 Time Machine 磁盘上的备份。

第二个原因是 macOS 认为有些空间可以回收，所以并不急着收回去，真有东西要用时才会腾出来，这也是为什么 Mac 报的可用空间很少，更新却仍能装上。

## 储存空间设置该怎么用

**系统设置 > 通用 > 储存空间** 有两处用得上：分类条能看出这个卷的大致形状，建议面板会把本来要到处翻的控件露出来，包括自动清空废纸篓和查看大文件。

拿它当测量就不太行，分类会重叠，改完之后数字落得很慢，系统数据还会吞掉分类器拿不准的一切，用它来导航，用 `df` 和 `diskutil` 来量。

## 不要做这些事

- **不要为了腾地方去删 `/System`、`/Library` 或 `/private` 里的文件。** 近几版 macOS 上系统卷是密封只读的，能写的那些部分都是承重的。
- **不要按日程清空缓存。** 清掉还会长回来的缓存马上就回来了，扫完之后每个应用第一次启动都会变慢，见 [哪些可以安全清理](https://mole.fit/zh/blog/how-to-clear-cache-on-mac)。
- **不要信那种承诺能清出固定数量可清除空间的工具。** 可清除是一堆混合池的上限，不是一份清单。
- **不要在 Finder 里直接删照片图库、邮件数据或备份文件夹** 来腾空间，走所属应用，数据库才不会乱。

## 要的是稳定余量，不是一个大数字

目标是能守住的余量，不是一次性刷出来的最大数字，Mac 稳稳待在储备之上，就不会再警告，负载下也不会拼命换页。

到这个状态通常靠一次结构性调整，而不是很多次小删除：把照片图库或视频归档挪到外置磁盘，给大型图库打开「优化 Mac 储存空间」，或卸掉已经不用的开发工具链，其中任何一件，都比一下午删截图更经得住。

## 检查工具适合放在哪一步

[Mole](https://mole.fit/) 会先量再提出删除，按真实磁盘占用把这个卷摊开，删之前先说明每个候选项是什么，并且移到废纸篓而不是直接删掉，选错了还能挽回，它不会承诺一个自己证明不了的可清除数字。

## 操作顺序

1. 用 `df -h /` 和 `diskutil info /` 记下可用空间。
2. 查 `tmutil listlocalsnapshots /`，有快照就先处理快照。
3. 找出真正最大的占用，先看个人文件夹，再看别处。
4. 做一次结构性调整，然后重新量。
5. 卷上有余量就停，不要追工具报出来的那个痛快总数。

## 常见问题

### 为什么删完文件第二天提示又回来了？

因为删的那些并没有改结构，真正占着的如果是照片图库、iOS 备份或一组快照，删掉几个 GB 的文档只会刚过阈值，下一次更新或交换空间爆发又会压回去。

### Mac 要留多少可用空间？

没有官方数字，读到的任何具体百分比都是别人的经验口诀，不是 Apple 规格，实际够一次完整 macOS 更新做暂存，再加上日常负载下交换空间要用的地方就行。

### 这条提示说明磁盘快坏了吗？

不是，它报的是容量，跟磁盘健康无关，那是另一个问题，对应另一组症状。

### 可以先不管它吗？

短时间可以，macOS 会靠回收可清除空间继续运转，代价是内存压力一上来 Mac 就变慢，更新也开始失败，修掉它比天天点掉提示划算。

---

Canonical HTML page: https://mole.fit/zh/blog/mac-startup-disk-full
Blog index for agents: https://mole.fit/zh/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
