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 快照管理命令不会影响它,它是独立受控的。
相关推荐
rock——you13 小时前
macos如何升级到指定版本,而不是默认最新的版本。我的现在为15.3,如何升级到15.4,而不是最新的15.54
macos
打倒苦瓜蛋13 小时前
Mac typora安装 破解教程!!!
macos
蓝胖子Lcl13 小时前
Mac安装Oracle数据库(M芯片)
数据库·macos·oracle
开开心心就好15 小时前
一键加密隐藏视频,专属格式播放工具
java·linux·开发语言·网络·人工智能·macos
wangwangfish17 小时前
OpenClaw安装peekaboo(Mac-超详细)
macos
blanks202019 小时前
制作 macOS sequoia 安装 u盘
macos
带娃的IT创业者1 天前
解密OpenClaw系列04-OpenClaw技术架构
macos·架构·cocoa·agent·ai agent·openclaw
带娃的IT创业者1 天前
解密OpenClaw_03-OpenClaw核心功能特性
macos·系统架构·objective-c·cocoa·软件工程·智能体开发·openclaw
AI逐月1 天前
Mac 轻量安装 Docker 完整指南(Docker + Colima + Kubernetes)
macos·docker·kubernetes