Jump to content

[TUTO] Relire ses medias abîmés avec recoverdm


Recommended Posts

Comme à mon habitude un bref topic sur un outil comme sait souvent le faire le monde du Libre : simple, efficace, gratuit.

Cette fois-ci je me suis attelé à la tâche pour essayer de sauver les CDs d'un pote DJ, fracassés par un abruti ... j'ai cherché rapidement sur le net (un petit coup de "recover unreadable CD Linux" sous Google) qui m'a amené à me pencher sur recoverdm.

Voici un petit florilège des CDs que j'ai déjà sauvé (pas facile de prendre un CD en photo ...)

571d1f02e29ff9b6c04623a8d44fc59d.jpg 6d7d9a68ef21204810ef377d09a08c02.jpg

957a7b912ea770cea0f79599188d8d73.jpg

301b53a95f41e6b600c696757ce3a736.jpg

Le topic sera très rapide :

  • La récupération et l'installation de recoverdm
  • La syntaxe et l'utilisation
  • Les résultats

:dors: La récupération et l'installation de recoverdm

Vous pouvez consulter la page principale de recoverdm.

Le logiciel n'est apparemment pas disponible sous forme de packages (en tout cas ni Debian ni Gentoo), donc il suffit simplement de télécharger les sources à cette adresse, puis de les décompresser et les compiler. Le tout pèse moins de 10 ko ...

Dans une console, ça se passe de la façon suivante :

# su -
# cd /usr/local/src
# wget http://www.vanheusden.com/recoverdm/recoverdm-0.19.tgz
# tar xvzf recoverdm-0.19.tgz
# cd recoverdm-0.19
# make
# cp recoverdm mergebad /usr/local/bin/

si la compilation se passe mal au moment de la commande make, on est un peu hors topic, mais :

  • soit il vous manque la commande make
  • soit il vous manque le compilateur (cc)
  • soit c'est encore un autre problème que je ne vais pas détailler ici :)

Maintenant, si tant est que /usr/local/bin est dans votre chemin (variable PATH) vous pouvez utiliser recoverdm (toujours en ligne de commande)

A noter qu'une Knoppix 3.4 (et donc les suivantes) peut tout a fait être utilisée : ceci permet de faire tourner recoverdm sur une machine non-Linux (pour ne pas avoir à démonter/remonter un lecteur), le plus simple étant d'avoir une partition FAT32, sinon il faut traficoter avec des montages distants ou und clé USB de capacité suffisante, mais c'est plus touchy...

Link to comment
Share on other sites

:fumer:La syntaxe et l'utilisation

Bon je vais honteusement repomper un recoverdm -h :

recoverdm -t type -i file/devicein -o fileout [-l list] [-n retries] [-s speed]

-t type

une variable pour spécifier le type de media sur lequel on veut lire :

FILE 1

FLOPPY 10

FLOPPY_IDE 11

FLOPPY_SCSI 12

CDROM_IDE 20

CDROM_SCSI 21

DVD_IDE 30

DVD_SCSI 31

DISK_IDE 40

DISK_SCSI 41

-i file/devicein : pour spécifier le fichier ou le périphérique (/dev/...) que vous voulez restaurer

-o fileout : pour spécifier le fichier cible : celui-ci ne doit pas exister

-l list : pour spécifier un fichier enregistant la liste des offsets et des tailles des blocks défectueux. Pratique avec la commande mergebad (voir plus loin)

-n retries : nombre de tentatives de relecture (par défaut, 6)

-r RAW read retries : nombre de tentatives de relecture en mode RAW avant de passer au secteur suivant (par défault, 6)

-s rotation speed : définit la vitesse de rotation du CD ou DVD, par defaut, 1

-b offset : spécifie une taille (multiple de 512) à partir de laquelle on commence la lecture (par défaut, 0, évidemment).

-h : affiche l'aide.

Bon, c'est compact :)

Plus concrètement, je veux tenter de restaurer un CD depuis un lecteur de CDOM IDE appelé hdd (slave sur le second contrôleur, donc):

 recoverdm -t 20 -i /dev/hdd -o ~/recover1.iso 

Depuis un lecteur de CD en serial ATA ou SCSI :

 recoverdm -t 21 -i /dev/scd0 -o ~/recover2.iso 

