如果Mac因为硬盘被占满而无法开机,处理顺序不能乱,得先进入恢复模式的终端做清理:第一步先确认主卷名称;接着删除/private/var/vm/目录下的swapfile和sleepimage,同时清空Downloads与.Trash;如果还有空间压力,可以继续卸载Xcode缓存和Docker镜像;最后再删除Time Machine本地快照,然后重启机器。

Mac 硬盘一旦被塞满,最常见的结果就是直接卡在开机阶段:灰色苹果图标不动、出现禁止符号,或者进度条始终走不过去。到了这一步,图形界面基本已经派不上用场,只能绕开常规操作路径,直接进入更底层的环境先腾出空间。原因也很直接:如果不先释放可用容量,连恢复模式里的终端往往都没法顺利执行删除命令,因为 APFS 文件系统采用的是 Copy-on-Write 机制,删除动作本身也需要先有一部分空余空间可用。
先进入恢复模式并启用终端
关机状态下按住电源键不放,直到出现启动选项;Intel芯片Mac按住Command+R,Apple Silicon Mac按住电源键直到显示“正在载入启动选项”,选择“选项”→继续→选择管理员账户登录→顶部菜单栏选择“实用工具”→“终端”。
这一步不能跳过,否则后续所有清理命令都无处执行。终端窗口打开后,先运行diskutil list确认主卷名称(通常是Macintosh HD或Data卷),【务必记下主卷全名,大小写和空格都不能错】。
释放VM卷与Sleepimage空间
VM卷(虚拟内存交换文件)和sleepimage(睡眠镜像)在长期未重启的Mac上可能膨胀至10GB以上,且它们位于系统可安全清理的区域。
在终端中依次执行:
sudo rm -rf /Volumes/Macintosh HD/private/var/vm/*
sudo rm -f /Volumes/Macintosh HD/private/var/vm/sleepimage
注意:若主卷名为“Macintosh HD - Data”,则路径中的Macintosh HD要替换为Macintosh HD - Data,否则命令报错且不生效。执行后立即运行df -h查看可用空间是否增加。
清空下载目录与废纸篓残留
用户下载目录和废纸篓是空间占用最隐蔽却最容易清理的来源,尤其当系统卡死前用户刚下载过安装包或解压过大型文件。
方法一:直接清空挂载路径下的Downloads与.Trash
sudo rm -rf /Volumes/Macintosh HD/Users/*/Downloads/*
sudo rm -rf /Volumes/Macintosh HD/Users/*/Library/Trash/*
方法二:若知道具体用户名(如admin),可精准定位清理
sudo rm -rf /Volumes/Macintosh HD/Users/admin/Downloads/*.dmg /Volumes/Macintosh HD/Users/admin/Downloads/*.zip
这一步能快速释放2–8GB,且不会影响系统配置或用户文档。
卸载Xcode缓存与Docker镜像(高风险动作)
开发环境用户常忽略Xcode DerivedData和Docker本地镜像,二者单个可达5–20GB,且删除后仅需重新编译或拉取即可重建。
第一步:确认Xcode是否安装
ls /Volumes/Macintosh HD/Applications/Xcode.app &>/dev/null && echo "Xcode detected"
第二步:清理DerivedData(安全)
sudo rm -rf /Volumes/Macintosh HD/Users/*/Library/Developer/Xcode/DerivedData
第三步:清理Docker镜像(仅当确认未运行关键容器)
sudo rm -rf /Volumes/Macintosh HD/Users/*/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
【执行前请确认Docker未处于生产环境使用状态,该操作将清除全部本地镜像与容器数据】
强制重建快照并重启
APFS快照会锁住已删除文件的空间,必须手动清理快照才能真正释放容量。
运行:tmutil listlocalsnapshots / 查看当前快照列表。
逐个删除(示例):sudo tmutil deletelocalsnapshots 2026-07-28-223456
全部删完后,运行:sudo reboot 重启系统。