BlackST wrote:
Hope you don't use it on failing drives / with weak heads from customers.
I'm not a specialist, but the only reason I can think of is if it is only 1 head that is failing, specialized gear can read from the other heads first, then attempt a head swap and read the data from the remaining one.
Personally I like to run ddrescue from a boot disk (partedmagic/ubuntu rescue remix) since it loads into RAM and the stable versions are pretty well tested. You should use v1.7 or higher of ddrescue (Added in 1.7: Fast skip of damaged areas with no-split. Minimize logfile as marked sectors are read. When splitting jump to next non-split area after 2 consecutive errors with retrim)
Assuming that sda is your failed drive and sdb1 is your ext3 formatted doner
1. mkdir /mnt/mydrive
2. mount /dev/sdb1 /mnt/mydrive
3. ddrescue --no-split /dev/sda /mnt/mydrive/myimg.img /mnt/mydrive/mylog.log
4. ddrescue --direct --max-retries=3 /dev/sda /mnt/mydrive/myimg.img /mnt/mydrive/mylog.log
5. ddrescue --direct --retrim --max-retries=3 /dev/sda /mnt/mydrive/myimg.img /mnt/mydrive/mylog.log
The --no-split option copies as much data as possible without retries or splitting sectors. If it isn't read on the first attempt, it is logged and bypassed.
The --direct option bypasses the kernel's cache allowing partial sectors to be rescued
The --retrim option tries to read full sectors in a different order, coupled with direct it may be able to read more partial sectors.