ddrescue:只重读好的扇区?

eva*_*daz 5 data-recovery ddrescue

在将损坏的文件系统映像到另一个硬盘驱动器上的文件之前,我决定试运行ddrescue(将救援的输出扔到/dev/null)只是为了看看有多少数据不可读:

# ddrescue -d -b 4096 -r 3 -f /dev/sda1 /dev/null sda1.log
Run Code Online (Sandbox Code Playgroud)

最终花了3天的时间才完成。现在我已经准备好制作真实的图像,但我不想再等三天才能完成。但是,幸运的是,因为我有一个日志文件,是否可以强制ddrescue仅救援好扇区而不触及坏扇区?

阅读了一些文档后,我提出了以下想法:

# ddrescue -d -b 4096 --fill=+ /dev/sda1 /mnt/sda1.img sda1.log
Run Code Online (Sandbox Code Playgroud)

这行得通吗?是否有另一种(首选)方法仅重读好扇区?

eva*_*daz 3

仔细阅读ddrescue手册,发现以下选项:

-m file
--domain-logfile=file

将救援域限制为日志文件中标记为已完成的块。如果目标驱动器在救援期间发生故障,这非常有用。

所以调用ddrescue看起来像这样:

# ddrescue -d -b 4096 -m sda1.log /dev/sda1 /mnt/sda1.img logfile2.log
Run Code Online (Sandbox Code Playgroud)