• # Pour vérifier si le disque est défectueux et récupérer les données

    Posté par . En réponse au message error: failure reading sector 0x86a from 'hd0'. Évalué à 4.

    Bonjour,

    Ça peut être intéressant de regarder ce qu’indique smartctl pour savoir si ce sont juste les données qui ont été endommagées ou si le disque est en défaillance physique :

    smartctl -a /dev/sda

    S’il y a des évènements d’erreurs indiqués ou un nombre à plus d’un chiffre dans les attributs Current_Pending_Sector et Offline_Uncorrectable ou autre chose que - dans la colonne WHEN_FAILED, ça sent le roussi.

    Si le disque est défectueux et qu’il y a des données à récupérer dessus, le mieux de recopier ce qui est sauvable sur un autre disque (au moins aussi grand, USB ou branché sur un adaptateur USB) avec GNU ddrescue (il y a un autre ddrescue, peut-être pas mauvais, mais avec des options complètement différentes) en deux passes (la première récupère en gros sans insister sur les endroits problématiques, la deuxième insiste sur ces endroits pour réduire la taille des trous). En supposant le deuxième disque vierge (ça efface tout le contenu ! sinon, il faut le monter et utiliser comme cible un fichier dedans et surtout pas /dev/sdb) :

    ddrescue -n -f /dev/sda /dev/sdb recup.log
    ddrescue -d -r3 -f /dev/sda /dev/sdb recup.log
    sync

    Ensuite, sur le deuxième disque, si la table de partition n’est pas lisible (avec fdisk -l /dev/sdb), essayer de la récupérer avec testdisk, puis vérifier les partitions avec (pour la première) e2fsck -f /dev/sdb1

    D’un autre côté, si la table de partitions du premier disque est lisible et que tu sais laquelle contient des données (supposons sda1 s’il n’y a pas de /home séparé), ça peut être intéressant de copier juste cette partition avec ddrescue dans un fichier :

    mkdir /mnt/usb
    mount /dev/sdb1 /mnt/usb
    ddrescue -n /dev/sda1 /mnt/usb/recup_sda1 recup.log
    ddrescue -d -r3 /dev/sda1 /mnt/usb/recup_sda1 recup.log
    e2fsck -f /mnt/usb/recup_sda1
    umount /mnt/usb
    sync

    Ensuite, le deuxième disque monté sur un autre ordinateur :

    sudo mkdir /mnt/recup
    sudo mount -o loop /media/utilisateur/disque/recup_sda1 /mnt/recup

    Bonne chance !

    « Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone