如何*快速*获取包含坏扇区/块/簇/任何内容的文件列表?

Ata*_*rio 11 windows-7 performance hard-drive bad-sectors allocation-unit

我妻子的 Windows 7(64 位)盒子突然出现了 SMART“磁盘坏”状态。我试图:( 通过在网络上创建一个系统映像到另一台机器来复制所有内容(没有关于缺乏备份方案的警告,我已经知道了 ),但它到达某个点并开始永远。执行 achkdsk表明某些文件通过具有许多坏块(例如连续数十万个,如果事件日志有任何指示)并导致系统执行其标准的尝试恢复和重新定位而导致这种情况-访问的东西。

但这需要很长时间,我担心在我复制该死的东西之前磁盘会完全失效。但是,到目前为止,有几个文件是她在其他地方复制的文件,因此我可以在重试备份之前删除它们以大大加快速度。

那么:是否有一些工具或程序会尝试读取每个文件,并在遇到坏块时告诉我它并跳到下一个文件?所以我可以看到哪些我可以转储,哪些我需要让它尝试恢复?

小智 5

由于没有人真正回答过您的问题,因此以下不完全是闪电般快速的方法可能是获得所需内容的最快方法。

  1. 您将需要在 Linux 下运行的实用程序,因此您首先需要创建一个 USB 密钥或 CD,您可以使用它来引导进入 Linux(或将磁盘连接到 Linux 机器)。

  2. 然后,您需要从 Gnu ddrescue 包中运行 ddrescue。这将创建一个“mapfile”,它基本上是磁盘上坏扇区的列表。ddrescue 有许多不同的选项,其中包括从坏扇区读取/恢复数据的难度。如果您想将任何出现问题的扇区视为“坏”扇区,并且不想真正使用 ddrescue 恢复任何内容,您可以使用“-n”选项并指定 /dev/null 作为目标,这将是相当快(ddrescue 只会按顺序读取磁盘的所有扇区一次,并且 mapfile 输出将包含读取失败的扇区列表)。

  3. 然后,您需要在映射文件和磁盘上运行一个名为 ddru_ntfsfindbad 的实用程序,这将输出您想要的内容:磁盘上包含坏扇区之一的文件列表。

但是请注意: 1. 如果驱动器出现故障,完全读取它很可能会使故障变得更糟。因此,很可能(有些人会说“接近确定”)在您通过该过程读取磁盘两次之前,某些/许多/许多扇区是好的扇区现在是坏的。明智的做法是拥有一个良好的驱动器并执行上述两个步骤来实际恢复数据。如果您这样做,当然,您可能希望使用 ddrescue 的能力来更加努力地从难以读取的扇区中获取数据。

  1. ddru_ntfsfindbad 的手册说你不能在原来的坏驱动器上运行它,除非文件系统是/曾经是 NTFS。所以你的情况没问题,但如果你在 ddrescue 恢复的驱动器上运行它,它几乎肯定会更快,而不是原始驱动器。如果坏扇区位于某些文件系统元数据中,则您确实需要这样做。

我意识到原问题很老了,但我最近遇到了这个问题,并认为其他人可能想知道原问题的答案。


hap*_*oil -2

虽然SpinRite不会完全执行您想要的操作,但它会尝试修复和恢复位于坏扇区的数据。

与往常一样,您的里程可能会有所不同,但根据各种用户的评价,它的效果与广告中的一样。我个人用它来维护我的磁盘。

查看其文档以获取更多详细信息。

  • 请勿在出现故障的 HDD 上使用 Spinrite。它的“刷新”能力,更不用说“修复”,充其量是值得怀疑的,而且当它运行时,这对于已经有缺陷的驱动器来说压力很大,实际上没有恢复任何字节的数据。一旦使用 ddrescue / HDDSuperClone 进行了完整克隆,它可能会在最后使用,以尝试挽救一些被跳过的扇区(但不要指望它,很可能它只会迫使它们被重新分配,因此原始数据无论如何都会丢失)。请参阅 Scott Petrack 的回复,了解这种情况下的最佳行动方案。 (2认同)