macOS 救砖指南:硬盘爆满、删除无效?从恢复数据到强制清理记录

前两天准备上架一款 APP,编译时提示空间不足,和 AI 为此折腾了两天,故分享下处理过程。
具体现象:空间快满了,各个程序都提示没有空间无法运行,然后删除文件全跑到系统数据里去了,系统数据特别大(其实都是时间机器的本地快照)。然后就是死循环删文件不会腾出空间,删快照提示没空间命令执行不了,整个人都不好了。
如果你也遇到了,并且终端命令都提示没有空间直接跳到第三部分。
🛠️ 第一部分:常规环境下的快照管理(正常操作)
如果系统还能运行,首选终端命令。但要注意系统卷与数据卷的区别。
1. 查看本地快照
不要只看 /(根目录),因为在较新的 macOS 中,根目录是只读的系统卷。真正的快照在数据卷上。
# ❌ 错误做法:只看根目录(可能只看到系统更新快照,删不掉)
tmutil listlocalsnapshots /
# ✅ 正确做法:直接列出数据卷快照(如果 tmutil 报错,改用 diskutil)
diskutil apfs listSnapshots /System/Volumes/Data
2. 删除快照(释放空间)
方案 A:温柔版 (tmutil)适用于空间还没彻底满的情况。
# 只需要日期部分,例如 2026-01-15-171217
sudo tmutil deletelocalsnapshots <日期>
# 方案 B:强力版 (diskutil) ⭐️ 推荐当 tmutil 报错 Stale NFS file handle时,使用此命令直接操作文件系统底层。
# 必须指定完整路径 /System/Volumes/Data# 使用名字删除:sudo diskutil apfs deleteSnapshot /System/Volumes/Data -name <快照日期>
# 或者使用 UUID 删除(更精准):
sudo diskutil apfs deleteSnapshot /System/Volumes/Data -uuid <快照UUID>
⚠️ 避坑指南:如果你看到 Purgeable: No 且名字包含 com.apple.os.update 的快照,千万别删!那是你的操作系统本体(Signed System Volume)。
🚑 第二部分:从快照中抢救数据(挂载与恢复)
在删除快照释放空间之前,如果里面有重要数据,可以像插 U 盘一样挂载它。
1. 创建挂载点并挂载
# 1. 在桌面建个空文件夹
mkdir ~/Desktop/TimeMachineView
# 2. 挂载快照(需要快照全名,用 tmutil listlocalsnapshots / 查看)
# 语法:
mount_apfs -s <快照全名> <数据卷路径> <挂载点>
sudo mount_apfs -s com.apple.TimeMachine.2026-01-15-XXXXXX.backup /System/Volumes/Data ~/Desktop/TimeMachineView
2. 拷贝数据(推荐使用 rsync)
当硬盘爆满时,Finder 复制极慢,建议用 rsync 拷贝到外接移动硬盘。
# -avh 显示进度且保留属性
rsync -avh --progress ~/Desktop/TimeMachineView/Users/你的用户名/Documents/Volumes/移动硬盘名/Backup/
# 卸载快照,用完必须卸载,否则无法删除该快照。
diskutil unmount force ~/Desktop/TimeMachineView
🆘 第三部分:绝境求生(恢复模式 Recovery Mode)
当系统彻底卡死,或者所有命令都报“没有空间”时,进入恢复模式是唯一的解法。但注意:恢复模式下硬盘默认是锁住的,必须手动解锁挂载。
进入方法:
Apple Silicon (M1/M2/M3): 关机 -> 长按电源键直到出现选项 -> 选项 -> 终端。
Intel: 重启 -> 按住
Cmd + R-> 实用工具 -> 终端。
1. 关键步骤:解锁并挂载数据卷
进入终端后,直接运行命令是找不到数据的,必须先挂载。
查找磁盘标识符:
diskutil list在列表中找到名为
Macintosh HD - Data或Data的卷。记下右侧的标识符,例如
disk3s5(请根据实际情况替换)。解锁并挂载(如果是加密硬盘): 这是最容易被忽略的一步。
# 语法:diskutil apfs unlockVolume /dev/<你的磁盘ID> diskutil apfs unlockVolume /dev/disk3s5系统会提示 Passphrase,输入你的开机登录密码(输入时不会显示),按回车。
如果提示 unlocked and mounted,说明成功。
3. 确认挂载路径
解锁成功后,硬盘通常会挂载在 /Volumes/Macintosh HD - Data。你可以检查一下:
ls /Volumes
# 必须确认能看到 "Macintosh HD - Data" 才能继续
4. 强制删除文件(打破死锁)
恢复模式下没有 Time Machine 进程守护,删除文件会立即释放物理空间。
# 删除用户缓存(注意路径中有引号)
rm -rf /Volumes/"Macintosh HD - Data"/Users/你的用户名/Library/Caches/*
强制删除顽固快照
既然已经挂载了,就可以直接操作快照了:
# 1. 列出快照(注意路径)
diskutil apfs listSnapshots /Volumes/"Macintosh HD - Data"
# 2. 删除(使用名字或UUID)
diskutil apfs deleteSnapshot /Volumes/"Macintosh HD - Data" -name 2026-01-15-171217
(建议收藏备用,毕竟 APFS 的空间问题总是在你最忙的时候出现 🌚)
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
