APFS空间共享本质是取消固定分区,以容器为唯一空间管理单位,所有卷动态共享容器内空闲空间,按需伸缩、无预分配配额。

APFS 的空间共享(Space Sharing)不是“分区之间互相借空间”,而是根本取消了传统意义上固定大小的分区概念——它用“容器(Container)”统管物理磁盘,所有卷(Volume)都浮动在同一个容器里,按需伸缩。
容器是空间管理的唯一单位
一块物理磁盘初始化为 APFS 后,首先被划分为一个或多个 APFS 容器;每个容器可容纳多个逻辑卷(如 Macintosh HD、Macintosh HD - Data、Preboot、Recovery 等)。这些卷本身没有预设容量上限,它们共享容器内的全部可用空间。系统只限制单个卷不能超过容器总大小,但不会给每个卷硬性分配固定配额。
- 例如:1TB 磁盘建一个 APFS 容器,里面放两个卷 A 和 B。A 当前占用 200GB,B 占用 150GB,剩余 650GB 是整个容器的空闲空间,A 或 B 都能随时写入,直到填满这 650GB
- 你无法在磁盘工具里给某个卷设置“最多只能用 400GB”——这不是 APFS 的设计逻辑
卷的大小是动态快照,不是实际占用
你在“关于本机→存储空间”或磁盘工具中看到的各卷容量数字,其实是该卷当前已写入数据量的统计值,不是预留空间。APFS 不会像 HFS+ 那样提前划出固定区块;它只在真正写入数据时才从容器中分配块,且多个卷可共享同一份未修改的数据块(靠克隆和写时复制支撑)。
- 复制一个 5GB 应用到“Macintosh HD - Data”卷,系统不会立刻多占 5GB——如果该应用已存在于系统卷中,新副本只是元数据引用
- 删除一个大文件后,空间立即归还给容器,所有卷都能立刻使用,无需“整理”或“收缩分区”
系统卷与数据卷分离是空间共享的实际落地
macOS High Sierra 及之后版本将系统文件(/System、/usr 等)和用户数据(/Users、/Applications 等)分别放在两个逻辑卷上,但它们同属一个容器。这种分离不是为了隔离空间,而是为了安全更新——系统卷只读、可原子回滚,而数据卷自由读写。空间上,二者完全互通:
- 升级 macOS 时,新系统写入系统卷,所需空间直接从容器中调配,哪怕数据卷显示“已满”,只要容器还有余量,升级就能完成
- Time Machine 本地快照也存于同一容器内,它自动腾退最旧快照来释放空间,不影响其他卷的可用容量显示
Purgeable Space 是共享机制下的弹性缓冲
系统会把部分缓存、本地快照、iOS 设备备份缓存等标记为 Purgeable(可清除)空间。这部分空间计入“已用”,但不锁定——当新数据写入需要空间时,系统优先自动清理 Purgeable 区域,而不是报错“空间不足”。这也是为什么有时看到“可用空间只剩 2GB”,却仍能下载一个 3GB 文件:容器实际有冗余,Purgeable 数据被实时让出。
- 手动触发清理:终端执行 sudo tmutil thinlocalsnapshots / 9999999999 1 可强制回收本地快照
- 注意:某些 Purgeable 数据(如 iCloud 临时下载)需联网或满足条件才能释放,不是一键清空

















