Forum Linux.général Aide pour récupérer données d'un disque "semi-sain"

Posté par  .
Étiquettes :
0
7
août
2010
Bonjour,

voilà j'ai un pc sous debian (lenny), partitionné comme ceci: hda1 /boot, hda2 /, hda3 swap, hda4 /home

depuis quelques semaines j'avais quelques erreurs au boot, mais les fsck avaient toujours fait leur boulot, et quelques coupures de courant m'avait décidé à acheter un onduleur, mais hélas une grosse coupure est intervenue avant: résultat le disque est crashé...

Pourtant il arrive à bouter, et j'ai réussit à récupérer /boot avec ddrescue, seulement voila il plante après, et ne donne que la consoloe busybox initramfs...

Avec un live-cd ubuntu, j'ai d'abord tenté des fsck et de mounter les partitions / et /home, mais rien à faire.

Je me suis alors tourné vers ddrescue, mais seulement voila: la commande qui fonctionne pour /boot ne fonctionne pas pour les autres :/


ubuntu@ubuntu:~$ sudo dd_rescue -e 2 /dev/sda1 - | ssh fred@192.168.0.12 -p 1010 'dd of=/home/fred/recovery/backup1.img' dd_rescue: (warning): output file is not seekable! dd_rescue: (warning): Illegal seek dd_rescue: (warning): Don't use sparse writes for non-seekable output dd_rescue: (info): ipos: 0.0k, opos: 0.0k, xferd: 0.0k dd_rescue: (warning): - (32768.0k): Invalid argument! , xferd: 31744.0k dd_rescue: (warning): - (65536.0k): Invalid argument! , xferd: 64512.0k dd_rescue: (warning): - (96320.0k): Invalid argument! , xferd: 96256.0k dd_rescue: (info): ipos: 96320.0k, opos: 96320.0k, xferd: 96320.0k errs: 0, errxfer: 0.0k, succxfer: 96320.0k +curr.rate: 10409kB/s, avg.rate: 5670kB/s, avg.load: 10.7% dd_rescue: (info): /dev/sda1 (96358.5k): EOF Summary for /dev/sda1 -> -: dd_rescue: (warning): - (96358.5k): Invalid argument! dd_rescue: (info): ipos: 96358.5k, opos: 96358.5k, xferd: 96358.5k errs: 0, errxfer: 0.0k, succxfer: 96358.5k +curr.rate: 28309kB/s, avg.rate: 5672kB/s, avg.load: 10.7% dd_rescue: (warning): - (96358.5k): Invalid argument! 192717+0 enregistrements lus 192717+0 enregistrements écrits 98671104 octets (99 MB) copiés, 9,36911 s, 10,5 MB/s ubuntu@ubuntu:~$


et ici ça ne fonctionne pas:

sudo dd_rescue -e 2 /dev/sda2 -| ssh fred@192.168.0.12 -p 1010 'dd of=/home/fred/recovery/backup2.img' dd_rescue: (warning): output file is not seekable! dd_rescue: (warning): Illegal seek dd_rescue: (warning): Don't use sparse writes for non-seekable output dd_rescue: (info): ipos: 0.0k, opos: 0.0k, xferd: 0.0k dd_rescue: (warning): - (0.0k): Invalid argument! k, succxfer: 0.0k dd_rescue: (warning): - (0.0k): Invalid argument! 0.0k, xferd: 0.0k dd_rescue: (info): ipos: 0.0k, opos: 0.0k, xferd: 0.0k * errs: 0, errxfer: 0.0k, succxfer: 0.0k +curr.rate: 0kB/s, avg.rate: 0kB/s, avg.load: 0.0% dd_rescue: (warning): /dev/sda2 (0.0k): Invalid argument! dd_rescue: (warning): - (0.5k): Invalid argument! dd_rescue: (info): ipos: 0.5k, opos: 0.5k, xferd: 0.5k * errs: 1, errxfer: 0.5k, succxfer: 0.0k +curr.rate: 0kB/s, avg.rate: 0kB/s, avg.load: 0.0% dd_rescue: (warning): /dev/sda2 (0.5k): Invalid argument! dd_rescue: (fatal): maxerr reached! Summary for /dev/sda2 -> -: dd_rescue: (warning): - (0.5k): Invalid argument! dd_rescue: (info): ipos: 0.5k, opos: 0.5k, xferd: 0.5k errs: 2, errxfer: 0.5k, succxfer: 0.0k +curr.rate: 0kB/s, avg.rate: 0kB/s, avg.load: 0.0% dd_rescue: (warning): - (0.5k): Invalid argument! 1+0 enregistrements lus 1+0 enregistrements écrits 512 octets (512 B) copiés, 47,7968 s, 0,0 kB/s ubuntu@ubuntu:~$


qu'est-ce qui bloque ? les partitions sont pourtant visibles avec fdisk, elles sont bien là!

une autre idée que ddrescue ?

(évidemment j'ai des sauvegardes, mais il y a quelques petites choses que je n'ai pas eu le temps :( )

++
  • # fsck

    Posté par  . Évalué à 1.

    l'erreur de fsck depuis le live est

    fsck.ext2: Attempt to read block from filesystem resulted in short read lors de la tentative
  • # testdisk depuis un livecd

    Posté par  . Évalué à 4.

    ca permet d'aller trouver/retrouver les fichiers effacés.

    helas si c'est vraiment le disque qui est "mort", tu n'arriveras pas non plus à grand chose.

    Perso dans un cas comme ca, et si j'arrive à le monter, je fais un rsync avec un disque sain.

    Quand ca bloque sur un fichier, j'interromps le rsync, j'ajoutes le fichier à la liste des exclusions, et je relance rsync.

    ca donne une ligne comme celle là
    rsync -av --progress --exclude-file=/mnt/disk-destination/mes-fichiers-a-exclure.txt /mnt/disk-source/* /mnt/disk-destination/

    ca m'a permis de "sauver" les données d'un disque, pour ensuite le reformater (bas niveau ou normal) et reinjecter les données.
  • # Copie binaire

    Posté par  (site web personnel) . Évalué à 5.

    Bonsoir,

    il est préférable de faire une copie binaire des partitions avec dd.
    Il y a des paramètres pour préciser le nombre de fois qu'il doit tenter la lecture avant de continuer.

    Ensuite tu montes les images iso et tu bosses dessus tranquillement.

    smartmontool te donnera aussi l'état global du disque dur.

    Bonne nuit.
    Grégoire

    Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

  • # dd_rhelp

    Posté par  . Évalué à 1.

    Je voudrais utiliser dd_rhelp avant mais je ne comprends pas: on ne peut pas faire configure ni de make :/

    http://www.debianadmin.com/recover-data-from-a-damaged-hard-(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.