Mac book pro 清理系统数据270G的硬盘空间

Mac book pro 清理系统数据270G的硬盘空间(一)

文章目录

最近笔记本电脑的系统数据占用了270G,这恐怖到我了,500G的硬盘,系统数据占了一半,好奇是什么一直在疯狂的占用我的硬盘,便查了下攻略,以下是我的命令使用记录。目前为止,成功将系统数据显示从270G变成了180G,但我的剩余空间显示却只多了30G,多余的那些去哪里了?感觉一时半会有些棘手,待后续更新。

1、先走一遍常规的数据删除流程【仪式感】

认识"系统数据"

它并非单一文件,而是系统文件和缓存的集合,主要包括:

  • 缓存文件:应用程序和系统为提升速度生成的临时文件。
  • 系统日志:记录系统活动和错误的文件。
  • 本地快照:Time Machine为在外置硬盘不可用时恢复文件,而在本机创建的备份。
  • 旧版iOS备份:通过iTunes或访达同步时,存储在Mac上的iPhone/iPad备份。
  • 应用程序残留:卸载应用后遗留的支持文件。
  • 浏览器数据:缓存、扩展插件等。
  • 其他:系统更新残留、语言包、磁盘映像等。
清理步骤

建议你从最安全、最简单的步骤开始,逐步深入。

第一步:使用系统内置工具(首选)

这是最安全的方法,适合所有用户。进入"关于本机 > 存储空间 > 管理",使用以下功能:

  • 优化存储:开启"自动清倒废纸篓"等选项。
  • 检查"系统数据":在存储管理界面查看,有时可直接识别并删除大文件(如旧iOS备份)。
第二步:针对性手动清理

如果第一步效果不明显,可以尝试手动清理特定项目。

清理项目 主要路径/方法 注意事项与预期效果
应用与系统缓存 ~/Library/Caches (用户缓存) /Library/Caches (系统缓存,需谨慎) 只删除文件夹内的文件 ,不要删除整个文件夹。清理后应用会重建缓存。可释放数GB到数十GB
系统日志文件 ~/Library/Logs 可直接删除该文件夹内所有文件,对系统运行无影响。
Time Machine本地快照 打开"终端",输入 tmutil listlocalsnapshots / 查看列表,再输入 tmutil deletelocalsnapshots [快照名称] 删除。 这是占用空间大的常见原因 ,删除快照可能一次性释放数十GB。建议保留近期的几个。
旧iOS备份 系统设置 > 通用 > 储存空间 > 管理 > iOS文件,选中旧备份删除。 可安全删除不再需要的设备备份。
应用卸载残留 ~/Library/Application Support ~/Library/Containers ~/Library/Preferences 在这些文件夹中找到已卸载应用对应的文件夹并删除。务必确认应用已卸载,操作需谨慎。
浏览器缓存与扩展 SafariSafari > 设置 > 隐私 > 管理网站数据 Chrome设置 > 隐私和安全 > 清除浏览数据 清理缓存和移除不用的扩展。
第三步:排查罕见大文件

如果以上步骤后,占用仍然异常高(例如超过100GB),可以按以下思路排查特殊的大文件:

注:以下操作涉及系统深层文件夹,需格外谨慎。

  1. 检查"cores"文件夹 :有案例提到 /System/Volumes/Data/cores 文件夹可能因系统或应用崩溃产生巨大的core dump文件(诊断文件)而占用数百GB空间。你可以:
    • 在"访达"中按 Shift + Command + G,输入上述路径前往查看。
    • 如果该文件夹体积异常庞大(例如超过50GB),里面的 core.xxxx 文件通常可以安全删除。
  2. 检查Spotlight索引 :有时索引数据库会异常增大。在"终端"输入 sudo du -hs /System/Volumes/Data/.Spotlight-V100/ 可查看其大小。如果极大(如几十GB),可通过命令重建索引。
2、再来看到底是什么导致了这些大内存,【解决问题】

一套流程下来,发现快照最难删,这就很为难了,而且看上去有8个快照,全删肯定是有风险的,但为了试一下效果,先关闭了快照

  • 展示快照
shell 复制代码
 tmutil listlocalsnapshots /
Snapshots for volume group containing disk /:
com.apple.TimeMachine.2026-02-11-104613.local
com.apple.TimeMachine.2026-02-11-114508.local
com.apple.TimeMachine.2026-02-11-132036.local
com.apple.TimeMachine.2026-02-11-141623.local
com.apple.TimeMachine.2026-02-11-151438.local
com.apple.TimeMachine.2026-02-11-161430.local
com.apple.TimeMachine.2026-02-11-171452.local
com.apple.TimeMachine.2026-02-12-085054.local
com.apple.os.update-6A25AE9FD434A625043F39C8C5A6AC094327D2E0FBB1A1928D698D54766F9D44
com.apple.os.update-MSUPrepareUpdate
  • 关闭快照功能
