GNU ddrescue

Software Screenshot:
GNU ddrescue
Software Details:
Version: 1.23 updated
Upload Date: 22 Jun 18
Developer: Antonio Diaz Diaz
Distribution Type: Freeware
Downloads: 136

Rating: 4.0/5 (Total Votes: 3)

From the developer of the LZ Utils package, which allows you to compress files and folders using the tar.lz method, we introduce you to GNU ddrescue, an open source command-line utility that helps anyone to recover lost data from damaged devices, such as hard disk drives (HDD), solid state drives (SSD), CD-ROMs or USB flash drives.

Features at a glance

Key features include the ability to read and recover any type of file, fills the sectors that are unreadable with data from other copies of the respective file, if exist, a fill mode that allows you to selectively overwrite parts of the output file, as well as support for a wide range of devices, including SATA, SCSI, ATA, Floppy discs, MFM drives or SD/CF flash cards.

Command-line options

To install program program from the source tarball, you will have to first install the GCC (GNU Compiler Collection) program and GNU Make, then execute the “./configure”, “make” and “make install’ commands (without quotes). To use it, run the “ddrescue --help” command in the terminal emulator, without quotes, of course.

Command-line options include the ability to display the minimum read rate of good areas in bytes per second, mark non-trimmed and non-scraped files as non-tried, fill given type blocks with infile data, set map of bad and good blocks from a given logfile, verify the input file size with size in logfile, as well as to restrict domain to finished blocks in a file.

Under the hood, availability and supported OSes

GNU ddrescue is a small command-line program, written entirely in the C++ programming language and designed to work on any 32-bit or 64-bit GNU/Linux operating system. It is available for download for free, as a universal sources archive that requires users to configure and compile the program prior to installation. Various Linux distributions have GNU ddrescue on their default software repositories, so we strongly suggest you to install it from there.

What is new in this release:

  • The option '-X, --exit-on-error' has been replaced by '-X, --max-read-errors'. This introduces a backward incompatibility with versions 1.19 to 1.21 in that option '-X' now requires an argument. The long form '--exit-on-error' is still accepted, but will be removed in a future version of ddrescue.
  • The new option '--max-slow-reads' has been added. It makes ddrescue exit with status 1 if too many slow reads are encountered during the copying phase.
  • The new option '--delay-slow' has been added. It sets the initial delay before ddrescue starts checking for slow reads.
  • The new option '--reset-slow' has been added. It resets the slow reads counter every time the read rate reaches or surpasses '--min-read-rate'.
  • The new option '--log-events' has been added. It logs all significant events in a file, indicating the time, the percentage rescued, and a message describing the event.
  • The new option '--mapfile-interval' has been added. It changes the interval at which ddrescue saves and fsyncs the mapfile.
  • The new option '--pause-on-error' has been added. It makes (or simulates) a pause after each read error.
  • The option '--pause' has been renamed to '--pause-on-pass'.
  • The option '--max-errors' has been renamed to '--max-bad-areas'.Ddrescue now shows the number of read errors, the error rate and (if a --min-read-rate is specified) the number of slow reads.
  • The 'current_pass' field has been added to the mapfile. This allows the copying phase to resume instead of restart from pass 1. It also allows the retrying phase to resume in the same direction it was interrupted.
  • Two new passes have been added to the copying phase. Sometimes there is a significant difference in read speed and likelihood of data recovery between blocks skipped due to slow areas, and blocks skipped due to read failures. Two passes have been inserted after pass 2 that read the blocks skipped due to slow areas (if any) before the final sweeping pass (which now is pass 5).
  • The '--cpass' option now accepts ranges of passes; '--cpass=1-4'.
  • The option '-K, --skip-size' now accepts sizes up to 1 EiB.The initial skip size now defaults to (infile_size / 100_000) with a minimum value of 64 KiB.
  • The minimum read rate of good non-tried areas is no longer reduced after each pass, and now only affects passes 1 and 2.
  • During the trimming phase, if any edge of a non-trimmed block is already adjacent to a bad sector, it is considered as already trimmed and is not trimmed again.
  • The 's' multiplier may now be appended to any of the other multipliers. For example, 'ks' = kilosectors (1000 * sector_size), or 'Kis' = kibisectors (1024 * sector_size).
  • Options '--ask' and '-vv' now always show file size, even if model and serial number are also shown.
  • Device model and serial number are now shown with '--ask' or '-vv' on Cygwin. (Patch written by Christian Franke).
  • The tried size (non-trimmed + non-scraped + bad-sector sizes) is now shown in the initial status.
  • The new option '-A, --annotate-mapfile' has been added to ddrescuelog. It adds comments to a mapfile containing the positions and sizes of the blocks in human-readable form.

