从损坏的硬盘中拯救文件:如果所需文件很小而且很少,那么完整的 ddrescue 映像是否仍然是大硬盘上“破坏性最小”的选项?

从损坏的硬盘中拯救文件:如果所需文件很小而且很少,那么完整的 ddrescue 映像是否仍然是大硬盘上“破坏性最小”的选项?

这是一台运行 Windows 10 的 HP 15 电脑,其内置硬盘出现故障/死机,我认为是物理故障。它没有开始发出异常声音/咔嗒声,似乎没有发生重大磁头碰撞,只是物理坏扇区;我不想尝试启动它,只想挽救文件。

它从正常工作到随机关机并一夜之间重启,有一段时间我可以进入桌面;几次启动之后,我可以进入 Windows 恢复,有一次,我运行了 chkdsk /r /i;有大量“文件段不可读”坏扇区记录;它纠正了很多问题,但大约一天后,它似乎挂了,甚至不再显示进度,所以我不得不关机。之后我甚至无法让 Windows 系统恢复选项出现;过了这个点,它总是启动到黑屏,我只能进入 BIOS。

从 Linux USB 启动并运行 fdisk -l 会列出以下分区:

  • 1 - Windows 恢复环境
  • 2-电喷系统
  • 3 - Microsoft 保留
  • 4 - Microsoft 基本数据(~450 GB)
  • 5 - Windows 恢复环境
  • 6 - Microsoft 基本数据

除 3 和 4(包含数据)之外的所有分区均已挂载;分区 #4 失败并出现错误:

ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Failed to read NTFS $Bitmap: Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a SoftRAID/FakeRAID hardware.

然后它建议运行 chkdsk /f 并启动 Windows,但我担心 chkdsk 运行起来太危险。每个读/写周期都有可能造成进一步的损坏,所以我希望使用 ddrescue 克隆到外部硬盘。

但是,重要文件的数量很少,总共可能不到 50-100 MB。但是我不知道它们的具体位置(但显然应该是桌面/我的文档等的子文件夹),并且无法访问文件系统来找到它,因为它已损坏,也不知道如何查看文件夹结构。

这就是我的问题。

使用 ddrescue 对整个驱动器进行映像处理是否仍然是最安全的,或者是否有办法获取我需要的少量数据,而不会在文件系统损坏的情况下造成太大损坏?

我还应该做些什么吗,或者我可以使用任何免费的实用程序来使其更安全或获取有关硬盘状态的更多信息?

我试图尽量减少读/写周期,因为每次尝试似乎都会造成更多的潜在损害。我以前从未使用过 Linux,对命令或参数一无所知,任何“显而易见”的建议都会对我有所帮助(我的计算机知识非常少,所以如果这个问题不适合超级用户,我深表歉意。)

答案1

在这种情况下,我的首要规则之一就是应该写入周期。面对可疑数据,我不会尝试恢复磁盘上的任何内容。相反,我会使用读取磁盘并将数据写入其他地方的工具。

我从来没有从损坏的媒体中恢复过文件,我所做的每次恢复都涉及到损坏的控制数据(分区表、RAID 阵列等)。话虽如此,我最成功的是R-工具。我还没有发现任何难倒它的东西,甚至其他程序发誓不存在的驱动器。请注意,它有一个可供下载的演示版本,可以让您查看它是否能找到您的数据。(演示版本的唯一缺点是它对实际恢复的文件大小有严格的限制。)

如果结构足够完整,您可以直接找到所需的文件并恢复它们,这就是我要做的。如果其中有漏洞,您将不得不扫描数据——此时您无论如何都会读取所有内容,第一步应该是制作图像并对其进行处理。

(我除了是一位满意的客户之外,与 R-Tools 没有任何关系。)

答案2

我运行了 chkdsk /r /i

这是一个坏主意。如果有丝毫怀疑存在物理故障,则切勿使用 CHKDSK。始终首先检查 SMART 状态。

但是重要文件的数量很少,总共可能不到 50-100 MB。不过我不知道它们具体在哪里(但它应该是桌面/我的文档等的明显子文件夹),并且无法访问文件系统来定位它,因为它已损坏,而且不知道如何查看文件夹结构。

这并没有告诉您这些文件在硬盘上的实际位置。

使用 ddrescue 对整个驱动器进行映像处理是否仍然是最安全的,或者是否有办法获取我需要的少量数据,而不会在文件系统损坏的情况下造成太大损坏?

使用免费工具,您可以做的最好的事情就是运行 ddr_utility 中包含的 ddru_ntfsbitmap,它可以 1) 解析 $Bitmap 以生成用于 ddrescue 的映射文件,以便仅恢复分配的簇,并且 2) 转储 $MFT。如果 $Bitmap 文件已损坏,1) 将无法工作,或不可靠,但 2) 仍有(很小)机会可以工作,因为 $MFT 通常位于更远的位置,大约在 3GB 标记处。然后,您必须能够使用十六进制编辑器分析 MFT,查找您要查找的每个文件的 MFT 记录,以便获取其数据运行的列表。然后,使用与,应该可以生成自定义的目标 ddrescue 命令,以便仅提取与这些特定文件相对应的簇。不用说,这对于普通计算机用户来说是一项非常具有挑战性的任务。

如果硬盘的问题与磁头薄弱/故障有关(产生典型的好/坏区域交替“条纹”图案,请参见屏幕截图这里或者这里),如果不将驱动器送到专门的数据恢复实验室进行妥善维护,您不太可能获得所需的一切。


编辑 20211104:
无论原始帖子中描述的具体情况如何,如果有人正在寻找标题中提出的问题的答案,那么一个不是免费但仍然相对便宜的解决方案(与专业实验室提供的全面数据恢复服务相比)是使用HDDSuperClone 与 DMDE 结合使用。HDDSuperClone 有免费版本,它基本上是 ddrescue 的 GUI 版本,但有一些增强功能,但此特定功能需要“专业”许可证(上次我检查时,可以购买一次性工作的时间限制许可证,费用仅为无限制许可证的一小部分)。目的是依靠从 DMDE 获得的文件系统分析来定位故障驱动器的相应区域并仅克隆这些区域,这确实是破坏性最小的选项 — 再次强调,前提是文件系统结构仍然完全可读。免责声明:我个人没有尝试过这种方法。

相关内容