如何恢复ddrescue过程?

con*_*fiq 12 hard-drive ddrescue

我必须恢复我的 1TB USB HD。我正在使用它ddrescue来实现这一点。有没有办法在ddrescue我开始后恢复?

我正在使用命令:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image
Run Code Online (Sandbox Code Playgroud)

shf*_*301 17

ddrescue可以恢复,但它需要一个日志文件才能这样做。日志文件将记录 ddrescue 到目前为止所做的进度,重新启动 ddrescue 将读取日志文件并从停止的地方开始。

日志文件将是第三个参数:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log
Run Code Online (Sandbox Code Playgroud)

如果您已经在没有日志文件的情况下启动了 ddrescue 运行并将其取消,则下次 ddrescue 运行时,它将从头开始,因为它没有已恢复内容的记录。

注意ddrescuedd_rescue是不同的程序。

  • 因此,如果我最初使用日志文件开始并再次运行相同的命令,它将自动从最后一个日志位置恢复?_**/编辑:** 它确实从最后一个位置开始。_ (2认同)

Mil*_*lbe 8

即使您忘记指定日志文件,也可能有希望:

生成模式

所以你没有阅读教程并在没有日志文件的情况下启动了ddrescue。现在,两天后,您的计算机崩溃了,您无法知道 ddrescue 设法保存了多少数据。更糟糕的是,您无法恢复救援;你必须从一开始就重新启动它。

或者,您可能开始复制驱动器,dd conv=noerror,sync现在处于与上述相同的情况。在这种情况下,请注意您不能使用 dd 制作的副本,除非它是用sync转换参数调用的。

不要绝望(还)。在某些情况下,Ddrescue 可以从输入文件和(部分)副本生成近似日志文件,这几乎与精确日志文件一样好。它通过简单地假设没有拯救包含全零的扇区来实现这一点。

但是,如果副本的目标是驱动器或分区(或现有的常规文件并且未请求截断),则很可能您需要从一开始就重新启动 ddrescue。(当然,这次是使用日志文件)。原因是驱动器中可能存在尚未被覆盖的旧数据,因此可能未被尝试但非零。

例如,如果您第一次尝试以下命令之一:

ddrescue infile outfile
Run Code Online (Sandbox Code Playgroud)

或者

dd if=infile of=outfile conv=noerror,sync
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令生成一个近似的日志文件:

ddrescue --generate-mode infile outfile logfile
Run Code Online (Sandbox Code Playgroud)