Harman Patil (Editor)

Ddrescue

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Original author(s)
  
Antonio Diaz Diaz

Operating system
  
Unix-like

Written in
  
C++

Type
  
Data recovery

Ddrescue

Initial release
  
12 August 2004; 12 years ago (2004-08-12)

Stable release
  
1.22 / 6 February 2017; 0 days ago (2017-02-06)

GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disk, CD-ROM, etc.) to another, trying hard to rescue data in case of read errors. GNU ddrescue is a program written in C++ that was initially released in 2004 and has since become available in most Linux distributions.

Contents

Description

GNU ddrescue is not a derivative of dd, nor is related to dd in any way except in that both can be used for copying data from one device to another. The difference is that ddrescue uses a sophisticated algorithm to copy data from failing drives causing them as little additional damage as possible. GNU ddrescue is considered to have the most sophisticated implementation of a block-size-changing algorithm in free and open source software, and is considered an essential data recovery tool.

If one uses the "mapfile" (previously called "logfile") feature of ddrescue, the data is rescued very efficiently (only the needed blocks are read). One can also interrupt the rescue at any time and resume it later at the same point.

ddrescue does not write zeros to the output when it finds bad sectors in the input, and does not truncate the output file if not asked to. As such, every time one runs ddrescue on the same output file, it tries to fill in the gaps without wiping out the data already rescued.

Other uses

Automatic merging of backups: If one has two or more damaged copies of a file, CD-ROM, etc., and run ddrescue on all of them, one at a time, with the same output file, one will probably obtain a complete and error-free file. Using the logfile, only the needed blocks are read from the second and successive copies.

ddrescue recommends lzip for compression of backups because the lzip format is designed for long-term data archiving and provides data recovery capabilities which nicely complement those of ddrescue. (ddrescue fills unreadable sectors with data from other copies, while lziprecover corrects corrupt sectors with data from other copies). If the cause of file corruption is damaged media, the combination ddrescue + lziprecover is the best option for recovering data from multiple damaged copies.

ddrescue also features a "fill mode" able to selectively overwrite parts of the output file, which has a number of interesting uses like wiping data, marking bad areas or even, in some cases, "repair" damaged sectors.

References

Ddrescue Wikipedia