从故障驱动器保存数据

从故障驱动器保存数据

外部 3.5 英寸 HDD 似乎有出现故障的危险 — 它正在使闲置时有滴答声

我已经购买了替换驱动器,并且想知道从可疑驱动器中获取数据的最佳策略,并尽可能多地保存数据。

有些目录比其他目录更重要。然而,我猜测挑选和选择目录会减少我保存整个内容的机会。我还必须安装它,转储文件列表,然后卸载它,以便能够有效地确定目录的优先级。再加上这样做很耗时,所以我倾向于放弃这种方法。

我考虑过只使用dd,但我不确定它将如何处理读取错误或其他问题,这些问题可能会阻止仅数据的某些部分被救援,或者可以通过一些重试来克服,但不会重试太多危及驱动器其他部分的保存。我想理想情况下,它会执行一次传递以获得尽可能多的信息,然后返回重试由于错误而错过的任何内容。

是否有可能更慢地复制(例如每 x MB/GB 暂停一次)比仅全速运行操作更好,例如以避免任何过热问题?

对于“你的备份在哪里”人群:这实际上是我的备份驱动器,但它还包含一些非关键且庞大的内容,例如音乐,它们不是备份,即未备份。

除了这种有点不祥的声音之外,驱动器没有表现出任何明显的故障迹象。我最近确实必须检查一些错误 - 孤立的 inode、不正确的空闲块/inode 计数、inode 位图差异、删除的 inode 上的 dtime 为零;总共大约有20个错误。

该分区的文件系统是ext3。

答案1

您可以使用ddrescue或者dd_rescue或者myrescue克隆故障磁盘,而不会在任何不可读的扇区上中止。 (Myrescue 的可配置性较差,但具有更好的默认策略,因为它会尝试跳过不可读的区域。)这将复制包括空白在内的所有内容,并且不允许您设置优先级。然而,这种低级方法比文件系统级工具有一个优势:如果目录不可读,您仍然可以通过使用以下工具搜索原始映像来恢复它包含的文件:foremost,magicrescuephotorec包括在测试盘, ETC。

答案2

如果不确切知道驱动器出了什么问题,就无法知道最好的选择。如果是机械故障,避免加热会有所帮助,但如果是由于伺服数据错误造成的,那么热量可能并不重要。

我会立即开始将唯一数据复制到新驱动器rsyncrsync会让您根据需要暂停、恢复和重新启动,直到清除所有数据。

然后我会在驱动器上运行数据清理。我从ext3文件系统假设您正在运行 Linux,因此请尝试以下操作:

# umount /dev/sdX
# badblocks -n /dev/sdX

(首先卸载驱动器很重要。)

这将从磁盘读取每个扇区并将其不做更改地写回。这将迫使驱动器固件检查每个扇区是否有错误,并重新映射它发现的任何坏扇区。这是昂贵的最重要的部分斯宾瑞特程序确实如此。仅当badblocks失败并且您仍未从驱动器中获取所有唯一数据时才采取这一措施:SpinRite 会比badblocks现在更加努力。

答案3

如果磁盘快要死了,首先确保你尽可能地克隆它(参见吉尔斯的回答)和只有那时继续使用驱动器。这样,您将始终至少拥有一些数据,以防出现问题(这通常是由于硬件故障而发生)。

如果您使用ddrescue(或者dd_rescue,我不确定其他的),您始终可以复制部分克隆的数据以及相关的日志文件并尝试通过ddrescue在执行应该修复驱动器的操作后再次运行来改进它。它将尝试读取丢失的部分,同时保持克隆良好的部分不变。

相关内容