shell 复制代码
sudo tmutil disable
  • 删除快照

第一次使用的时候,表明了需要删除的快照列表

shell 复制代码
 sudo tmutil deletelocalsnapshots /
Deleted 9 Time Machine local snapshots for volume group containing disk '/'
com.apple.TimeMachine.2026-02-12-100126.local
com.apple.TimeMachine.2026-02-11-141623.local
com.apple.TimeMachine.2026-02-12-085054.local
com.apple.TimeMachine.2026-02-11-151438.local
com.apple.TimeMachine.2026-02-11-132036.local
com.apple.TimeMachine.2026-02-11-104613.local
com.apple.TimeMachine.2026-02-11-161430.local
com.apple.TimeMachine.2026-02-11-114508.local
com.apple.TimeMachine.2026-02-11-171452.local

由于怕第一次不生效,于是又执行了一次,这次报错了

shell 复制代码
~ sudo tmutil deletelocalsnapshots /
Failed to delete all Time Machine local snapshots for volume group containing disk '/'

sudo tmutil deletelocalsnapshots / 失败通常是因为系统更新快照被保护 ,或者 Time Machine 正在主动管理快照。最直接且必定成功的方法是:完全停用再启用 Time Machine

bash 复制代码
sudo tmutil disable && sudo tmutil enable

这条命令会

  1. 停用 Time Machine → macOS 会立即删除所有本地快照, 但我的系统不知道什么原因,其实并不能删掉,我的操作系统如下,大概是太老了吧。
  2. 重新启用 Time Machine → 恢复到你之前的自动备份设置(如果之前是开启状态),但不会重建已删除的快照。不明白它怎么能一天创建这么多条,还是得研究下快照的功能使用。

执行后,用以下命令验证快照是否已清空:

shell 复制代码
tmutil listlocalsnapshots /

Snapshots for volume group containing disk /:
com.apple.os.update-6A25AE9FD434A625043F39C8C5A6AC094327D2E0FBB1A1928D698D54766F9D44
com.apple.os.update-MSUPrepareUpdate

可以看到,出了两条更新的快照,就没有其他的了,已有的快照删除,但并没有输出应为空。

如果 disable && enable 仍然失败(极小概率)

极少数情况下,某些顽固的系统快照需要手动用 diskutil 删除。请按以下步骤操作:

  1. 先确认当前APFS快照

    bash 复制代码
    diskutil apfs listSnapshots /

    这会列出所有APFS快照(包括系统保护快照)。

  2. 删除指定快照(以你列出的长ID快照为例):

    bash 复制代码
    sudo diskutil apfs deleteSnapshot / -name "com.apple.os.update-6A25AE9FD434A625043F39C8C5A6AC094327D2E0FBB1A1928D698D54766F9D44"
    sudo diskutil apfs deleteSnapshot / -name "com.apple.os.update-MSUPrepareUpdate"

    注意:删除 Time Machine 本地快照不推荐用 diskutil ,因为它们是普通的 APFS 快照,但最好还是用 tmutil。不过 tmutil deletelocalsnapshots / 失败时,可以尝试用 diskutil 逐个删除。

但是,99% 的情况 disable && enable 就能解决,请先执行这个。

事实上,最新的数据显示,即便我清空了所谓的快照,我的系统数据从270G,缩减到了180G,但是我的硬盘空间从93G变成了123G,只多出了30G,这没这么打折的啊!!!

而且,在我重启之后,系统数据竟然又在偷偷摸摸的自动增加,刚刚写了这么几个字,已经从123G变成了117G了。第一次在时间上感受到了技术的焦灼。

分析快照

在较新的 macOS 版本(特别是 macOS 13 Ventura 及以后)中,diskutil apfs listSnapshots / 命令的输出不再直接显示每个快照的大小,而是仅显示名称、UUID 等信息。苹果改变了输出格式,导致我们无法通过该命令直接看到具体占用。

不过,仍有几种方法可以查看或间接判断快照的大小,并按需清理。以下是具体方案:

方案一:使用 diskutil apfs listSnapshotInfo /(推荐)

这是 diskutil 提供的专门用于查看快照详细信息的子命令,通常包含大小字段

在"终端"中运行:

bash 复制代码
diskutil apfs listSnapshotInfo /

输出示例(关键部分):

复制代码
Snapshot list for disk1s1 (2 found)
|
+-- 5F61A79D-C550-47AE-B17A-81C91CB0185C
    Name:                 com.apple.os.update-6A25AE9F...
    XID:                  18094624
    **Size (Logical):        25.6 GB**      ← 这就是快照占用的空间
    Purgeable:            No
    NOTE:                 ...

