Need help with ddrescue interrupt and resume

Hello,

I'm in the midst of a hard drive recovery using gddrescue on Zorin 9 (Ubuntu variant). Both the source and destination drives are connected internally to my tower, and neither is the os drive. Neither are mounted. I'm a very advanced windows user, well into my first year in Linux, getting my bearings ok by now, but still very new to using terminal in advanced ways.

The source drive may be failing, but then again it may not. (I checked the SMART readout on the drive, and it displays "PASSED".) Not taking chances, I'm assuming drive failing, but may be some other problem. Symptom was drive slow to mount and change directories, certain files and folders started going missing or inaccessible.

ddrescue seemed like the best tool for the job, but struggling with the commands. After extensive forum surfing and many false starts (why isn't there a straightforward step-by-step tutorial and good documentation on this important program anywhere?) and complete failure to get DDRescue-GUI to work, I managed to get the recovery underway.

I used this string: sudo ddrescue -d -f -r2 /dev/sdc1 /dev/sdb1 logfile

-d to go direct to drives and leave them unmounted, -f because it was being finicky about (over)writing to my empty designated new destination partition. Both source drive and destination partition are 3tb total. (over 2tb of actual data on source, probably around 2.5tb)

It's been running 4 days now, and starting to slow down a lot. Current stats: rescued: 493165 MB, errsize: 3316 MB, errors: 5304, current rate 8192 B/s, average rate: 1465 kB/s, time since last successful read: 0 s. (rates dropping steadily over last day, but no stoppages or failure to read)(it has been unavoidable to use other programs on this system during recovery)

I want to try to interrupt recovery now, reboot computer, then resume recovery. I hope this will help with the speed of progress. (and give drives time to cool down and rest) The problem is: I'm hesitant to do this because I'm not certain I created the logfile properly, and I don't want to lose my progress. I configured my commands as above based on a forum post, but then noticed other discussions showed people naming the logfile (logfile.logfile, or logflie.log) or even specifying the location for the logfile, which I wish I had known how to do.

Here are my questions:

1. By using the simple command "logfile" after designating the source and destination drives, have I successfully insured that a logfile will be created or not?
2. If not, what options do I now have to create one, interrupt, and resume?
3. If so, how do I determine the default location of the logfile?
4. Given the commands I used to start the recovery, what would be the correct commands be to start the resume?

Thanks in advance!
 
used this string: sudo ddrescue -d -f -r2 /dev/sdc1 /dev/sdb1 logfile
For those not familiar,
  • SUDO is a control means in Linux to access various commands.
  • /dev/sdc1 /dev/sdb1 are Linux device names
DON'T use ^C <control c> to interrupt the process (which is sigint or kill -2)

kill: use one of these in this order of preference:

  • -3 SIGQUIT
  • -17,19,23 all are SIGSTOP
  • -15 SIGTERM
  • -2 SIGINT
  • -9 SIGKILL (brute force and likely will cause corruptions)
The man page is online here.

One comment I found was
Always use a logfile. This allows you to resume an interrupted image at the point you left off, or to retry bad sectors after an initial pass. Without a logfile, you will have to start over again!
so it appears that the program is designed to be restarted :) Just use exactly the same logfile
 
Thanks very much. That's helpful. Speed seems to have picked up overnight, so I'm just leaving it run. Maybe it was working through a more damaged sector.
 
Btw: next time you intend to invoke a long running task, precede it with 'nice',
eg nice ddrescue -d -f -r2 /dev/sdc1 /dev/sdb1 logfile​
this will lower the dispatch priority and allow terminal interaction
 
Back