Ddrescue stuck on scraping bad blocks… (forwards)


I have a Hitachi 640GB laptop hard drive that has some bad blocks. I don't believe the blocks are physical bad blocks, because the drive doesn't make any clicking noises. The hard drive is formatted as NTFS, and was used as a Windows 7 drive. I ran CHKDSK on the drive three times, and while it did report multiple orphaned files and corrupted files, and reported fixing them, the drive was still unable to copy the files to another working drive I'm using.

I decided to use ddrescue to rescue the files. I have a 2TB USB drive that I am recovering the files to with ddrescue. The Hitachi drive is hooked up with Firewire 400 to an iMac I am running ddrescue on.

I use the command parameters:

sudo ddrescue -r3 /dev/disk5s2 test.img test.logfile

Ddrescue seemed to run fine for several days, and the img file is the same size as the Hitachi, so that seems normal too. However, for the past 3 days, ddrescue has been stuck on what appears to be the final piece of the drive. The error size reported is 36404KB, and a successful read only occurs once every 12 hours or more. I'm attaching a screenshot of my ddrescue output in the Terminal, as well as my copy of the ddrescue logfile for reference. The drive is continuing to hum away as ddrescue access it, but so far very little progress has been made.

For some reason, when I tried to use direct disc access, the Terminal returned the error: Direct disc access not available, so I wasn't able to use it in my ddrescue operation.

Should I stop the ddrescue operation and restart it? Should I possibly change the command parameters to try the data on this last pesky area of the hard drive? Or is it simply really corrupted so ddrescue can't retrieve it, or if it can, would it simply take a very long time?

Any advice on this matter would be greatly appreciated!

Logfile Output

[logfile output 1

Terminal Output

[terminal output 2

Best Answer

From GNU ddrescue Manual:

be aware that a bad drive can block ddrescue for a long time until the kernel gives up

There is also this question. The answer there suggests to let the drive get cool. I do not know if it's a good advice though.

As for problem with direct access: the manual mentions raw devices (see example 2). The raw command will be useful here. I admit I have never used (i.e. had to use) ddrescue that way.

Related Question