GNU ddrescue 1.8 (Stable branch)

GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying hard to rescue data in case of read errors. GNU ddrescue does not truncate the output file if not asked to. So, every time you run it on the same output file, it tries to fill in the gaps. The basic operation of GNU ddrescue is fully automatic. That is, you don't have to wait for an error, stop the program, read the log, run it in reverse mode, etc. If you use the logfile feature of GNU ddrescue, the data is rescued very efficiently (only the needed blocks are read). Also you can interrupt the rescue at any time and resume it later at the same point. License: GNU General Public License v3 Changes:
The new option "--synchronous" has been added. The new option "--generate-logfile" has been added. Fill mode now also works when the outfile offset differs from zero. The "Fill Mode" chapter of the manual has been updated.

More...