• [^] # Re: Réaliser plusieurs masters

    Posté par . En réponse à la dépêche ddrescue, dd_rescue, myrescue : récupérer ses données après un crash disque. Évalué à 10.

    Quelques conseils supplémentaires issues de mon expérience, de mes notes et de la liste de diffusion de ddrescue :

    1) Prendre son temps. Sauf si vous avez de l'expérience, vous devriez démonter les partitions et débranchez le disque le plus rapidement possible.

    2) Bien se documenter avant de commencer la récupération des données. Entraînez-vous sur un vieux disque avant de commencer.

    3) Désactiver le montage automatique avant de rebrancher votre disque. Ne jamais utiliser gparted qui essaye de corriger les erreurs lors d'une copie (fatal pour un disque endommagé).

    4) S'assurer que l'équipement de récupération soit disponible et fiable. La récupération peut prendre plusieurs semaines en continu. Les erreurs ont souvent été créées par un matériel défectueux (contrôleur de disque, RAM, etc). Ne réutilisez pas l'ordinateur ou les composants auxquels le disque était connecté.

    5) Prévoyez 3 fois la capacité des données à récupérer (une pour la copie originale, une pour la copie de travail, une pour les données extraites de la copie de travail). Testez la santé des disques qui récupéreront les données ! Et vérifiez que le disque cible est plus grand que le disque source (parfois il manque juste quelques Mo).

    6) Conserver un journal de toutes les commandes et de leur sorties.

    7) Installez ddrescue (Attention, sous Debian il s'agit du paquet gddrescue, le paquet ddrescue contenant dd_rescue). Préférez une version récente, par exemple en recompilant les sources. Installez également ddrescueview.

    8) Inutile d'ajouter des options à ddrescue comme indiqué dans la dépêche. Pour la récupération d'une partition (ex /dev/sda1):

    sudo ddrescue /dev/sda1 /mnt/recovery-partition/copy.img /mnt/recovery-partition/copy.mapfile

    Ou pour la récupération d'un disque entier (par exemple si la table des partitions a été endommagée):

    sudo ddrescue /dev/sda /mnt/recovery-partition/copy.img /mnt/recovery-partition/copy.mapfile

    Faites toujours la récupération vers un fichier image. Ne copiez pas les données directement vers une partition comme indiqué dans la dépêche (et si vous le faites, pensez à l'effacer complètement avant en y écrivant des zéros !) Ne placez pas le fichier image sur une partition NTFS, plusieurs personnes dont moi ont rapporté que la vitesse décroît au fur et à mesure de la récupération de sorte qu'il est impossible de finir la récupération en un temps fini. N'oubliez jamais de lancer ddrescue avec le fichier mapfile (toujours le même) et conservez-le même une fois la copie terminée (cela peut aider à déterminer quels sont les fichiers endommagés, voir plus bas).

    9) Suivez l'avancement de la récupération avec ddrescueview (vous pouvez changer la fréquence de mise à jour de l'affichage dans les menus):

    ddrescueview /mnt/recovery-partition/copy.mapfile

    10) Pour pouvez relancer ddrescue avec les options -r3 et/ou -d comme conseillé dans la dépêche. Suivant l'état du disque, cela peut prendre plusieurs semaines de plus pour récupérer quelques pourcents supplémentaires.

    11) Faites une copie de la copie et travaillez sur la seconde copie.

    cp /mnt/recovery-partition/copy.img /mnt/working-partition/wcopy.img

    12) Si vous avez besoin d'identifier les fichiers endommagés, vous pouvez utilisez ddrutility. Vous pouvez également exécuter ddrescue en mode remplissage avec comme entrée un fichier texte contenant "BADBLOCK". Par exemple :

    echo "BADBLOCK" > badblock.txt
    ddrescue --fill-mode=- badblock.txt wcopy.img /mnt/recovery-partition/copy.mapfile

    Il ne vous reste plus qu'à chercher BADBLOCK dans les fichiers récupérés.

    13) Pour identifier/réparer/récupérer les données/partitions, vous pouvez utiliser les outils suivants :

    • file pour identifier les caractéristiques de l'image (file -s wcopy.img)

    • fdisk sur l'image d'un disque (`fdisk -l wcopy.img)

    • sfdisk sur l'image d'un disque (sfdisk -l wcopy.img)

    • testdisk sur l'image d'un disque (testdisk /list wcopy.img)

    • kpartx (sudo kpartx -l wcopy.img puis sudo kpartx -v -a wcopy.img) pour accéder aux partitions si vous avez l'image du disque entier.

    • fsck pour réparer une partition (ex sudo dosfsck /dev/mapper/loop0p2 pour une partition FAT mappée avec kpartx, ou fsck.ext4 -y wcopy.img pour l'image d'une partition ext4)

    • mnt pour accéder au contenu de la partition (ex mnt -o loop,ro wcopy.img /mnt/readonly-recovery/)

    • testdisk s'il n'est pas possible de réparer les partitions.

    • photorec s'il manque encore des fichiers après testdisk.

    14) D'autres outils qui peuvent être utiles : dmesg | tail pour identifier les périphériques qui viennent d’être branchés (aussi lspci), df -h pour connaître la place disponible sur les différentes partitions, dumpe2fs image.img | grep superbloc pour comparer les informations des superblocs ext4, md5sum pour comparer deux images ou identifier un contrôleur de disque défectueux, smartctl pour avoir une idée de l'état de santé d'un disque, convmv pour corriger les noms de fichiers sur un vieux disque qui n'est pas en UTF8.

    15) Comme il vaut mieux prévenir que guérir :

    • Activez des analyses SMART régulières couplées à des alertes ! C'est une honte que la plupart des systèmes d'exploitation libres et propriétaires n'activent pas SMART par défaut car depuis près de 20 ans, il est possible de prédire de nombreuses pannes dues au vieillissement d'un disque dur.

    • Faites des sauvegardes en double ou triple. Outre le fait que les sauvegardes sont faites de façon ponctuelle (donc données perdues depuis la dernière sauvegarde), l'expérience montre aussi que faire des sauvegardes ne suffit pas car on découvre justement qu'il y a un problème avec la sauvegarde lorsqu'on en a besoin. Les supports de sauvegarde vieillissent. Les sauvegardes sont souvent stockées à proximité de l'original (ex incendie). Vous pouvez graver vos données importantes (photos) sur des CD/DVD en 2 exemplaires identiques ou plus : ddrescue peut récupérer les données du premier disque et compléter les morceaux manquants avec les suivants. Comme il est peu probable que les secteurs défectueux apparaissent aux mêmes endroits sur les disques, la probabilité est très grande de récupérer l'intégralité des données. Antonio Diaz développe lziprecover en complément de ddrescue pour maximiser la récupération de données compressées sur de tels disques.

    • Entraînez-vous dès maintenant avec un vieux disque. C'est amusant de voir qu'on peut récupérer des données sur des supports très vieux/endommagés et c'est plus facile le jour où l'on a besoin de récupérer des données vraiment importantes.

    Cette signature est publiée sous licence WTFPL