0

I am trying to backup my failing external USB HDD Maxtor M3 4TB using ddrescue.

In the beginning, I was getting around 300kB/s so I ripped the external box and connected the drive directly via SATA to my desktop which improved the rate to around 700kB/s. After playing with -a (Minimum read rate) -b (block size) -c (Number of sectors to copy at a time) I arrived at

-a 20M -b 4096B -c 2048

Above mentioned combination increased the rate to about 1800kB/s. Moreover, the current rate fluctuates from a few bytes/s to 115MB/s with the overall average staying around mentioned 1800kB/s. It feels as if it read at a normal 'healthy drive' rate for a sec and then hang to wait for some timeout and continuing at a reduced rate.

Do you have experience with other parameters that help improve the rate? Since the whole 4TB drive will take about a month at the current rate any improvement is highly appreciated.

EDIT - Full command

The full command is

sudo ddrescue -a 20M -b 4096 -c 2048  -f -n -vv /dev/sdi /dev/sdh video_drive.log

EDIT 2 - Oh that's why it is so slow

The drive is failing in such a way that S.M.A.R.T. support is disabled at times, but during the periods it works, I noticed the high and increasing value of Read Error Rate and Hardware ECC Recovered fields. I assume the ECC recovery is the reason why I see no errors and also the reason why the rate is so low.

badluck
  • 103

1 Answers1

2

When ddrescue reads the disk, it has to read every block. It cannot know in advance which blocks are bad. So it will inevitably try to read a bad block. The disk will try very hard to correctly read this block before giving up and returning an error. This behavior cannot be disabled or controlled on consumer-grade hard drives.

So even without ddrescue retrying, bad blocks will slow down the process a lot. There is nothing you can do except keep going.

user219095
  • 65,551