Linux: What is the best way to copy from a damaged HD?

I get I/O errors from my storage HD when i try to copy files. These are large raw video files, so I can tolerate errors.

cp stops on the first read error and scp/rsync complains and deletes the copy. With the correct ignore/force flags I could probably get all of them to leave a "damaged copy".

Which tool should I use for this (incl. options)?

I.e., which tool will create the "best" copy (closest to the original)?

Note: This is a disk with physical damage, confirmed by the proper diagnostic tools. I've also run a thorough fsck.


ddrescue should do the trick – it's designed for this very situation.

GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying hard to rescue data in case of read errors. The basic operation of ddrescue is fully automatic. That is, you don't have to wait for an error, stop the program, read the log, run it in reverse mode, etc.

You can download it here or find a manual here. It is also pre-installed on the SystemRescueCD.