mac磁盘空间被“系统数据”大量占用多因time machine本地快照残留,可通过thinlocalsnapshots自动精简、deletelocalsnapshots手动删除、切换/system/volumes/data路径扫描、磁盘工具触发回收或禁用local快照解决。

如果您发现Mac磁盘空间被“系统数据”突然大量占用,且储存管理界面显示存在Time Machine本地快照,这些快照可能在未连接备份磁盘时自动生成并长期驻留,实际不参与日常运行却持续占用数GB至数十GB空间。以下是解决Mac系统占用磁盘空间突然暴增、清理系统本地快照的具体方法:
一、使用thinlocalsnapshots命令自动精简快照
该命令由tmutil原生提供,可安全评估当前APFS卷中所有本地快照的依赖关系与可删除性,并按空间需求自动删除最旧的快照链,释放空间即时可见,且严格遵循Time Machine管理逻辑,不破坏备份连续性。
1、打开“终端”应用(可通过聚焦搜索输入“终端”启动)。
2、输入命令:tmutil listlocalsnapshots /,回车后查看当前所有本地快照的时间戳列表。
3、执行命令:sudo tmutil thinlocalsnapshots / 9999999999999999 1,系统将删除所有可删快照(保留最少必要快照)。
4、再次运行tmutil listlocalsnapshots /确认输出为空或仅剩最近一次快照。
5、如需仅释放指定字节数(例如5GB),可将第二参数替换为5000000000,第三参数保持为4表示最多删除4个快照。
二、手动逐条删除指定快照
当需要精准控制保留策略(例如仅清除某日异常膨胀的快照,或配合外置备份完成后的清理),可直接调用deletelocalsnapshots命令移除特定ID快照。此操作要求用户明确识别快照用途,避免误删正在用于恢复的活跃快照。
1、在终端中输入:sudo tmutil listlocalsnapshots /,获取完整快照ID列表(如com.apple.TimeMachine.2025-12-15-092347)。
2、对目标快照执行删除命令:sudo tmutil deletelocalsnapshots com.apple.TimeMachine.2025-12-15-092347(将末尾时间戳替换为实际ID)。
3、每执行一次后等待终端返回Deleted local snapshot提示,再继续下一条。
4、若不确定某快照是否安全删除,可先运行:tmutil calculatedrift /检查其与当前系统状态的差异。
三、切换至/System/Volumes/Data路径重新扫描快照
diskutil apfs listSnapshots /仅能列出根卷上的快照,而macOS实际常在/System/Volumes/Data宗卷上生成Time Machine本地快照,导致使用/路径查询时返回“No local snapshots”,造成误判。必须切换至该路径才能准确识别全部快照。
1、在终端中执行:tmutil listlocalsnapshots /System/Volumes/Data,确认是否存在隐藏快照。
2、若输出包含快照ID,对其中早于当前日期的快照逐条执行:sudo tmutil deletelocalsnapshots [快照ID]。
3、执行完毕后,再次运行相同list命令验证输出是否清空。
4、注意:该路径操作需确保系统为macOS Catalina及以后版本,且使用APFS文件系统。
四、通过磁盘工具查看“可清除空间”并触发自动回收
部分APFS快照可能因异常断电、强制关机或系统更新中断而残留为不可见但实际占用空间的宗卷元数据,此类快照无法通过tmutil识别,需借助“磁盘工具”的底层验证功能定位并触发系统自动回收。
1、打开“磁盘工具”(通过聚焦搜索启动)。
2、在菜单栏选择“显示”→“显示所有设备”。
3、左侧边栏中选中内置物理磁盘(名称通常为“Apple SSD”或“APPLE HDD”,非其下的“Macintosh HD”等宗卷)。
4、点击顶部工具栏中的“简介”按钮,观察“可用空间”与“可清除空间”数值差值。
5、若“可清除空间”显著大于零,重启Mac,系统将在启动过程中自动执行空间回收流程。
五、禁用本地快照生成以防止复发
若用户不依赖Time Machine本地恢复功能,或长期不连接备份磁盘,可彻底禁用本地快照生成机制,从源头杜绝空间持续被占用的风险。该操作不影响已配置的外置备份任务,仅关闭本地临时快照功能。
1、在终端中执行:sudo tmutil disablelocal,系统将立即停止生成新快照。
2、执行后运行:tmutil listlocalsnapshots /和tmutil listlocalsnapshots /System/Volumes/Data,确认无新增快照产生。
3、如未来需重新启用,可执行:sudo tmutil enablelocal。
4、禁用后仍可保留已存在的历史快照,建议配合前述任一删除方法同步清理。