D'autres exemples à venir ...

:chinois:Avertissement

Si votre CD est vraiment en mauvais état, vous allez saturer les logs systèmes de messages d'erreur. Surveillez la taille de votre /var/log (kern.log, syslog, messages) !!

:arrow:Les résultats

Si le soft répond

Cannot open file <nom du fichier>: this is beyond the capabilities

c'est assez mal barré : le matériel ne reconnaît carrément pas le support, il faut tester sur un autre ...

:arrow: C'est long !

Première constatation, évidemment, ça prend beaucoup de temps. Mais bon ça se mérite, comme il y a lecture en mode RAW secteur par secteur, il ne faut pas être pressé. Sur un CD des plus abimés, il m'a fallu 12h et m'y reprendre à plusieurs fois pour réussir à récupérer le tout.

:arrow: Ca ne marche pas à tous les coups

Evidemment, il n'y a pas de solutions miracles. Mais il est pertinent également d'essayer sur différents lecteurs, et d'utiliser le second programme fourni, à savoir mergebad.

:arrow: Ca marche mieux en utilisant des graveurs

Effectivement, c'est peut-être du à la conception, la puissance ou la sensibilité du laser, mais les graveurs ont souvent un meilleur taux de réussite que les lecteurs classique ... J'ai remarqué que les lecteurs des portables étaient également assez performants, mais pas dans la durée : trop de lectures et ils rendaient l'âme.

:arrow: Y'a plus simple ?

Si on a un media partiellement lisible (seuls certains fichiers sont abîmés) et qu'on veut tenter d'en récupérer un maximum, on peut jeter un oeil du côté de Roadkil Unstoppable Copier (sous KDE).

Par ailleurs, pour lire un CD audio, il reste toujours l'excellent cdparanoia qui tentera d'extraire les données audio jusqu'à la limite des possibilités du lecteur (ou sa mort, j'ai connu ça aussi).

Enfin au besoin aller jeter un oeil du côté de FileRec et TestDisk.

:arrow: Le soft se ramasse ?

Oui, il semble qu'au delà d'une certaine quantité de données traitées (chez moi, 120 Mo) le soft plante brutalement. Mais ce n'est pas grave, il y a toujours l'option -b, pour reprendre à partir d'un point donné.

:arrow:Méthode de récupération d'un CD audio

(c'est pas du tout propre, mais ça marche, mon pote DJ en témoigne) :

J'inclue le fait que le soft plante au bout d'un certain temps ...

$ recoverdm -t 20 -i /dev/hdc -o recover1.iso 
.../...
Le processus s'est arrêté
$ ls -l recover1.iso
-rwxr-xr-x  1 user user 121845760 2006-05-27 12:23 recover1.iso
$ recoverdm -t 20 -i /dev/hdc -o recover2.iso -b 121845760
.../...

on reprend en paramètre -b la taille du fichier déjà lu ... certes il faut un peu de place !

ensuite pour refusionner le tout, un peu de bricolage (un script le ferai fort bien, mais j'aime avoir le contrôle manuel - cela dit ça peut être l'objectif d'un 100% question pour un pingouin en essayant de l'écrire le plus court possible;) ) c'est pas très beau, mais bon ...

$ ls -l recover *
-rwxr-xr-x  1 user user 121845760 2006-05-27 12:23 recover1.iso
-rwxr-xr-x  1 user user 243714048 2006-05-27 14:24 recover2.iso
-rwxr-xr-x  1 user user 365581312 2006-05-27 15:38 recover3.iso
-rwxr-xr-x  1 user user 487410176 2006-05-27 17:34 recover4.iso
-rwxr-xr-x  1 user user 604865024 2006-05-27 20:30 recover5.iso
-rwxr-xr-x  1 user user 721803776 2006-05-27 22:53 recover6.iso
-rwxr-xr-x  1 user user 729164288 2006-05-28 01:47 recover7.iso
$ cp recover1.iso cd.iso
$ split -b 121845760 recover2.iso && rm xaa && cat x?? >> cd.iso && rm x??
$ split -b 243714048 recover3.iso && rm xaa && cat x?? >> cd.iso && rm x??
...
$ split -b 721803776 recover7.iso && rm xaa && cat x?? >> cd.iso && rm x??