What is new in version :

  • The option '-X, --exit-on-error' has been replaced by '-X, --max-read-errors'. This introduces a backward incompatibility with versions 1.19 to 1.21 in that option '-X' now requires an argument. The long form '--exit-on-error' is still accepted, but will be removed in a future version of ddrescue.
  • The new option '--max-slow-reads' has been added. It makes ddrescue exit with status 1 if too many slow reads are encountered during the copying phase.
  • The new option '--delay-slow' has been added. It sets the initial delay before ddrescue starts checking for slow reads.
  • The new option '--reset-slow' has been added. It resets the slow reads counter every time the read rate reaches or surpasses '--min-read-rate'.
  • The new option '--log-events' has been added. It logs all significant events in a file, indicating the time, the percentage rescued, and a message describing the event.
  • The new option '--mapfile-interval' has been added. It changes the interval at which ddrescue saves and fsyncs the mapfile.
  • The new option '--pause-on-error' has been added. It makes (or simulates) a pause after each read error.
  • The option '--pause' has been renamed to '--pause-on-pass'.
  • The option '--max-errors' has been renamed to '--max-bad-areas'.Ddrescue now shows the number of read errors, the error rate and (if a --min-read-rate is specified) the number of slow reads.
  • The 'current_pass' field has been added to the mapfile. This allows the copying phase to resume instead of restart from pass 1. It also allows the retrying phase to resume in the same direction it was interrupted.
  • Two new passes have been added to the copying phase. Sometimes there is a significant difference in read speed and likelihood of data recovery between blocks skipped due to slow areas, and blocks skipped due to read failures. Two passes have been inserted after pass 2 that read the blocks skipped due to slow areas (if any) before the final sweeping pass (which now is pass 5).
  • The '--cpass' option now accepts ranges of passes; '--cpass=1-4'.
  • The option '-K, --skip-size' now accepts sizes up to 1 EiB.The initial skip size now defaults to (infile_size / 100_000) with a minimum value of 64 KiB.
  • The minimum read rate of good non-tried areas is no longer reduced after each pass, and now only affects passes 1 and 2.
  • During the trimming phase, if any edge of a non-trimmed block is already adjacent to a bad sector, it is considered as already trimmed and is not trimmed again.
  • The 's' multiplier may now be appended to any of the other multipliers. For example, 'ks' = kilosectors (1000 * sector_size), or 'Kis' = kibisectors (1024 * sector_size).
  • Options '--ask' and '-vv' now always show file size, even if model and serial number are also shown.
  • Device model and serial number are now shown with '--ask' or '-vv' on Cygwin. (Patch written by Christian Franke).
  • The tried size (non-trimmed + non-scraped + bad-sector sizes) is now shown in the initial status.
  • The new option '-A, --annotate-mapfile' has been added to ddrescuelog. It adds comments to a mapfile containing the positions and sizes of the blocks in human-readable form.

What is new in version 1.20:

  • A race condition at start of run with "--timeout=0" has been fixed.The new option "-P, --data-preview", which makes ddrescue show a few lines of the latest data read, has been added.
  • The new option "-u, --unidirectional", which runs all passes in the same direction (forwards or backwards), has been added.
  • The new option "-X, --exit-on-error", which makes ddrescue exit after the first read error is encountered during the copying phase, has been added.
  • The new option "--ask", which asks for confirmation before starting the copy, has been added.
  • The new option "--cpass", which selects what passes to run during the copying phase, has been added.
  • The new option "--pause", which inserts a pause between passes, has been added.
  • The option "-l, --logfile-size" is no more needed and has been removed.
  • Ddrescue now skips on the first error during the copying phase.
  • Trimming is now done in one pass and may be run in reverse.The splitting phase has been replaced by a "scraping" phase that scrapes together the data not recovered by the copying or trimming phases. Scraping reads each non-scraped block forwards, one sector at a time.
  • The long name of option "-n" has been changed to "--no-scrape".During the retrying phase the direction is now reversed after each pass. Use "--unidirectional" to override.
  • Model and serial number of ATA devices are shown with "--ask" or "-vv" on GNU/Linux.
  • The configure script now accepts the option "--enable-linux" to enable the compilation of linux-specific code.
  • The license has been changed to GPL version 2 or later.