如果你执行该命令后,仍然看不到 Size 字段 ,请检查命令输出是否被截断,或尝试加上 -plist 参数:

bash 复制代码
diskutil apfs listSnapshotInfo / -plist

这将输出 plist 格式,包含 SizeInBytes 键值对,你可以直接搜索 SizeInBytes 看到具体数字(单位是字节)。

方案二:直接清理,无需逐一查看大小

既然你的 diskutil apfs listSnapshots / 输出中已经只有两个系统更新快照 ,并且根分区的占用只有 17GB,说明这些快照很可能不占用实际空间,或者占用极小。这是因为:

  • 系统更新快照在更新成功后会标记为"可清除",但可能因为某些原因未自动删除。
  • 即使它们显示存在,也可能并不占用可用空间

因此,更高效的做法是直接触发系统清理

bash 复制代码
sudo tmutil thinlocalsnapshots / 9999999999999999 4

这个命令会删除所有可以安全删除的本地快照 (包括系统更新快照),且无需预先知道每个快照的大小。执行后重启 Mac,快照应会被清除,空间也可能随之释放。

🔍 数据分析:plist 揭示了什么?
快照名称 LimitingContainerShrink Purgeable 含义
com.apple.os.update-6A25AE9F... false false 普通系统更新快照,不限制容器收缩
com.apple.os.update-MSUPrepareUpdate true false ⚠️ 此快照正在限制APFS容器收缩,且不可被系统自动清除

核心问题

  • 这个 MSUPrepareUpdate 快照是 macOS 为准备系统更新而创建的,但更新完成后没有正常移除。
  • 它的 LimitingContainerShrink = true 意味着:即使你删除了大量文件,只要这个快照存在,系统就无法将释放的空间真正归还给可用容量池
  • 这就是为什么你的 /dev/disk1s2 分区明明已用空间 360GB,但可用空间只有 67GB,且清理普通文件后空间回升不明显。

好消息

  • plist 中没有出现任何普通 Time Machine 本地快照,说明空间占用主因已集中到这一个"顽固"快照上。
  • 另一个更新快照虽然存在,但未标记限制,相对容易清理。
✅ 解决方案:彻底清除限制容器收缩的快照
方法一:官方推荐的清理命令(立即执行)

这是苹果设计用于清理此类系统更新快照的标准命令,无论快照是否标记为 Purgeable,都应优先尝试

bash 复制代码
sudo tmutil thinlocalsnapshots / 9999999999999999 4

执行后

  1. 立即重启 Mac(必须重启,否则空间不会释放)。
  2. 重启后再次运行 diskutil apfs listSnapshots /diskutil apfs listSnapshotInfo /,检查两个快照是否消失。
  3. 运行 df -h,观察 /dev/disk1s2Avail 列是否大幅增加。

预期效果 :若命令生效,快照被清除,Avail 空间应至少增加数十 GB(取决于快照实际大小,虽然未显示,但它们确实占用了物理空间)。

方法二:如果方法一无效------使用恢复模式强制删除

如果重启后快照依然存在(特别是那个 MSUPrepareUpdate),说明它过于顽固,需要在恢复模式下强制删除。

