dd_rescue Changelog

What's new in dd_rescue 1.40

Aug 20, 2013
  • The -p/--preserve option now also copies extended attributes (including ACLs) if there are any.
  • Many checks and test cases have been added to make check.
  • Half-empty blocks are now detected now in sparse detection.
  • If copying with an odd file offset, the odd-sized write will be done first so that further accesses should be better aligned, which should help with performance (and optionally sparse detection).

New in dd_rescue 1.39 (Aug 9, 2013)

  • The main change is a fix for a bug where the last block could have appended zeros if hardbs==softbs (bnc #833765).
  • Beyond that, ARM sparse detection has been sped up a bit (~15%), and the man page has a clarification w.r.t. the meaning of -y.
  • autoconf is now used to detect platform features to help portability.

New in dd_rescue 1.38 (Aug 3, 2013)

  • This version brings some further optimization of the SSE2 sparse block detection (adding 40% performance).
  • There's also code for AVX2, but it's disabled, as it couldn't be tested.
  • There's a test case for the 1.35/1.36 bug now that can be run by make check.
  • ETA and curr.rate have been improved a bit (floating averages), and the --force/-f switch gained the capability to override a non-zero output position for non-seekable ouput files.

New in dd_rescue 1.37 (Aug 2, 2013)

  • The SSE2 optimized sparse block detection had a bug that slipped through the test cases in 1.35/1.36.
  • Fortunately, --sparse / -a is not on by default.
  • The bug is fixed, and that's the reason for a quick release.
  • Apart from that, there are some fixes for this routine for big-endian machines, though that's not relevant for dd_rescue itself.

New in dd_rescue 1.36 (Jul 25, 2013)

  • This version fixes an issue with an overflow when displaying avg.load after a while.
  • It also enables faster detection of zero-filled blocks (sparse mode, option -a) on x86 (32-bit) with runtime detection (unlike x86-64 where you always have SSE2-capable CPUs).
  • There's also some asm code to achieve a 3x speedup of ARM CPUs on this task.

New in dd_rescue 1.34 (Jul 6, 2013)

  • Minor bugs were fixed.
  • A bunch of minor code adjustments were made to improve compilation on many compilers (including C++) and more *nix systems.
  • Specifically, there were fixes for FreeBSD. dd_rescue can now load libfallocate at runtime (with libdl), if you want to build it that way.
  • Some more write errors are now treated as fatal to avoid pointless repeats.

New in dd_rescue 1.33 (Apr 24, 2013)

  • dd_rescue 1.33 brings a new double-overwrite (random and zero) mode.
  • More importantly, dd_rescue now supports long options and has a man page that properly documents all the options and modes.

New in dd_rescue 1.32 (Feb 11, 2013)

  • This version adds two new options: -x facilitates appending to an output file, and -Y OUTFILE (can be specified multiple times) allows the user to specify secondary output files which receive the same data (at the same position) as the primary output file.

New in dd_rescue 1.31 (Feb 4, 2013)

  • This version brings a few minor cleanups (messages) and one feature: it now has a mode where the output file/partition/disk is overwritten two (-3) or three (-4) times with random data and finally with zeros.
  • This supports secure data destruction according to German data privacy standards from BSI.

New in dd_rescue 1.30 (Jan 28, 2013)

  • -p correctly copies access times, output to stdout works, and the progress info is always updated when exiting.
  • This release fixes copying the last block with hardbs==softbs.
  • Better option validation.
  • Allows for 512 byte blocks with direct I/O now, and has better defaults for block sizes.
  • Optimization for writing the same block again and again (-R).
  • Can write random data (e.g. -z seedval or -Z /dev/urandom) using the libc or Eli Billauer's RC4 based PRNG.
  • Writes can be avoided if the output file/device already contains identical contents (-W).
  • Builds .deb binaries.

New in dd_rescue 1.25 (Feb 5, 2012)

  • Changes since the last published version (1.20) include additional warnings for overwriting existing files in sparse mode, documentation improvements, an FPE bugfix for reverse copy, really defaulting to -y 0 (not syncing except at the end), not considering EOF an error and displaying better error messages (errno was overwritten in one scenario), portability improvements, and fixes for the output of bad blocks.

New in dd_rescue 1.21 (Sep 8, 2010)

  • Version 1.21 issues warnings when writing in a sparse mode into existing files or to block devices.

New in dd_rescue 1.20 (Aug 26, 2010)

  • This version brings support for fallocate (to tell the filesystem how large the resulting target file will be, so it can avoid fragmentation better).
  • It also enables a progress indicator when the input file size is not known (e.g. a pipe or /dev/zero) but the maximum transfer length has been set with -m.

New in dd_rescue 1.18 (Aug 21, 2010)

  • This version include some fixes (sparse writing, filling 0 when read errors occur) and some better error handling (consider ENOSPC fatal, don't repeat warnings for failed fsyncs).
  • The program now defaults to -y0, meaning no fsyncs.
  • Optionally, dd_rescue can now use the splice system call (on Linux) to do avoid copying of data in memory.
  • The output of the program is now better, allowing the user to see better on what operation (read, write, fsync) warnings or errors occurred.
  • Most importantly, there is a progress bar now, with a completion percentage and an ETA displayed.