I ran ddrescue for a few days, and recovered about 60G. It had slowed to a crawl, and had an ipos of about 90M. I started again, adding -a100000, and it got another 35G in only 3 hours. It started the reverse phase, and it was now making a lot of noise, and was reading very little data (the time since last read was getting up to 2 minutes), so I stopped it.

This was the original command: ddrescue -n -f /dev/sda /dev/sdc /home/B/Desktop/rescue.log (sdc is a brand new drive.)

I noticed that with -a100000 it was skipping large portions of the disk. I want to go back and to a first pass again, this time with maybe -a50000, and putting a max on how much it can skip. I am very concerned about the excessive noise at the end part of the disk (492M) in reverse. This is a damaged drive - the disk crashed when the laptop was dropped while it was running. It wasn't making noise like that before.

(The -a option causes it to move on when the read speed drops below x bytes / second.)

I don't understand what the -i option is supposed to do. It sounds like it should be where it starts, but the man page explicitly says that's not what it is. ("This is not the point from which ddrescue starts copying.") But it doesn't say, to me at least, what it DOES do. (gnu.org...ddrescue_manual.html)

How do I start the first pass over, from the beginning of the disk (where the important stuff is anyway), going over the initially skipped portions, in the forwards direction? I need to start at around 90M, because it did the first part without the -a option, so it wasn't skipping ahead. (I'll probably use -a50000 with a max set to something, unless someone has a better idea. I want to get the bulk of what I can before the drive fails.)


I tried adding -i73GiB, but it started going forwards from about 480,000 MB, which was where the reverse had left off. So I stopped it.

I tried adding both -i73GiB and -A, but it did the same thing, -A had no effect. I stopped it again.

(-A : "Mark all non-trimmed and non-scraped blocks inside the rescue domain as non-tried before beginning the rescue.")

I don't see any other options to try.

  • Have you tried a command line with both -i and -s? – sudodus May 5 '19 at 13:34
  • It works now that I added the -s. Why isn't that documented? Thanks. – Arwen May 5 '19 at 13:50

I use the following two options to specify the part of the drive to rescue. In reverse mode ddrescue starts at the {start position} + {size} (if still within the drive). So you can define an interval.

See info ddrescue,

'-i BYTES'
     Starting position of the rescue domain in INFILE, in bytes.
     Defaults to 0. This is not the point from which ddrescue starts
     copying.  (For example, if you pass the '--reverse' option to
     ddrescue, it starts copying from the end of the rescue domain). In
     fill mode it refers to a position in the INFILE of the original
     rescue run. See the chapter Fill mode (*note Fill mode::) for

'-s BYTES'
     Maximum size of the rescue domain, in bytes. It limits the amount
     of input data to be copied. If ddrescue can't determine the size
     of the input file, you may need to specify it with this option.
     Note that this option does not specify the size of the resulting
     OUTFILE. For example, the following command creates an OUTFILE 300
     bytes long, but only writes data on the last 200 bytes:

          ddrescue -i 100 -s 200 infile outfile mapfile

This way you can avoid parts of the drive, that are severely damaged. I used this method recently in order to rescue a DVD video from two disks that are severely scratched.

  • I added I tried adding -i73GiB, as described in my update to the post. It had no effect, except for lowering the initial rescued size. After reading your post, I added a size of 200GB to that, and now it is working - it's now starting at i73BiB. Is this a bug? Why do you have to specify a size, and why isn't that documented? – Arwen May 5 '19 at 13:49
  • I'm glad that it works now :-) I think the best documentation is info ddrescue. I don't think it is a bug, but a feature, that you should specify the size. (An alternative that is not implemented would be to specify the start and end of the interval.) Fortunately there is AskUbuntu and other websites, where we can share tips, how to use the tools available in Ubuntu and other linux distros. – sudodus May 5 '19 at 14:45
  • Thanks. I probably would have never tried that if it wasn't suggested. – Arwen May 5 '19 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.