linux:从故障硬盘复制文件/目录的工具?

linux:从故障硬盘复制文件/目录的工具?

我的外部硬盘(或者更具体地说,我朋友的硬盘)出现故障,当然没有备份。

我正在寻找一种能够尝试拯救特定目录中尽可能多的文件的工具。

以前,我使用 dd_rescue 做过这种事,但是这个 500GB 的磁盘上只使用了 50GB,而且我不想制作该分区的完整映像,因为另一个磁盘上没有足够的可用空间。

因此,我正在寻找一个强大的工具/脚本,它可以递归尝试复制文件/目录,重试 n 次,如果不可能则跳过。

我遇到的一件事是不可阻挡的复印机(http://www.roadkil.net/program.php?ProgramID=29)。它很好,但不够强大,并且在 Linux 上使用 Qt,而我在命令行上没有它。

一定有某种 Linux 工具/脚本!你能帮助我吗?谢谢!

答案1

您可以尝试使用dd_rescue以下find类似的方法:

# start where you need to rescue things from
cd /place/bad/drive/is/mounted

# create directory structure to try restore to
mkdir -f /path/to/place/to/try/restore/to/ 
find . -type d -exec mkdir -f /path/to/place/to/try/restore/to/{} \; 

# find all files and try rescue them
find . -type f -exec dd_rescue {} /path/to/place/to/try/restore/to/{} \; 

注意:我还没有测试过上述方法,所以请先在一个小数据集上尝试一下,以确保输出符合要求,然后再在一组可能需要很长时间才能处理的文件上尝试。并且,为了避免偏执,请确保要救援的驱动器以只读方式安装。

如果目录结构受到驱动器不良状况的影响,这将无法很好地应对,因为步骤find不会像部件那样在出现错误时重试dd_rescue- 所以你可能会使用dd_rescue-the-whole-partition-and-pluck-files-from-the-rescued-image-afterwards 选项,除非目录结构是“安全的”。

答案2

David Spillett 的建议最接近您的需要,但请记住,对于许多故障磁盘,这是一个不同的 - 而且更困难的! - 寻找问题(这将要当您从文件系统读取文件时发生)......

过去,我曾尝试过从头到尾读取扇区而不进行寻道(即 dd if=/dev/sda of=/path/to/rescue bs=...),提供所有磁盘内容,但当通过文件系统进行寻道尝试读取文件时,始终会因 DMA 错误而失败...

答案3

使用文件浏览器进行拖放?

说实话就是这么简单。如果你想更高级,你可以搜索所有文件,例如 doc 文件,然后拖放它们。

不过,您需要注意并行文件传输,传输得越多,速度就越慢,并且驱动器损坏的风险就越大,最终您只能获得一堆部分文件。

相关内容