What is new in version 1.19:

  • A race condition at start of run with "--timeout=0" has been fixed.The new option "-P, --data-preview", which makes ddrescue show a few lines of the latest data read, has been added.
  • The new option "-u, --unidirectional", which runs all passes in the same direction (forwards or backwards), has been added.
  • The new option "-X, --exit-on-error", which makes ddrescue exit after the first read error is encountered during the copying phase, has been added.
  • The new option "--ask", which asks for confirmation before starting the copy, has been added.
  • The new option "--cpass", which selects what passes to run during the copying phase, has been added.
  • The new option "--pause", which inserts a pause between passes, has been added.
  • The option "-l, --logfile-size" is no more needed and has been removed.
  • Ddrescue now skips on the first error during the copying phase.
  • Trimming is now done in one pass and may be run in reverse.The splitting phase has been replaced by a "scraping" phase that scrapes together the data not recovered by the copying or trimming phases. Scraping reads each non-scraped block forwards, one sector at a time.
  • The long name of option "-n" has been changed to "--no-scrape".During the retrying phase the direction is now reversed after each pass. Use "--unidirectional" to override.
  • Model and serial number of ATA devices are shown with "--ask" or "-vv" on GNU/Linux.
  • The configure script now accepts the option "--enable-linux" to enable the compilation of linux-specific code.
  • The license has been changed to GPL version 2 or later.

What is new in version 1.18 Pre7:

  • Blocks skipped during the copying phase are no longer marked as non-trimmed.
  • They are tried in additional passes (before trimming).
  • This speeds the rescue in case of large errors by avoiding the creation of large non-trimmed areas.
  • "ddrescue.texinfo" has been renamed "ddrescue.texi".

What is new in version 1.17 / 1.18 Pre4:

  • The long name of the option "-r" has been changed to "--retry-passes" to make it clear that ddrescue tries each sector only once per retry pass.
  • The default value of option "-a, --min-read-rate" has been changed to 0 (auto).
  • The effect of option '-O, --reopen-on-error' is now limited to the copying phase, but it also reopens the file on slow reads.

What is new in version 1.18 Pre3:

  • The new option "-O, --reopen-on-error" has been added.

What is new in version 1.18 Pre2:

  • The format of the files produced by the options "--log-rates" and "--log-reads" has been modified to make them usable by plotting utilities like gnuplot.
  • Skip size is now reset (instead of reduced) after good data is found.
  • This should make ddrescue regain speed faster after leaving a bad or slow area.
  • Current total runtime is now shown on the screen.

What is new in version 1.18 Pre1:

  • The new options "-1, --log-rates" and "-2, --log-reads" have been added.
  • The short name of option "--generate-mode" has been changed to "-G".

What is new in version 1.17 RC4:

  • The option "--fill" has been renamed to "--fill-mode".
  • The option "--generate-logfile" has been renamed to "--generate-mode".
  • During the copying phase, failed blocks containing one sector are marked as bad-sector instead of as non-trimmed.
  • This avoids trying a sector twice when a cluster size of 1 is used.
  • "configure" now accepts options with a separate argument.

What is new in version 1.17 RC3:

  • This version adds the new option "-w, --ignore-write-errors", which makes fill mode ignore write errors.
  • This is useful to avoid ddrescue exiting because of new errors developing while wiping the good sectors of a failing drive.

What is new in version 1.17 RC2:

  • Ddrescuelog no longer says that the logfile does not exist when it exists but is empty.
  • The manual now explains that only whole sectors can be read when "direct disc access" is used.

Similar Software

e2retrieve
e2retrieve

2 Jun 15

recoverdm
recoverdm

3 Jun 15

Rpmrestore
Rpmrestore

20 Feb 15

Other Software of Developer Antonio Diaz Diaz

GNU Ocrad
GNU Ocrad

17 Feb 15

Lunzip
Lunzip

17 Feb 15

Lziprecover
Lziprecover

17 Jul 15

Arg_parser
Arg_parser

14 Apr 15

Comments to GNU ddrescue

Comments not found
Add Comment
Turn on images!