Sur cette machine, j'avais un projet en PHP qui me tenait particulièrement à coeur. Soudain, sans avertissement, je reçois en console (texte) un paquet d'erreurs:
hda: read_intr: status=0x59 {driverReady SeekComplete
DataRequest Error}
hda: read_intr: error=0x40 {
UncorrectableError}, LBAsect= ..., sector=...
Ce disque illisible truffé de secteurs défectueux a pu être "sauvé" en grande partie, grâce à un projet (Freshmeat: dd_rhelp)
D'abord, installer DD_RESCUE dernière version (>1.0.3),
celle fournie sur la knoppix 3.3 ne FONCTIONNE PAS avec dd_rhelp !
Ensuite installer DD_RHELP (un script en BASH qu'on doit
"compiler" avec ./configure && make)
puis
./dd_rhelp /dev/hda1 fichier_recupéré
Ce matin, je n'avais plus que des croix dans dd_rhelp, mais il
continuait à mouliner (probablement encore quelques secteurs à
sauver...) Je l'ai interrompu avec CTRL+C, on peut repartir quand on
veut: il s'appuie sur le fichier_recupéré.log qu'il
crée, puis j'ai retenté un:
fsck.ext2 -y fichier_recupéré
ca a passé des messages pendant 1/2h (fix, check, pass,
...) puis ca s'est bien terminé.
J'ai monté comme
prévu avec
mount -o loop fichier_recupéré dossier
dedans il n'y avait qu'un dossier lost+found contenant 6000
entrées, fichiers ou dossiers. Après un fgrep -ri sur
le contenu du dossier, j'ai tenté un updatedb: victoire, une
de mes copies de sauvegarde assez récente (pas la dernière,
mais bon...) est complete avec ses 6 fichiers PHP en parfait état
!
Si j'avais voulu avoir mieux, j'aurais peut-être pu avoir
plus de patience et le laisser tourner plus longtemps. On aurait
aussi pu dupliquer le fichier récuperé (ici 40 Go)
avant de lancer le FSCK pour pouvoir, le cas échéant,
reprendre la restauration DD_RHELP plus longtemps (moi j'ai laissé
tourner le tout "seulement" pendant 2 jours + un Week-end)
Finalement, c'est une bonne idée que j'avais eu de
sauvegarder plusieurs copies (versions) de mon projet dans des
dossiers différents (backup-1, -2, ...). Evidemment, cela ne
remplace pas une vraie sauvegarde, mais de toute façon
"j'allais la faire demain"...
Remerciements aux auteurs de :
DD_RESCUE : pour permettre la récupération de données
sur un disque qui refuse de monter
et
DD_RHELP : pour permettre que
l'opération s'effectue en moins de 4,8 ans, temps estimé
sur DD_RESCUE...