GNU data recovery tool

gddrescue 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 gddrescue 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 gddrescue, 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.

Automatic merging of backups: If you have two or more damaged
copies of a file, cdrom, etc, and run gddrescue on all of them,
one at a time, with the same output file, you will probably
obtain a complete and error-free file. This is so because the
probability of having damaged areas at the same places on
different input files is very low. Using the logfile, only the
needed blocks are read from the second and successive copies.

The logfile is periodically saved to disc. So in case of a crash
you can resume the rescue with little recopying. Also, the same
logfile can be used for multiple commands that copy different
areas of the file, and for multiple recovery attempts over
different subsets.

gddrescue aligns its I/O buffer to the sector size so that it
can be used to read from raw devices. For efficiency reasons,
also aligns it to the memory page size if page size is a
multiple of sector size.

Please note that this is the GNU ddrescue version providing the
ddrescue executable. The package is named gddrescue because the
ddrescue version of Kurt Garloff used to have the ddrescue
package name already.