GNU ddrescue 1.30-rc1 is ready for testing here
http://download.savannah.gnu.org/releases/ddrescue/ddrescue-1.30-rc1.tar.lz
The sha256sum is:
f2320252f3809b1dbe69654846920d6cc0b801c29fe102ee6d803fd467d3ce15
ddrescue-1.30-rc1.tar.lz
Please, test it and report any bugs you find.
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.
The homepage is at http://www.gnu.org/software/ddrescue/ddrescue.html
Changes in this version:
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.
* 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 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 is a pity that lzip is not more widely used inside GNU, given its
advantages over gzip for the compression of source tarballs and backups).
Regards,
Antonio Diaz, GNU ddrescue author and maintainer.
http://www.nongnu.org/lzip/lzip_benchmark.html