First, thank you for the response and the tips. I want to try out the tips you shared, but need some more info about them. Plus I have another drive that is experiencing the same problem with slowness. Details follow.
1. You suggested "a small value for -c, to check if read ahead or kernel caching were slowing it".
Can you be more specific? What are some reasonable, small values that make sense? Which ones would you try?
2. You also said, "If you know the data you want is not at the beginning of the drive, you could have instructed ddrescue to begin reading at the correct place."
How can I find out if the data I want is at the beginning, middle, or end of the drive? And once known, how do I instruct ddrescue to start in that position?
You continued, "You could have restarted ddrescue after the first error, because the drive or the kernel can slow down persistently after the first error."
I did exactly this many times and each time, ddrescue would immediately get stuck. I understand your point about the log showing ddrescue jumping to new positions. But apparently the jumps ahead were not large enough. Can that be changed or instructed differently?
Let me start clean. I have another drive that needs recovery. Here are the command screens and log output. Approximately one minute after starting the recovery, once it gets to a certain spot, the drive begins making a light fluttering sound. Fearing the worst, I unplug the drive almost immediately after hearing the sound. The drive is not dead -- yet. And my PC will recognize the drive once I plug it in again. But I do not want a repeat of the last drive's failure.
So tell me, what would you do in this case?
After rescuing 220MB of 160GB it will not proceed. I don't mean to sound ungrateful. I truly am grateful. But you're the expert here and author of this magnificient tool. What would you do in this situation to recover the maximum amount of data as quickly as possible from this failing drive?
::: ddrescue output :::
sudo ddrescue -v -n /dev/sdb /media/sea500gb/tony.img /media/sea500gb/tony.log
About to copy 160041 MBytes from /dev/sdb to /media/sea500gb/tony.img
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 hard blocks
Hard block size: 512 bytes
Direct: no Sparse: no Split: no Truncate: no
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 0 B,
errsize: 0 B, errors: 0
rescued: 224559 kB, errsize: 33280 B, current rate: 95 B/s
ipos: 224592 kB, errors: 1, average rate: 632 kB/s
opos: 224592 kB
Interrupted by user
::: ddrescue log file :::
# Rescue Logfile. Created by GNU ddrescue version 1.9
# current_pos current_status
# pos size status
0x00000000 0x0D628000 +
0x0D628000 0x00008200 *
0x0D630200 0x2535DA5E00 ?