Ddrescue

From wikinotes

ddrescue is a fantastic tool. Often by the time someone gives me a hard drive and wants data off of it, the drive has several bad sectors, and attempting an rsync backup hangs (at best) or causes damage to the new drive as it copies damaged blocks (at worst).

ddrescue is built on the assumption that you are attempting to recover files from a damaged hard drive, is safe to use, and instead of hanging, allows you to specify how many attempts each block should receive (and reports any errors as it runs).

ddrescue also supports using multiple passes. You can run it once, run it again on top of the same file and re-attempt to resolve issues.


Usage

ddrescue  --retry-passes 3   /dev/sda1   /path/to/backup.img  /path/to/logfile.log
mount  /path/to/backup.img  /mnt/disk