GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disk, cdrom, etcetera) to another, trying to rescue data in case of read errors.