如何恢复ddrescue过程?


9

我必须恢复我的1TB USB HD。我正在ddrescue用来实现这一目标。ddrescue一旦开始,有什么方法可以恢复吗?

我正在使用以下命令:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image

Answers:


14

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

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

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log

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

注意ddrescuedd_rescue是不同的程序。


1
因此,如果我最初从一个日志文件开始并且将再次运行相同的命令,它将自动从上一个日志位置恢复吗?/ edit:它确实从最后一个位置开始。
Qwerty

6

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

产生模式

因此,您没有阅读本教程,没有日志文件就没有启动ddrescue。现在,两天后,您的计算机崩溃了,您不知道ddrescue可以保存多少数据。更糟糕的是,您无法继续进行救援。您必须从一开始就重新启动它。

或者,也许您开始使用复制驱动器,dd conv=noerror,sync并且现在处于上述相同的情况。在这种情况下,请注意,除非使用syncconversion参数调用dd,否则不能使用它制作的副本。

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

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

例如,如果您首先尝试以下命令之一:

ddrescue infile outfile

要么

dd if=infile of=outfile conv=noerror,sync

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

ddrescue --generate-mode infile outfile logfile

将要救援的磁盘放入文件中,而将救援数据超过文件吗?
堡垒

3

正如其他人所说,您应该始终将日志文件指定为第三个参数,这将允许继续执行操作。既然您没有这样做,那将无济于事。如果您知道进程到达的大致位置,则可以使用--input-position--output-position参数从该位置开始(请确保将这两个参数设置为相同的值,否则输出将被破坏)。


2

由于您没有将日志文件指定为第三个参数,因此无法自动恢复。如果您知道已经解救的扇区,则可以手动创建日志文件,语法很简单。只需在指定日志的同时对另一个文件启动另一个虚拟救援,然后让它读取不同的区域即可。然后编辑日志,以表示第一个文件中已经被拯救的区域。现在,重新运行上一个命令,但将日志文件的名称作为第三个参数。然后,ddrescue将在第一个未尝试的扇区上恢复。


2

每个https://wiki.archlinux.org/index.php/Disk_cloning看来,实际上,使用该conv=noerror,sync开关dd确实会在块的末尾添加零,而不是精确地出现读取错误的位置。这与Miles Wolbe从2013-08-29开始的回答中的信息相反。

例如,如果序列正确198123283,并且中间出现读取错误,它将写入198283000,而不是198000283

因此,在实际存在读取错误的情况下,建议的方法将不准确-将存在一些本可以读取的区域,这些区域最终将填充零,但将被视为“已救援”。

顺便说一句,一个好的实践是通过用零(或至少可用空间,例如可以用WinHex完成)填充目标驱动器来开始这种恢复尝试。


嗨,GabrielB,欢迎来到超级用户。我已经编辑了您的答案,但是我不确定它是否足以独立存在-也许您可以进一步对其进行编辑,使其包含一小部分也可以解决原始问题?
bertieb

如果我没记错的话,我想评论Miles Wolbe的答案,但不能以新成员的身份发表,因此我不得不发布一个新答案。如果可能的话,请随意将上面的帖子移到应该显示的位置并删除该帖子。
GabrielB 2015年
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.