See the file INSTALL for compilation and installation instructions.

Description

GNU ddrescue is a data recovery tool. It copies data from one file or block
device (hard disc, cdrom, etc) to another, trying to rescue the good parts
first in case of read errors.

The ddrescue package also includes ddrescuelog, an auxiliary tool that
manipulates ddrescue mapfiles, shows mapfile contents, converts mapfiles
to/from other formats, compares mapfiles, tests rescue status, and can delete
a mapfile if the rescue is done. Ddrescuelog operations can be restricted to
one or several parts of the mapfile if the domain setting options are used.

The basic operation of ddrescue is fully automatic. That is, you don't have
to wait for an error, stop the program, restart it from a new position, etc.

If you use the mapfile feature of ddrescue, the data are rescued
efficiently, (only the blocks needed are read). Also you may interrupt the
rescue at any time and resume it later at the same point. The mapfile is an
essential part of ddrescue's effectiveness. Use it unless you know what you
are doing.

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. So, every time
you run it on the same output file, it tries to fill in the gaps without
wiping out the data already rescued.

Automatic merging of backups: If you have two or more damaged copies of a
file, cdrom, etc, and run ddrescue 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 the same area damaged in all
copies is low (if the errors are randomly located). Using the mapfile, only
the blocks needed are read from the second and successive copies.

The mapfile is periodically saved to disc, as well as when ddrescue finishes
or is interrupted. A backup copy of the mapfile with the extension ".bak" is
also periodically created (if possible). So in case of a crash you can
resume the rescue with little recopying.

The same mapfile can be used for multiple commands that copy different areas
of the input file, and for multiple recovery attempts over different subsets.

Ddrescue recommends lzip for compression of backups because the lzip format
is designed for long-term archiving and provides data recovery capabilities
which nicely complement those of ddrescue. (Ddrescue reads as many sectors
as it can, while lziprecover uses other data to repair the sectors that
ddrescue was not able to read). Lziprecover's FEC algorithm can repair any
kind of file, but its ability to repair lzip files is greater than for other
kinds of files. Lziprecover can use the statistical properties of lzip data
to repair a lzip file rescued with ddrescue, even if the fec file is so
damaged that it has lost both CRC arrays. Lziprecover fec files can be used
as recovery record for tar.lz archives. If the cause of file corruption is a
damaged medium, the combination ddrescue + lziprecover is the recommended
option for recovering data from damaged files.

Because ddrescue needs to read and write at random places, it only works on
seekable (random access) input and output files. Therefore, the only way of
creating a compressed image with ddrescue is to create a normal
(uncompressed) image first, and then compress that image.

If your system supports it, ddrescue can use direct disc access to read the
input file, bypassing the kernel cache.

Ddrescue aligns its I/O buffer to the sector size so that it can be used for
direct disc access or 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.
The manual explains how to use direct disc access or raw devices with
ddrescue.

One of the strengths of ddrescue is that it is interface-agnostic, and so
can be used for any kind of device supported by your kernel (ATA, SATA,
SCSI, old MFM drives, floppy discs, or even flash media cards like SD).

Recordable CD and DVD media keep their data only for a finite time
(typically for some years). After that time, data loss develops slowly with
read errors growing from the outer region towards the inside. It is a good
idea to make two (or more) copies of every important CD-ROM/DVD you burn so
that you can later recover them with ddrescue.

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.

Ddrescue uses Arg_parser for command-line argument parsing:
http://www.nongnu.org/arg-parser/arg_parser.html
Ddrescue uses Rational to parse small fractions from the command line:
http://www.nongnu.org/arg-parser/rational.html


Copyright (C) 2004-2025 Antonio Diaz Diaz.

This file is free documentation: you have unlimited permission to copy,
distribute, and modify it.

The file Makefile.in is a data file used by configure to produce the Makefile.
It has the same copyright owner and permissions that configure itself.
