如何在不格式化RAW分区的情况下恢复数据?

我的驱动器突然变成了 RAW 分区,现在我无法打开它,也无法访问重要文件。Windows 一直提示我格式化它,但我正尝试在不丢失任何数据的情况下恢复数据。我需要关于安全的 RAW 分区恢复方法、工具或步骤的建议,这些方法可能有助于我在不格式化驱动器的情况下恢复对文件的访问。

当 Windows 将分区变成 RAW 时,我不会点格式化。我知道它看起来像是最直接的修复方法,但如果你的文件很重要,一开始这么做就是错误的。RAW 通常意味着 Windows 无法继续读取文件系统。这并不表示你的数据当场就消失了。

我首先会理清一件很简单的事。你是想先把文件保存出来,还是想先让分区重新可用。如果数据很重要,我会把修复当作第二步,而不是第一步。

我会按这个顺序来:

  1. 先不要对 RAW 分区做任何操作。
  2. 把文件转移到另一块硬盘上。
  3. 只有在那之后,再尝试修复该分区。
  4. 如果修复没有结果,就重建分区并将其格式化。

先把数据导出来

我会先从 Disk Drill 开始。我在一个案例里用过它:Windows 能看到硬盘,但就是拒绝读取卷,而它在无需我手动细致干预的情况下,能比较体面地尝试不止一种恢复方式。当文件系统信息还保留了一部分时,它通常能在保留文件夹结构和文件名的情况下恢复文件。等到文件系统损坏得太严重时,它就会退回到文件签名扫描,转而按特征模式查找受支持的文件类型。

预览功能比很多人想的更重要。我遇到过扫描结果显示出成千上万个文件,但通过预览很快就能明显看出哪些是完好的,哪些只是垃圾数据。

步骤很直接:

  1. 把 Disk Drill 安装到别的位置,不要装在受影响的分区上。
  2. 启动它,然后选择 RAW 磁盘或分区。
  3. 点击 Search for Lost Data。如果是外置硬盘,在出现提示时使用 Universal Scan。只有在恢复相机、运动相机或无人机拍摄的素材时,我才会切换到 Advanced Camera Recovery
  4. 让扫描完整结束。除非硬盘已经出现明显故障,否则不要提前中断。
  5. 预览你在意的文件。
  6. 把它们恢复到另一块物理硬盘上。

如果硬盘会频繁掉线、卡死,或者导致系统无响应,我会先给它做镜像。Disk Drill 自带逐扇区备份选项,这也是我在继续操作原盘之前会用的方法。基于镜像进行处理当然会更慢一些,但这样能减少对一块可能已经快要报废的硬盘的进一步磨损。这一点我是吃过亏才学到的。

修复应在恢复之后进行

一旦你的文件已经放到了安全的地方,我才会考虑这个分区是否值得修复。

如果该分区原来是 NTFS,CHKDSK 有时能帮助处理引导扇区损坏或文件系统错误。有时而已。我不会在恢复之前运行它,因为它会向该卷写入更改,而如果结构本身已经不稳定,这些更改并不总是有帮助。如果原始文件系统是 FAT32exFAT,我会完全跳过 CHKDSK。它在这种情况下并不能达到你的目的。

如果 CHKDSK 失败了,或者如果我想更有把握地恢复分区布局本身,我会转而使用 TestDisk。

  1. 打开 testdisk_win
  2. 创建日志文件。
  3. 选择有问题的驱动器。
  4. 接受检测到的分区表类型。
  5. 选择 Analyse
  6. 运行 Quick Search。如果它没有找到该分区,就运行 Deeper Search
  7. 如果它找到了正确的分区,使用 Write,然后重启。

如果 TestDisk 仍然一无所获,我不会继续把时间浪费在旧论坛帖子里那些杂乱的修复工具上。到了某个时候,更实际的做法是在磁盘管理中重建该卷,创建一个 New Simple Volume,执行快速格式化,然后把你恢复出来的文件再复制回去。

人们容易忽略的两件事

首先,SSD 在这种情况下很敏感。如果 RAW 分区搁置太久,而 TRIM 开始作用于与已删除数据相关的块,恢复成功的几率会大幅下降。我不会把 SSD 放着几天不管,再慢慢决定该怎么做。

其次,如果硬盘发出咔嗒声、消失、随机重新连接,或者只是偶尔显示出来,我会停止自己动手处理。这些通常更像是硬件故障的迹象。继续折腾一块正在损坏的硬盘,往往会让下一次恢复尝试变得更糟,而不是更好。如果这些文件独一无二,尽快找数据恢复实验室就很有必要了。

不要对其进行格式化。先检查问题是逻辑性的还是物理性的。

我在一点上与 @mikeappsreviewer 的顺序稍有不同。我会在进行长时间扫描之前先测试硬盘健康状况。如果 SMART 显示坏扇区持续增加,或者硬盘发生断连,就不要继续给原始磁盘施加压力。先用 HDD Raw Copy Tool 或 ddrescue 之类的工具进行克隆,然后扫描克隆盘。这样可以减少磨损,如果第一次扫描出问题,你还有第二次机会。

