GNU ddrescue semble être le meilleur outil pour traiter les erreurs de lecture. Si vous aviez plusieurs copies/disques, vos chances de récupération complète seraient grandement améliorées, mais il semble que vous n'en ayez qu'un.
Le manuel de GNU ddrescue contient même une section sur les CD-ROM et les DVD. Il est relativement court, je vais donc le mettre ici, ainsi que les exemples sur un seul disque :
9 Copie de CD-ROM et de DVD
Ddrescue peut être meilleur que dd pour la copie de CD-ROM enregistrables car les deux secteurs de sortie à la fin de certains d'entre eux peuvent provoquer une erreur de lecture qui empêche la copie complète du dernier enregistrement par dd, ce qui peut entraîner une perte de données. De plus, dd peut créer une image plus grande que l'original si la conversion 'sync' et une taille de bloc plus grande que la taille du secteur sont spécifiées.
Dans le cas particulier de la lecture des CD-ROM (mais pas des DVD), l'outil spécialisé dvdisaster peut être une meilleure option que ddrescue pour la récupération des données car dvdisaster peut lire et analyser les secteurs bruts des CD, ce que ddrescue ne peut pas faire.
Les supports CD et DVD enregistrables ne conservent leurs données que pendant une durée limitée (généralement quelques années). Après cette période, la perte de données se développe lentement, les erreurs de lecture augmentant de la région extérieure du support vers l'intérieur. C'est une bonne idée de faire deux (ou plus) copies de chaque CD-ROM/DVD important que vous gravez afin de pouvoir les récupérer plus tard avec ddrescue.
Si vous n'avez qu'une seule copie d'un CD-ROM ou d'un DVD qui échoue lors de la copie, et si vous avez accès à plusieurs lecteurs de supports optiques, vous avez plus de chances de récupérer les secteurs défectueux, car un lecteur peut ne pas réussir à lire un secteur particulier, mais un autre lecteur peut être capable d'en extraire les données, en fonction de la fréquence du laser et de la sensibilité du capteur laser qui lit la lumière laser réfléchie.
Exemple 1 : Sauvegarder un CD-ROM dans /dev/cdrom.
ddrescue -n -b2048 /dev/cdrom cdimage mapfile
ddrescue -d -r1 -b2048 /dev/cdrom cdimage mapfile
(if bad-sector size is zero, cdimage now contains a
complete image of the CD-ROM and you can write it
to a blank CD-ROM)
Exemple 3 : Sauvegarder un CD-ROM dans /dev/cdrom en utilisant deux lecteurs de CD de deux ordinateurs différents, en écrivant l'image dans un lecteur USB monté sur /mnt/mem.
ddrescue -n -b2048 /dev/cdrom /mnt/mem/cdimage /mnt/mem/mapfile
ddrescue -d -r1 -b2048 /dev/cdrom /mnt/mem/cdimage /mnt/mem/mapfile
(umount the USB drive and move both USB drive and CD-ROM to second
computer)
ddrescue -d -r1 -b2048 /dev/cdrom /mnt/mem/cdimage /mnt/mem/mapfile
(if bad-sector size is zero, /mnt/mem/cdimage now contains a
complete image of the CD-ROM and you can write it to a
blank CD-ROM)
Pour info, voici le site de dvdisaster. wikipedia y Paquet Debian pages. Il semble particulièrement précieux pour créer des données ECC de récupération avant quelque chose ne va pas.