操作步骤

  1. 关机

  2. 开机并立即按住 电源键,直到出现"启动选项"界面。

  3. 选择 "选项" (齿轮图标),点击 "继续" ,进入 macOS 恢复

  4. 在菜单栏选择 "实用工具" > "终端"

  5. 在恢复模式的终端中,先挂载系统盘为可写状态(通常系统卷在恢复模式下是只读的,但数据卷是可写的,我们需要操作的是数据卷上的快照):

    bash 复制代码
    # 查看所有磁盘,找到你的系统卷组
    diskutil list
    # 通常系统卷是 disk1s1s1,数据卷是 disk1s2,快照位于系统卷上
    # 挂载系统卷(如果未挂载)
    diskutil mount /dev/disk1s1s1
  6. 使用 diskutil apfs deleteSnapshot 命令直接删除指定快照

    bash 复制代码
    # 删除第一个更新快照(UUID 从你提供的 plist 中复制)
    diskutil apfs deleteSnapshot / -uuid 5F61A79D-C550-47AE-B17A-81C91CB0185C
    
    # 删除第二个限制容器收缩的快照
    diskutil apfs deleteSnapshot / -uuid 8E904AD5-9DF6-43E9-A31C-3E6EB1243B33

    注意 :此命令会直接删除快照,不可恢复 。但你的系统早已完成更新,删除这些更新准备快照是安全的。但事实证明,这两个删不掉,为什么删不掉,看我的命令执行结果

    shell 复制代码
    ➜  ~ diskutil apfs deleteSnapshot / -uuid 5F61A79D-C550-47AE-B17A-81C91CB0185C
    Deleting APFS Snapshot 5F61A79D-C550-47AE-B17A-81C91CB0185C "com.apple.os.update-6A25AE9FD434A625043F39C8C5A6AC094327D2E0FBB1A1928D698D54766F9D44" from APFS Volume disk1s1s1
    Started APFS operation
    Error: -69529: Unable to delete the given APFS Snapshot
    ➜  ~ diskutil apfs deleteSnapshot / -uuid 8E904AD5-9DF6-43E9-A31C-3E6EB1243B33
    Deleting APFS Snapshot 8E904AD5-9DF6-43E9-A31C-3E6EB1243B33 "com.apple.os.update-MSUPrepareUpdate" from APFS Volume disk1s1s1
    Started APFS operation
    Error: -69529: Unable to delete the given APFS Snapshot
    ➜  ~ tmutil localsnapshot
    NOTE: local snapshots are considered purgeable and may be removed at any time by deleted(8).
    Created local snapshot with date: 2026-02-12-104645

    试图删除的是 macOS 签名系统卷(SSV,Signed System Volume)的核心密封快照**,这是系统启动和完整性验证的关键组成部分,被 Apple 实施了底层保护,禁止用户删除****。

    这是从 macOS Big Sur 开始的标准安全设计,并非命令输错或权限不足,而是"操作不被允许"。

    以下是针对你命令中两个快照的具体分析:

    快照 UUID 及名称 性质与作用 能否删除? 核心原因
    5F61A79D... com.apple.os.update-6A25... 当前活跃的启动快照 绝对不能 系统当前正在从这个快照启动。删除它相当于拆除正在运行的房子的地基,系统会立即崩溃或下次无法开机。
    8E904AD5... com.apple.os.update-MSUPrepareUpdate 系统更新准备快照 系统自动管理 这是 macOS 更新机制(MSU,Mobile Software Update)创建的临时快照,用于在更新失败时回滚。Apple 设定它由系统在适当时机自动清理,用户无权手动干预。

    为什么你"删不掉"?--- 错误 -69529 的真相

    通过搜索结果可以确认,错误 -69529(以及类似的 -69863)并非普通的"权限不足"(如未输 sudo),而是操作系统内核级的安全策略拦截

    1. 关于 com.apple.os.update-6A25...

      • 在 macOS Big Sur 及更高版本中,系统安装完成后,会将系统卷"密封"并生成一个只读快照。每次开机,Mac 实际上都是从这个快照启动的
      • 你的 diskutil list 输出中的 disk1s1s1 正是这个挂载在根目录 / 的快照。你正在使用它,所以无法删除。
    2. 关于 com.apple.os.update-MSUPrepareUpdate

      • 这是更新过程中的"保险"。只要系统认为这个快照还有潜在的"回滚价值",或者更新尚未最终固化,就会拒绝删除请求。

    1. 放弃删除想法

    请接受这是 macOS 现代版本的标准特征。Apple 社区的官方回复和 Apple 安全文档均已确认:这不仅是正常的,而且是强制性的安全措施。试图强行删除可能会导致下次系统更新时只提供完整安装包(12GB+)而非增量更新(2-3GB),甚至导致系统无法启动。

    2. 针对"MSUPrepareUpdate"快照

    无需任何操作。通常在以下几种情况发生后,系统会自动将其移除:

    • 成功安装更新并重启数次后。
    • 该快照对应的更新包已被后续更新覆盖。
    • 运行 tmutil localsnapshot 相关的 Time Machine 快照管理命令不会影响它,它是独立受控的。
相关推荐
寒水馨19 小时前
macOS下载、安装openclaw-v2026.7.1(附安装包OpenClaw-2026.7.1.dmg)
macos·大模型·github·开源软件·ai助手·openclaw·gpt-5.6
白玉cfc1 天前
【iOS】MRC和ARC
macos·ios·cocoa
飞雪金灵1 天前
mac电脑 Maven下载安装和配置环境变量
macos·maven·maven下载安装·mac电脑环境
雨声不在1 天前
macos 12使用docker
macos·docker·容器
一叶龙洲1 天前
ubuntu26.04 xfce美化成mac
服务器·ubuntu·macos
李小白杂货铺1 天前
Oh My Zsh 简记
macos·macbook·zsh·主题·插件·oh my zsh·omz
fukai77222 天前
macOS防止休眠的菜单栏小工具
macos
web守墓人2 天前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang
之歆3 天前
从 Mac 回到 Windows:用 PowerToys + AutoHotkey 找回熟悉手感
windows·macos
星辰即远方3 天前
字符串合法性检验
macos·ios·cocoa