对于 Windows 检查:

  1. 打开磁盘管理,记录磁盘大小和分区布局。
  2. 用 CrystalDiskInfo 检查 SMART。
  3. 如果是外置硬盘,尝试更换数据线、接口或 USB 硬盘盒。
  4. 如果硬盘看起来稳定,再扫描 RAW 分区数据恢复。

Disk Drill 在这里是个可靠的选择,因为它对丢失分区和 RAW 文件系统的处理都很好,而且预览功能能帮助你区分真实文件和垃圾文件。恢复到另一块硬盘,绝不要恢复回同一块硬盘。如果文件夹缺失,按文件类型和日期排序,这通常能节省时间。

在文件安全恢复出来之前,我会跳过 chkdsk。对于 RAW 卷,它通常没有什么实际作用,有时还会让后续恢复变得更麻烦。如果你的目标是恢复分区表项本身,而不是逐个文件恢复,那么 TestDisk 更合适。

从搜索短语来看,可以考虑 how to recover data from a RAW partition without formatting 或 RAW drive file recovery on Windows。还有,这个关于在不格式化的情况下从 RAW 分区恢复文件的短片也很相关。

如果磁盘发出咔哒声、卡住或消失,就停止自行处理。该送实验室了。这部分很糟心,但继续折腾一块快坏掉的硬盘,往往就是人们失去最后可读扇区的原因。

不要格式化。那个弹窗本质上是 Windows 在说“我读不了这个,要不要把它擦掉,这样我就能读了?”这和修复它并不是一回事。

我大体同意 @mikeappsreviewer@codecrafter 的看法,但我想补充一点他们有点绕着说的内容:在进行大规模恢复之前,先检查一下 RAW 问题是不是假的。我见过硬盘显示为 RAW 只是因为 USB 桥接器/硬盘盒不稳定。如果是外置硬盘,试试换一根数据线、换一个接口,如果可以的话,用别的方式直接连接裸盘。听起来很蠢,但有时候真有用。

我会这样做:

  1. 停止使用这块硬盘。
  2. 如果硬盘还有响应,检查 SMART/健康状态。
  3. 如果它不稳定,先做克隆/镜像。
  4. 如果它稳定,把文件恢复到另一块硬盘上。
  5. 只有在那之后,再考虑让分区重新变得可用。

我也会避免过度热衷于修复。TestDisk 的确很适合分区修复,但如果文件系统本身已经损坏,“恢复”分区表项也不会神奇地让你的文件重新可读。这时候文件恢复软件才是更实际的选择。Disk Drill 在 RAW 分区恢复方面很可靠,因为它可以绕过损坏的文件系统进行扫描,仍然按结构或签名提取文件。最重要的是把恢复出的数据保存到另一块物理硬盘,而不是原来的那一块。人们老是在这点上出错。

还有一点:如果这是 SSD,不要一边犹豫一边把它放着不管太久。恢复成功的机会可能会变得更差。

如果想进一步阅读,这篇适用于外置硬盘的分区丢失恢复分步指南也值得看看。

@codecrafter@mikeappsreviewer 有一点小分歧:除非你已经有克隆副本或文件已备份,否则我不会急于使用任何会执行写入操作的工具,哪怕是 TestDisk。RAW 当然可能只是分区记录损坏,但它也可能是硬盘正在悄悄损坏时最先出现的可见症状。

我想在线程里补充的是:在进行完整恢复扫描之前,先检查该分区是否仍然具有可识别的引导扇区或文件系统头。十六进制查看器或分区工具有时可以在卷起始附近显示 NTFS、exFAT 或 FAT 签名。如果签名还在,但 Windows 仍然显示 RAW,那更说明是元数据损坏,而不是文件完全丢失。问题不同,风险也不同。

另外,要仔细留意报告的容量。如果硬盘突然显示错误大小,比如 0 字节、小得离谱,或者某个奇怪的截断数字,那就不是正常的文件系统问题了。这更偏向硬件、固件或硬盘盒故障。在这种情况下,我更同意 @caminantenocturno 的看法:不要再轮流尝试各种修复命令,而是应当把硬盘本身视为可疑对象。

关于恢复软件,如果你想要图形界面和文件预览,Disk Drill 是个比较合理的选择。

优点:

  • 易于使用
  • 预览支持良好
  • 对 RAW 和丢失分区的处理还不错
  • 可以基于文件系统数据或签名进行恢复

缺点:

  • 深度扫描可能耗时非常久
  • 恢复后的文件名和文件夹不一定总能保留
  • 免费恢复限制取决于平台和版本
  • 如果你需要高度手动控制,它并不是最佳选择

如果 Disk Drill 没有显示合理的文件夹树,通常意味着文件系统元数据损坏过于严重,你已经进入只能按文件特征提取的阶段。那时应当先关注你价值最高的文件类型,而不是所有内容。这样可以节省时间和存储空间。

还有一个很实用但很少有人提到的建议:在 Windows 中重新连接状态不稳定的硬盘之前,先禁用 automount。这样可以降低操作系统试图自动挂载或自动写入元数据来帮忙的概率。