dd_rescue copies data from one file or block device to another. It is intended for error recovery, so by default, it doesn't abort on errors and doesn't truncate the output file. It uses large block sizes to quicken the copying, but falls back to small blocks upon encountering errors. It produces reports that allow you to keep track of bad blocks. dd_rescue features a number of optimizations, such as sparse block detection, preallocation, and Linux zerocopy (splice). It supports data protection by (multi-pass) overwriting of files or partitions with good and fast random numbers.
|Operating Systems||POSIX Linux|
Release Notes: ddr_hash was enhanced. A bug where sha512/sha384 could have overflown a buffer was fixed. sha1 support has been added. Most importantly, there are now options to conveniently check and store checksums in xattrs and md5sum/sha256sum/... style files. A ddr_null plugin was added.
Release Notes: The MD5 plugin has been renamed to hash, reflecting that other cryptographic hashes such as sha1, sha256, sha224, sha512, sha384 are now supported as well. (The commandline syntax stays backwards-compatible.)
Release Notes: The focus of 1.43 is a well-working lzo plugin (libddr_lzo.so, short: ddr_lzo). ddr_lzo allows the user to de/compress data during dd_rescue processing using the fast lzo algorithms. The result is compatible with lzop. ddr_lzo supports holes (sparse files), multipart files, and appending to lzo files, and allows (partial) decompression in the face of corrupt lzo data, so it fits dd_rescue's purpose and feature set nicely. A number of little fixes and doc improvements have been done, as well as some speedup for the zero-block detection (option -a/--sparse) using ARMv8 (aka ARM64 aka AArch64) assembly.
Release Notes: This version includes a plugin interface (that allows analysis or transformation of data prior to being written) an MD5 plugin, the use of posix_fadvise(), and the output of only short usage info on incorrect input parameters.
Release Notes: Refactoring allows for better runtime and build time feature detection, resulting in support for building against Android (NDK) and in fast AVX2 sparse block detection. This version also brings a new option -u/--rmvtrim that removes a written (typically zero-filled) file again after completion and issuing an fstrim operation.