On October 11, 2014 12:56:53 PM EDT, Otto Rodusek
Hi ListMates,
I'm not sure if this is the correct forum but hopefully someone will have an answer for me.
I have a faulty 500Gb notebook disk that I want to clone and recover. I
use ddrescue (with the -n option) to clone the faulty hdd to a new hdd.
The problem is that based on the current stats, it will take days/weeks
to complete the clone!!!
I know that I have a faulty drive, I just want to clone the faulty drive unto a new drive, simply skip the faulty sectors (zero fill on the destination drive) and continue the clone - I don't want the system to keep retrying over and over to read the faulty sector - try once and die and set the destination sector zero-filled. Where there are no errors on the original drive the copy goes fast, but once it hits a bad sector
it is painfully slow!!!!
So where is the bottle neck?
1) ddrescue - according to the docs if one uses the -n option it wont bother to read or recover the faulty sectors on the faulty drive (I also tried -r1 - read/retry once) but to no avail. BTW I tried both read from beginning of disk as well as reading from back (-R), but alas to no avail as once it gets to the faulty sectors it becomes painfully slow. 2) is it a kernel parameter - ie how to turn of retrying to read the faulty sector n..times 3) is it a sata driver parameter - ie likewise how to turn of retrying to read the faulty sector n..times 4) or is it the firmware on the faulty hdd? (in that case I'm not sure there is a solution to turn of retrying faulty sectors or remapping them)
I'm not sure there is a solution but if anyone knows any help would be most appreciated.
Thanks in advance for any help.
Are you sure you are using ddrescue from the gnu_ddrescue package. It should not work as you describe. Hopefully you ran it with the log option. If so you can control-c it anytime and restart it. Every time you want it use the same log file. Ddrescue will read the log file and know what work it has already done. On the first pass use a big skipsize (--skipsize=10G) with -n and -N. Thus "ddrescue --skipsize=10G -n -N /dev/sdb /dev/sdc logfile" should make a single pass through the disk and skip ahead 10 gigs when it hits an error. Logfile will have the info the next invocation needs to not copy the good parts a second time. The second time try the same call but from the opposite end and with 2048 sectors per read. (Eg. Add -c 2048 -R) That too should run pretty quick. For a third pass I would go back to forward, but maybe a 100 MB skipsize, then repeat in reverse. Each pass should get faster and faster you because there is less and les data not yet copied. Greg -- Sent from my Android phone with K-9 Mail. Please excuse my brevity. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org