在没有备份的情况下恢复已删除的 APFS 文件,可能吗?

我不小心从一个采用 APFS 格式的 Mac 驱动器中删除了重要文件,而且没有 Time Machine 或 iCloud 备份。我想弄清楚 APFS 文件恢复是否仍然有可能、哪些工具或步骤最安全,以及在情况变得更糟之前如何避免覆盖任何内容。

我首先会做的事就是停止使用那块硬盘。说真的。不要再往里面保存任何东西,不要在上面安装恢复工具,也不要继续到处点来点去,希望文件会自己重新出现。

恢复成功的几率很大程度上取决于它是什么类型的硬盘。对于普通的机械硬盘(HDD),被删除的文件通常仍然可以恢复,直到有新数据把它们覆盖掉为止。对于SSD,情况会更复杂,因为有TRIM。如果 TRIM 已经清除了那些块,恢复软件就无法把数据带回来了。这也是为什么“立刻停止使用它”这一点这么重要。

我之前也遇到过很相似的情况,最后用了 Disk Drill。它比我预想的更直接易用,但关键在于你怎么使用它。

我会这样做:

  1. 把 Disk Drill 安装到另一块硬盘上,不要装在你要恢复数据的那块盘上。
  2. 连接包含丢失文件的 APFS 硬盘,如果文件原本在内部硬盘上,就选择内部硬盘。
  3. 当 macOS 提示时,给 Disk Drill 完全磁盘访问权限。没有这个权限,它可能无法正确扫描某些 APFS 宗卷。
  4. 选择 APFS 宗卷并运行完整扫描,也就是“Search for Lost Data”选项。
  5. 在抓取它找到的第一批文件之前,先让扫描完成。对我来说,等到结束能找到更多内容。
  6. 恢复任何内容之前先使用预览,尤其是照片和文档。如果能正确预览,通常是更好的迹象。
  7. 把文件恢复到另一块硬盘。绝不要把它们恢复回你正在扫描的同一个 APFS 宗卷。

Disk Drill 有个实用之处,就是它可以为很多文件保留原始文件夹结构。这比听起来更重要,因为要从成千上万个名称杂乱无章的已恢复文件里整理内容会非常痛苦。它还会为很多项目提供恢复可能性提示,这样你在恢复一大堆文件之前就不至于完全靠猜。

如果硬盘是在磁盘工具中被抹掉的,这并不自动意味着一切都没了。快速抹掉通常只是清除了文件系统信息,并不会立刻覆盖所有实际数据。只要还没有新数据写入覆盖,恢复在这种情况下仍然可能有效。最大的例外是加密的 APFS 宗卷。如果之前启用了 FileVault,而硬盘又被格式化了,丢失旧的加密密钥通常就意味着旧数据无法恢复了。

如果 Disk Drill 找不到你需要的内容,PhotoRec 是另一个选择。它是免费的,但工作方式不同。它是通过扫描文件签名,而不是读取 APFS 元数据,所以你通常会失去原始文件名和文件夹。不过,如果是照片或视频,还是值得一试。

如果硬盘看起来存在物理故障,我不会继续自己反复扫描。出现以下情况就该停止:

  1. 反复断开连接,
  2. 发出咔嗒声、摩擦声或蜂鸣声,
  3. 只是偶尔能显示出来,
  4. 或者每次扫描都会卡死。

到了那一步,找专业恢复实验室会更安全。反复给一块正在故障的硬盘通电,可能会让损坏更严重。很多靠谱的机构都会提供免费评估,而且很多还提供无数据,不收费服务。逻辑恢复的价格可能只要几百美元,但如果是物理损坏或需要无尘室作业,费用很容易超过 1,000 美元。

不过,如果这只是文件被删除或快速格式化,你的成功机会可能会大得多,尤其是如果你现在就停止使用那块硬盘,并把所有恢复出来的内容保存到另一块独立的磁盘上。

如果已删除的文件位于内部驱动器上,请不要从那台 Mac 启动。

这正是人们有时会忽略的部分。即使只是查看电子邮件或重启几次,也可能产生写入:缓存、Spotlight 索引、交换文件、应用更新、日志,以及所有那些无聊的 macOS 后台活动。在 APFS SSD 上,这可能影响很大。如果是外置 APFS 驱动器,请拔掉它。如果是内部驱动器,请关闭 Mac,并在进行扫描之前先考虑通过其他启动源或另一台 Mac 进行恢复。