(on reprend dans le split la taille du morceau précédent)

Bien, j'ai un fichier CD.iso mais qui est rarement montable ou lisible vu que le CD est abîmé. Alors je triche un peu, je colle un header de fichier WAV correspondant en entête et ensuite je traite le fichier obtenu sous Audacity ou un autre programme de traitement de son.

Voici le contenu du header WAV:

 hd wavheader.full
00000000  52 49 46 46 24 2a 76 2b  57 41 56 45 66 6d 74 20  |RIFF$*v+WAVEfmt |
00000010  10 00 00 00 01 00 02 00  44 ac 00 00 10 b1 02 00  |........D¬...±..|
00000020  04 00 10 00 64 61 74 61  00 2a 76 2b			  |....data.*v+|

la concaténation se fait par un bête cat

cat wavheader.full CD.iso > CD.wav

et voilà mon fichier CD.wav sur lequel il ne me reste "plus qu'à" redécouper les pistes audibles.

J'attends votre feed-back pour compléter le topic.

Link to comment
Share on other sites

Ca ne fonctionne quand meme pas pour les CDs qui ne sont plus reconnus dans le lecteur, non ?

^_^ tuXXX pour l'opération Modo

pour répondre à Angel Eyes : comme indiqué dans le topic il faut quand même que le matériel le reconnaisse ... mais en testant sur différents lecteurs je suis arrivé à lire des trucs dans un état ... proche de l'I/O :cap:

Link to comment
Share on other sites

Ca ne fonctionne quand meme pas pour les CDs qui ne sont plus reconnus dans le lecteur, non ?

^_^ tuXXX pour l'opération Modo

pour répondre à Angel Eyes : comme indiqué dans le topic il faut quand même que le matériel le reconnaisse ... mais en testant sur différents lecteurs je suis arrivé à lire des trucs dans un état ... proche de l'I/O ;)

en fait, j'ai un CD de données qui n'est plus reconnu sur aucune platine, sauf un lecteur CD de salon qui, fatalement, me dit que c'est une piste de 70 minutes ... :transpi: donc irrécupérable.

Link to comment
Share on other sites

en fait, j'ai un CD de données qui n'est plus reconnu sur aucune platine, sauf un lecteur CD de salon qui, fatalement, me dit que c'est une piste de 70 minutes ... :transpi: donc irrécupérable.

si tu tiens vraiment aux données ... tu démonte le lecteur de salon, tu branche le lecteur sur la nappe IDE d'un PC, et tu fais comme d'hab ...

Link to comment
Share on other sites

en fait, j'ai un CD de données qui n'est plus reconnu sur aucune platine, sauf un lecteur CD de salon qui, fatalement, me dit que c'est une piste de 70 minutes ... :transpi: donc irrécupérable.

si tu tiens vraiment aux données ... tu démonte le lecteur de salon, tu branche le lecteur sur la nappe IDE d'un PC, et tu fais comme d'hab ...

:transpi: ??? t'as quoi comme lecteur de salon ??? :smack:

j'ai jamais vu de l'IDE dans un lecteur de salon ;) à part en sous-marques ...

et ici, c'est un modèle de 1991, je ne suis meme pas sur que l'ide existait déja ... de toute façon, je l'ai déja démonté à l'époque et je peux certifier qu'il n'a pas d'IDE ni de SCSI.

Link to comment
Share on other sites

  • 3 months later...

Salut a tous.

Pour ma part j'essaye de recover un disque dur de 60go qui m'a a moitie lache .. je l'utilisais sous windows, et un jour apres un redemarrage il m'a causé pas mal de probleme (lenteur, plantage etc ..). J'ai plus de PC sous windows c pourquoi je poste un message ici.

Je voulais savoir si, avec recoverdm, il serait possible de retrouver lintegralite de mes fichiers (ou une partie ..) avec la commande ci dessous :

recoverdm -t 40 -i /dev/ad1s1 -o /usr/home/mesta/recover.iso

Est ce que mon fichier ISO contiendra tous mes fichiers ? J'ai vu que dans votre cas pour les CDs audio, il fallait a la fin renommer le fichier ISO en wav. Seulement moi ce n'est pas seulement de la musique, il y a des fichiers textes, des fichiers dinstallations etc ...

Merci d'avance.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...