从 SSD 恢复 APFS 数据是否可能?

我的 Mac SSD 上的 APFS 宗卷突然无法挂载,而且“磁盘工具”也无法修复它。我需要帮助判断是否可以从 SSD 进行 APFS 数据恢复、哪些工具或步骤最安全,以及如何避免让丢失的文件更难恢复。

在文件恢复之前,我会把这块驱动器当成易损设备来对待。最重要的是要立即停止使用这块 APFS 驱动器。不要往里面保存任何东西,不要在上面安装恢复工具,如果能避免,也不要让 macOS 继续往里面写入数据。已删除的数据可能会在正常使用中被覆盖,一旦发生这种情况,恢复效果就会差很多。

这里驱动器的类型非常关键。

如果这是外置 HDD,或者是一台较老的 Mac,使用的是 APFS 格式化的机械硬盘,那么只要删除的数据还没有被覆盖,恢复成功率通常还是不错的。

如果它是SSD,尤其是 Mac 内部 SSD,那么时间就更敏感了,因为有 TRIM。TRIM 会让 SSD 知道哪些已删除的数据块可以安全清除。一旦这些数据块真的被擦除,恢复软件就无法再把它们重建出来。所以如果文件是从 APFS SSD 上删除的,不要继续使用 Mac 并寄希望于运气好。并且在较新的 macOS 版本中,你通常也无法关闭内部 SSD 的 TRIM,因此最好的做法就是停止使用它并尽快处理。

在开始扫描之前,先检查这些比较简单的恢复方式:

  1. Time Machine 备份。
  2. APFS 快照,如果存在的话。
  3. FileVault 加密。如果驱动器已加密,大多数工具都需要先将其解锁或解密,才能正确扫描。

至于实际恢复,Disk Drill 是我会尝试的工具。与那些只按文件签名搜索的工具相比,它处理 APFS 的方式更实用,因此当文件系统元数据仍然存在时,你有可能找回原始文件名和文件夹结构,而不是得到一堆杂乱无章的文件。

更安全的操作流程大致如下:

  1. 把 Disk Drill 安装在另一块驱动器上,不要安装在你要恢复数据的那块盘上。
  2. 连接受影响的 APFS 驱动器。
  3. 运行完整扫描。
  4. 使用预览功能检查文件是否真的可以读取。
  5. 把文件恢复到另一块磁盘。绝对不要把它们恢复回有问题的那块驱动器。

不要跳过预览这一步。它可以帮你节省很多时间,因为在你决定恢复全部内容之前,它会显示这些文件是否大概率仍然完整。

如果驱动器无法挂载、会随机断开连接,或者发出异常噪音,我暂时不会开始运行修复工具。在重要文件复制出来之前,先避免使用 First Aid 或任何其他可能会向磁盘写入更改的工具。先把数据取出来,再考虑修复驱动器。

如果这只是误删文件或文件系统损坏,那么你的恢复机会通常会比驱动器本身正在故障时大得多。

在你还没有磁盘副本之前,不要反复运行“急救”,也不要随意尝试终端里的各种“修复”命令。对于你不在乎的卷宗来说,“急救”可能还行,但对于受损的 APFS 容器,它在尝试修复时可能会更改元数据。如果文件系统已经不稳定,这可能会把原本还能恢复的目录树变成一团糟。

我大体同意 @mikeappsreviewer 关于停止写入的看法,但如果硬盘表现得不稳定,我会对直接扫描原始 SSD 更加谨慎。如果它是外置 SSD,并且能够保持可靠连接,先逐字节制作镜像或克隆到另一块硬盘,然后再扫描镜像。如果它是较新 Mac 的内置 SSD,这可能更困难,因为你不能直接把硬盘拆出来,但思路是一样的:如果可能,从另一台 Mac 或外部系统启动,避免从有问题的卷正常启动,并且只复制/恢复到独立的存储设备。

APFS 恢复是有可能的,但预期应该现实一些。如果 APFS 容器元数据损坏,但 SSD 里仍然有数据,像 Disk Drill 这样的工具可能会找到带有文件名和文件夹的文件。如果 TRIM 已经清除了已删除的块,或者 SSD 控制器正在故障,软件并不能神奇地把那些块带回来。关键区别在于,这是逻辑上的 APFS 问题,还是物理/设备问题。如果 SSD 会消失、显示错误容量、反复断开连接,或者恢复工具在读取它时卡住,那就应该停下来,考虑交给实验室恢复,而不是继续“再试一个应用”。持续对一块正在故障的 SSD 施压,可能会让最后还能读取的区域也变得无法读取。

只有克隆整个 APFS 容器时,克隆才有用,而不只是克隆那个拒绝挂载的卷。APFS 可以在同一个容器中包含多个相关卷,而且有用的元数据可能并不在你预期的位置,因此按文件级复制或“给这一个卷做镜像”的方法,可能会让恢复工具可用的信息更少。我同意上面关于不要反复对 SSD 进行修复操作的谨慎建议,但在花几个小时扫描之前,我会先检查这一点:在“磁盘工具”中,启用“显示所有设备”,看看即使 Data 卷无法挂载,物理磁盘和 APFS 容器是否仍然可见。如果容器可见并且驱动器读取稳定,就把它镜像/克隆到单独的存储设备上,再用类似 Disk Drill 的工具扫描副本。如果只是卷丢失了,但硬件看起来正常,恢复是很有可能的。如果物理 SSD 本身正在消失或显示出荒谬的容量大小,那么软件恢复就不是正确的方向。

不要点击“初始化”、“抹掉”,也不要接受任何提示磁盘无法读取的 macOS 弹窗,除非你已经为它创建了镜像。即使 APFS 容器仍然可以恢复,也可能出现该警告,而把它变成一块“全新”磁盘,会让 Disk Drill 之类的工具只能处理碎片而不是原始结构,这是导致问题恶化的快捷方式。如果 SSD 显示的容量正确,恢复仍有可能;如果不正确,就不要再把它当作软件问题来处理。