First of all, in the words of the author of the tool that I found particularly useful:

"Well, you do not WANT to use dd_rhelp. I hope you'll never have to use it."

That said, I have found it useful for rescuing the vast majority of files off cheap DVD's which have since become unreadable.

WARNING: If your data is really precious, it could be possible that the following procedure will in fact further damage the media. If your data is worth lots of money, I suggest you spend a bit (and maybe a lot) and have this done professionally. Naturally, you should have a backup of anything important, but if you're here...

So what's the aim of this rescue process?

While it's generally not possible to recover all of your data perfectly with no errors in it, it should be possible to recover the majority of the files. In the case of people who backup their music collection or home videos to DVD's, the music or movies will generally play fine with hopefully only an occasional frame with a glitch in it, depending on the type of compression. At the end of the recovery process you should end up with a drive image.

So what do you need?

  1. A drive containing more free space than the total drive capacity of the drive to be rescued.
  2. The drive to be rescued (naturally!).
  3. A working Linux install / computer with the drive attached.
  4. dd_rescue > 1.03 - I just did apt-get install dd_rescue on Debian unstable
  5. dd_rhelp

dd_rhelp was then installed via the normal ./configure && make && make install procedure.

Following that, usage of the program dd_rhelp is really simple:

dd_rhelp [targetdrivedevice] [imagefile]

So for example, I have a DVD drive in /dev/hdc and it has a DVD with some photos on it that I'd really like, except that it fails while copying...

dd_rhelp /dev/hdc photo.iso

Following that, just mount the image as such (as root):

# mkdir /mnt/loopback
# mount -o loop photo.iso /mnt/loopback
# {copy your files off /mnt/loopback}
# umount /mnt/loopback

And hey presto, you're done. You might need to fsck the image prior to mounting, however, especially if it is a hard disk. For further reading, check out: