ddrescue、gddrescue 和 dd_rescue 之间有什么区别?

Mec*_*ail 71 command-line partitioning dd data-recovery ddrescue

dd命令通常用于对驱动器或分区进行映像备份。但是,如果源驱动器不可靠或出现故障,它的性能就会很差。我读到ddrescue/dd_rescue是用于从坏驱动器恢复映像的好工具,因为它智能地尝试重新读取第一次未能读取的扇区。

但是在 Ubuntu 存储库中,我看到两个不同的ddrescue程序,在不同的地方显示了 3 个不同但相似的名称:ddrescue, gddrescue, dd_rescue. 有什么不同?

Mec*_*ail 86

ddrescue令人困惑的是,它可以指dd_rescue由 Kurt Garloff 和GNU ddrescue编写的两个完全独立的程序。两者具有相同的目的,并且都在积极开发中。

Garloff 的程序dd_rescue是第一次尝试改进dd;GNU ddrescue 较新,旨在解决dd_rescue.

有几个来源更喜欢 GNU ddrescue 而不是dd_rescue. 例如,

  • http://lwn.net/Articles/430000/

    ddrescue 获胜(在我的书中),因为它是一个用 C++ 编写的高效自包含程序(不是 shell 脚本 kludge),在控制台/终端上产生更清晰的输出,并且(最重要的是)优雅和智能地处理不可读的块

  • http://www.toad.com/gnu/sysadmin/index.html#ddrescue

    GNU ddrescue 是您最好的朋友。

    它以前面两个程序 dd_rescue(带有下划线)和 dd_rhelp 为模型。但是 GNU ddrescue 它比两者都好得多——我在同一个驱动器上尝试了所有三个,并尝试使用普通的旧“dd”。

    Antonio Diaz Diaz 的 GNU ddrescue 从这些经验中吸取了教训。它结合了 dd_rescue 读取大块然后换档的能力,以及 dd_rhelp 记住磁盘的哪些部分已经被查看过的能力。它以非常简单的日志文件格式保存这些信息,并每 30 秒更新一次,或者在它停止或中断时更新。它是用 C++ 编写的,体积小,速度快。

GNU ddrescue 的一个优点是它可以更快地备份大多数数据,首先跳过坏块(恢复速度很慢),只有在备份好块后才返回它们。GNU ddrescue 的一个缺点是它不支持管道输出,这意味着您不能使用gzip或压缩输出图像lzop

Ubuntu 软件包

不幸的是,Ubuntu 存储库中的软件包名称令人困惑;dd_rescue包装在名称下ddrescue,并ddrescuegddrescue!从包摘要:

  • gddrescue 包裹:

    请注意,这是提供 /sbin/ddrescue 可执行文件的 GNU ddrescue 版本。如果您正在搜索 Kurt Garloff 的 ddrescue 版本,请查看 ddrescue 包。

  • ddrescue 包裹:

    请注意,这是 Kurt Garloff 的 dd_rescue 版本,提供 /bin/dd_rescue 可执行文件。如果您正在搜索 GNU ddrescue 版本,请查看 gddrescue 包。

名称摘要:

Program name     Ubuntu package name     Executable name    Name in URL
GNU ddrescue     gddrescue               ddrescue           ddrescue
dd_rescue        ddrescue                dd_rescue          ddrescue
Run Code Online (Sandbox Code Playgroud)

  • 最近的 Ubuntu(14.04 及更高版本)似乎只有 `gddrescue`,[Ubuntu 包搜索 ddrescue](http://packages.ubuntu.com/search?keywords=ddrescue&searchon=names&suite=all§ion=all) 只显示 `gddrescue ` (& `ddrescueview`) 现在,Kurt Garloff 的 `ddrescue` 仅在 12.04 (5认同)
  • 晚了两年但是:对于仍然影响人们的问题的非常好的帖子,而不仅仅是在 Ubuntu 上!我会投入我自己的两分钱,因为它只在上面的答案中提到:GNU ddrescue 的优势之一是它的日志文件功能。它不仅可以让您恢复部分恢复并稍后再试,而且因为它是人类和计算机可读的,人类和计算机都可以在以后使用它进行更高级的数据恢复。[我最近不得不在损坏的驱动器上执行此操作;如果没有日志文件,我将不知道从哪里开始!](http://unix.stackexchange.com/questions/176988/) (4认同)
  • “先跳过坏块”的原因是在尝试恢复坏数据之前先保存仍然完好的数据。驱动器上的活动会破坏更多位,尤其是反复尝试恢复坏区域。 (3认同)