Poisson Media Recovery project can be used to retrieve slightly damaged files from CD-ROM media.
It sequentially mounts and umounts the device, and on each mount it tries to read as many new 512 byte sectors as possible.
I was able to use this tool to save some files from old CDs.
· /mnt/cdrom must not be mounted initially
· There must be enough free space at /tmp to hold largest file on the cdrom
poisson_media_recovery.sh DEVICEMOUNT FULL_FILE_PATH RESULT_FILE
DEVICEMOUNT (e.g. /mnt/cdrom) must be a valid mount path (see /etc/fstab).
FULL_FILE_PATH (e.g. /mnt/cdrom/myfile) is an absolute path into the file to be recovered. RESULT_FILE (e.g. /tmp/myfile) is the path to the file that needed to be recovered.
poisson_media_recovery.sh /mnt/cdrom /mnt/cdrom/mybrokenfile /tmp/savedfile