从发生故障的驱动器中保存数据


12

外部3½英寸HDD似乎有发生故障的危险- 空闲时会发出滴答声

我已经购买了一块替换驱动器,并且想知道最好的策略来从可疑驱动器中获取数据,并尽可能多地节省数据。

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

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

是否可以更慢地进行复制(例如,每x MB / GB暂停)比完全运行操作(例如,避免出现任何过热问题)更好?

对于“您的备份在哪里”的人群:这实际上是我的备份驱动器,但是它也包含一些非关键性和笨重的内容,例如音乐,它们不是备份,即不备份。

除了发出不祥的声音外,驱动器没有任何明显的故障迹象。最近,我确实要纠正一些错误-孤立的inode,不正确的可用块/节点数,inode位图差异,删除的inode的dtime为零;总共约有20个错误。

分区的文件系统是ext3。


Answers:


9

您可以使用ddrescuedd_rescuemyrescue克隆故障磁盘,而不会在任何不可读的扇区上中止。(Myrescue的可配置性较差,但它会尝试跳过不可读的区域,因此具有更好的默认策略。)这将复制包括空格在内的所有内容,并且不允许您设置优先级。然而,这样一个低级别的方法比文件系统级工具的优势:如果一个目录是不可读的,你仍然可以通过搜索等工具的原始图像恢复它包含的文件foremostmagicrescuephotorec包括在testdisk等。


的链接magicrescue似乎已断开;您是说itu.dk/~jobr/magicrescue吗?
landroni 2014年

@landroni是的,我想这个学生毕业了,谢谢。
吉尔斯(Gillles)“所以别再邪恶了”(

“ Myrescue [..]具有更好的默认策略”您是否考虑发布一个ddrescue配置了myrescue默认值的示例?谢谢!
landroni 2014年

1
对于ddrescue/,dd_rescue您以较大的块尺寸进行第一遍加工,然后在随后的遍中更改为较小的体积(例如,每次将尺寸减半)。当然,这需要您使用日志文件(请参见手册页)。
彼得2014年

令人困惑的是,在基于Debian的系统上,命令ddrescue来自package gddrescuedd_rescue从包装ddrescue; 和myrescue从包myrescue
landroni 2014年

8

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

我将立即使用将开始将唯一数据复制到新驱动器rsyncrsync将使您可以暂停,继续和重新启动,直到获得所有数据为止。

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

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

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

这将从磁盘读取每个扇区,并将其写回而无需更改。这将迫使驱动器固件检查每个扇区是否有错误,并重新映射找到的任何坏扇区。这是昂贵的SpinRite程序最重要的部分。仅当出现badblocks故障并且您还没有从驱动器上获得所有唯一数据时,才可以提高速度:SpinRite会比尝试更努力badblocks


2

如果磁盘快要死了,请首先确保尽可能复制好磁盘(请参见Gilles的回答),然后再继续播放驱动器。这样一来,您总会至少拥有一些数据,以防万一出了问题(硬件故障经常会发生)。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.