GNU ddrescue 1.30 released

Antonio Diaz Diaz <[email protected]> Sun, 04 Jan 2026 16:56:51 +0100
Newsgroups gmane.org.fsf.announce
Message-ID <[email protected]>
I am pleased to announce the release of GNU ddrescue 1.30.

GNU ddrescue is a data recovery tool. It copies data from one file or block 
device to another, trying to rescue the good parts first in case of read 
errors. Ddrescue recommends lziprecover[1], whose data recovery capabilities 
complement those of ddrescue.

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.

The homepage is at http://www.gnu.org/software/ddrescue/ddrescue.html

The sources can be downloaded from http://ftpmirror.gnu.org/ddrescue/ 
http://download.savannah.gnu.org/releases/ddrescue/ or from your favorite 
GNU mirror.

The sha256sum is:
2264622d309d6c87a1cfc19148292b8859a688e9bc02d4702f5cd4f288745542 
ddrescue-1.30.tar.lz

This release is also GPG signed. You can download the signature by appending 
'.sig' to the URL. If the 'gpg --verify' command fails because you don't 
have the required public key, then run one of these commands to import it:

   gpg --recv-keys 8FE99503132D7742
   wget http://ftpmirror.gnu.org/gnu-keyring.gpg

Key fingerprint = 1D41 C14B 272A 2219 A739  FA4F 8FE9 9503 132D 7742


Changes in version 1.30:

   * The changes in this version improve by orders of magnitude the 
automatic recovery of a drive with a dead head. For example, all the 
recoverable data in a 1 TB drive with one ot its 4 heads dead can now be 
recovered after just 283 read errors instead of the 3_782_794 read errors 
needed by ddrescue 1.29. (ddrescue 1.29 with the options '--cpass=1,2 
--skip-size=32MiB' can recover the data after 880 read errors, but the point 
is that an unexperienced user can now achieve results that only an expert 
could achieve with the previous version of ddrescue).

   * The pass 5 of the copying phase has been replaced by a new sweeping 
phase run after the trimming phase.

   * The new option '-N, --no-sweep', which disables the reading of skipped 
areas, has been added. The short name '-N' has been reassigned from option 
'--no-trim' to option '--no-sweep'. Option '--no-trim' is no longer 
recommended because trimming has now a higher probability of finding good data.

   * Pass 2 now copies only the blocks adjacent to at least one finished 
block. The trimming pass now trims only the edges adjacent to a finished 
block. The goal is to delimit the bad area as a whole.

   * The initial skip size now defaults to 'infile_size / 32_768' instead of 
'infile_size / 100_000'.

   * '--retrim' now only marks blocks adjacent to a non-tried or finished block.

   * '--extend-outfile=0' now extends outfile to the size of infile.

   * In rescue mode, '--size=output' now uses the size of the output file or 
device, for example to overwrite it:
'ddrescue --force --size=output /dev/urandom /dev/mydisk'.
(Suggested by Stefan Monnier).

   * The remaining time is now estimated by using the average rate of the 
last 60 seconds instead of the last 30 seconds. (Suggested by Stefan Monnier).

   * A line showing 'average rate' and 'read errors' has been added to the 
file generated by the event logger.

   * Large numbers in option arguments are now accepted with underscore 
separators (-s 123_456_789).

   * The option '-H, --make-test', which creates a mapfile for the test mode 
of ddrescue based on the disc geometry given, has been added to ddrescuelog. 
This option has helped in the development of some of the improvements in 
this version of ddrescue, and is a work in progress. The geometries 
implemented so far are some of those described in the following article:
H. Wong, "Discovering Hard Disk Physical Geometry through 
Microbenchmarking", Sept., 2019. Available online at
<http://blog.stuffedcow.net/2019/09/hard-disk-geometry-microbenchmarking/>

   * An example of recovery of a tar.lz backup using a lziprecover-generated 
fec recovery record appended to the backup itself has been added to the 
manual. (Lziprecover's Forward Error Correction (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).

(It would be good that lzip were more widely used inside GNU, given its 
advantages over gzip for the compression of source tarballs and backups).


Please send bug reports and suggestions to [email protected]

[1] http://www.nongnu.org/lzip/manual/lziprecover_manual.html#Fec-files

Regards,
Antonio Diaz, GNU ddrescue author and maintainer.
http://www.nongnu.org/lzip/lzip_benchmark.html