我同意关于 Disk Drill/PhotoRec 的一般建议,但如果数据真的很重要,我会先制作驱动器镜像。尽可能扫描镜像,而不是原始驱动器。这样一来,如果扫描崩溃、驱动器开始表现异常,或者你选择了错误的恢复目标,就不会让情况变得更糟。有些恢复应用可以创建逐字节镜像,也有命令行方法可以做到,但如果你已经很紧张,就不要在唯一的副本上做试验。

就 APFS 而言,不要期待像以前那样干净的撤销删除。有时你能找回正确的名称和文件夹。有时你只会得到一堆名称丢失的文件。有时预览看起来没问题,但恢复出来的文件仍然损坏。恢复前先预览,恢复到单独的磁盘,并优先处理那些无法替代的重要内容,而不是试图保存每个缓存和重复文件。如果你想要一个可视化的操作演示,这个macOS 文件恢复视频 可能比自己摸索按钮更容易理解,但关键规则始终不变:不要向源驱动器写回任何内容。

在开始雕刻文件之前,先检查快照。

前面关于不要向硬盘写入数据的建议是正确的,但 APFS 有一个不那么明显的突破口:本地快照。即使你当前没有连接 Time Machine 备份磁盘,macOS 也可能在系统更新期间或之前的 Time Machine 活动中创建了 APFS 快照。如果被删除的文件在其中某个快照创建时还存在,那么恢复更像是把旧版本复制出来,而不是进行混乱的文件恢复。

如果可能的话,我会从恢复模式、外部启动盘或另一台 Mac 上检查这个,而不是随便重新启动回同一系统并使用它一个小时。在终端中,像 tmutil listlocalsnapshots /diskutil apfs listSnapshots 这样的命令可以告诉你是否存在快照。如果有,先处理这些。不要为了“释放空间”删除快照,不要运行清理应用,也不要现在启用 Time Machine 并指望它创建有用的内容。那样会产生更多写入。

如果没有有用的快照,那么是的,Disk Drill 或 PhotoRec 这类恢复方式就是下一条路了,同时也要注意大家已经提到的所有 SSD/TRIM 相关限制。但在接受一堆被重命名的恢复文件之前,我会先尝试快照这条路,因为如果它有效,它能更完整地保留文件名、文件夹结构和文件内容。

无论这是 T2/Apple silicon Mac 中的内部 SSD,还是外部驱动器,成功恢复的概率都会有很大不同。

如果这是较新 Mac 上的内置 SSD,我会把“已删除且没有备份”视为时间非常敏感,甚至可能已经无法恢复,尤其是如果这些文件是几天前删除的,而且机器一直在运行。APFS 本身并不是主要元凶。更大的问题是 SSD 的工作方式、TRIM、加密,以及 macOS 正常的后台写入。在这些 Mac 上,恢复软件能够看到有用旧数据的时间窗口可能非常短。在这种情况下,快照可能是你最好的机会,就像 @mikeappsreviewer 说的那样。

如果这是外部 APFS 机械硬盘,情况就没那么糟。已删除的文件可能仍然在那里,直到被覆盖为止。对于外部 APFS SSD,情况介于两者之间,这取决于 TRIM 支持以及删除之后它被使用了多少。

人们容易忽略的一点是:当你把驱动器连接到另一台 Mac 时,macOS 可能会挂载它并开始做一些“自作聪明”的事情。Spotlight、Finder 预览生成、Photos 资料库检查以及修复提示,在这里都不是你的朋友。如果驱动器是外部的,不要点击“修复”,不要花半小时浏览文件夹,也不要把随机恢复出来的测试文件再复制回去。如果你知道怎么做,请以只读方式挂载,或者先制作一个镜像。如果你不知道怎么做,至少尽量减少操作,并恢复到单独的磁盘。

Disk Drill 对这类工作来说还算合理,但我不会把扫描结果页面当成保证。出现文件名并不意味着内容完好。预览比恢复百分比更重要。如果丢失的是办公文档、照片、视频、项目文件或 Photos 资料库,请先从单独的目标位置测试几个恢复出来的副本,再花几个小时去恢复全部内容。一个恢复出来的文件如果只能打开一半然后失败,仍然算恢复失败。

所以,是的,在某些情况下 APFS 恢复是可能的。我会采用这样的顺序:先检查快照,如果数据很重要就先给驱动器做镜像,从另一个启动环境扫描镜像或源盘,只恢复到另一块磁盘,然后验证恢复出来的文件。如果这是现代 Mac 的内部 SSD,没有快照,而且删除之后还被继续使用过,那就把预期放低。如果这是外部 HDD,并且你在删除后立刻停止使用它,那么你的机会会好得多。