ddrescue: dd_rescue (copies data from one file or block device to another)
ddrescue:
ddrescue: Like dd, dd_rescue copies data from one file or block device to 
ddrescue: another. You can specify file positions (called seek and Skip in dd).
ddrescue:
ddrescue: dd_rescue is especially useful for recovering data off broken media
ddrescue: such as a CDROM, a dying hard disk.
ddrescue:
ddrescue: dd_rescue is described in detail at: 
ddrescue: http://www.garloff.de/kurt/linux/ddrescue