GNU ddrescue (package name: . Gddrescue of engl to rescue with the meaning and rescue, recover, recover ) is a command -line utility for data recovery. The program copies data from a file or from a block-oriented device (hard disk, CD- ROM or the like) in another file or to another block device. Even with read errors it tries to reproduce the data as much as possible.

History and Development occasion

Antonio Diaz Diaz started with the development of ddrescue in the summer of 2004 in order to recover data from a defective CD -ROM, and because he was not a program that satisfied his demands for this task.

Diaz was and is the sole developer and programmer of ddrescue and referred to it as a somewhat complex but small project for which, therefore, no more than one developer is required.

Demarcation from other programs

The program is neither a fork of dd nor does it have anything else to do with dd, except that both programs can copy data from one device to another. One difference is that ddrescue a sophisticated algorithm used to copy data from intermittent drives in a way that as little further damage is caused as possible.

GNU ddrescue is not identical to the older utility dd_rescue by Kurt Garloff.

While there is a shell script called dd_rhelp, the Garloffs dd_rescue multiple calls to afford something like GNU ddrescue; However, should the cooperation of dd_rescue and dd_rhelp loud Antonio Díaz Díaz and his other comparatively inefficient. A certain slowness arises from the fact that part of the work is done by a script, whereas GNU ddrescue is a fully compiled program that does not require a comparatively slow controlling script.

Task of the program

According to his program ddrescue author can be mainly used for two purposes:

GNU ddrescue has the differiertesten algorithm for change of block sizes, which is available in an open- source software. It is considered a major data recovery tool, and is used professionally.

If you use the logfile technique of ddrescue, the data is restored particularly efficient, because only the needed blocks are read. Moreover, one can thus interrupt the data recovery at any time and resume it later at the same place.

Special applications

Automatic combination of backed up data: Is there more damaged copies of a file, a CD- ROM, or other block-oriented storage, so you can ddrescue succession can copy any of the copies in the same output file, and thereby may obtain a complete and error-free file. If the log file ( logfile engl. ) is used, then only the blocks are read for the second and each subsequent copying that are still needed.

Ddrescue is recommended to compress backups with lzip because the Lzip format is designed for long-term archiving of data and data recovery features, offers good complement the skills of ddrescue. If the data loss is due to a file on a damaged disk, is a collaboration of ddrescue and Lziprecover the best way to restore data from several damaged copies.

Ddrescue can selected portions of the output file overwrite (fill mode). Thus, for example, deleted data or bad sectors are marked and sometimes bad sectors be repaired.

Example of use

Recover a disk

Restore ddrescue a hard disk with two Ext2 partitions from / dev / sda to / dev / sdb.

Hardware constellation

The example sets - even if other configurations are possible - requires that four disks are connected to the computer:

  • The restore or to copy hard disk (/ dev / sda )
  • A blank second hard disk (/ dev / sdb ), which is at least as large as the first, which is to be copied,
  • A CD -ROM drive for a Linux live CD and
  • A USB flash drive for the log file of ddrescue ( / dev/sdc1 ).

The use of a separate USB flash drives for the log file ensures that the file is retained even in a system crash. If you save it, however, only in the file system of the live CD, then it is lost in a possible system rebooting, which ddrescue his work could not continue at the point at which it was interrupted. Since a recovery process may take several hours of ddrescue, this is a non-negligible risk.

The command sequence

The computer starts from a Linux live CD like Parsix, kanotix, then you are at the command line toggles through the following commands:

Ddrescue -f -n / dev / sda / dev / sdb / media / MyUSB / rescue.log    ddrescue -d -f - r3 / dev / sda / dev / sdb / media / MyUSB / rescue.log    fdisk / dev / sdb    e2fsck -v -f -p / dev/sdb1    e2fsck -v -f -p / dev/sdb2 The commands in detail


Ddrescue is pre-installed component of various GNU / Linux distributions and is just as before for FreeBSD.

Some live systems, bring the default ddrescue: