Installation:
Pour commencer, il faut installer whdd. Sous Archlinux, la version la plus récente, la 2.2, est disponible sur AUR. Pour Debian et Ubuntu, vous voudrez la compiler, car il n'y a pas de paquet sur les dépôts.
Test d'un disque dur:
Ouvrez une console root, lancez whdd, et commencez par sélectionner un disque dur, puis lancez un test.
Le choix par défaut est "ata". Si ça ne fonctionne pas, changez pour posix. L'explication de Andrey UTKIN à ce sujet:
> Then I tried to use the copy mode (ata choice failed, posix allowed
> continuing).
ATA mode failure may have different reasons: HDD not supporting LBA48
addressing, old kernel, missing sg (SCSI Generic device) driver in
kernel, maybe something else.
Traduction:
> Ensuite j'ai essayé en utilisant le mode "copy" (le choix ata a échoué, le choix "posix" m'a permis de continuer).
L'échec du mode ATA peut avoir différentes raisons: le disque dur ne supporte pas l'adressage LBA48, un vieux kernel, un pilote sg (périphérique générique SCSI) manquant dans le kernel, peut-être quelque chose d'autre.
/?\ Je n'ai pas pensé à questionner sur l'éventuel montage ou pas du disque dur. Il semble que le test fonctionne dans les deux cas, et même sur un système en cours de fonctionnement.
Comprendre les options de récupération de données:
J'ai commencé par regarder les vidéos, puis j'ai posé des questions sur la liste. Les vidéos sont certainement explicites pour le développeur mais elles ne l'étaient pas pour moi. Déjà elles passent très vite, ensuite, ne connaissant absolument pas le programme, et ne comprenant pas la différence entre les diverses options, et le niveau d'importance dans le choix de l'une d'elles, j'avais besoin de quelques précisions.
Voici la page des demos:
http://whdd.org/demo/Des versions moins rapides, et annotées ou sous-titrées en français seraient les bienvenues.
Pour les questions et les réponses sur la liste de discussion, voici:
> I would need to have details about the copy mode : what does it do exactly when it
> uses the "copy" mode? Does it "repair" sectors, or is it supposed to retrieve data in a
> way or another?
It tries to read (and save) as much as it is able to read. Different reading strategies are available,
which use different orders of reading, you may get their ideas from demo videos and text description
built into WHDD dialogs (see Help button when you choose procedure).
The default one, smart_noreverse, should be good to you - it should proceed quite smartly and fast,
saving the healthy zones first, and try to read all the space.
Traduction:
> J'aurais besoin de détails à propos du mode "copy" : que fait-il exactement quand il utilise le mode
> "copy" ? Répare-t-il les secteurs, ou est-il supposé récupérer les données d'une manière ou d'une autre ?
Il essaie de lire (et sauver) autant qu'il est capable de lire. Différentes stratégies de lecture sont disponibles,
lequelles utilisent différents ordres de lecture, vous pouvez en avoir une idée d'après les démos vidéo et les
textes de description insérées dans les dialogue de WHDD (voyez le bouton "Help" quand vous choisissez la méthode).
La méthode par défaut, "smart_noreverse", devrait être bien pour vous - elle devrait procéder de manière assez intelligente
et rapide, en sauvegardant les zones saines en premier, et en essayant de lire tout l'espace.
Questions suivantes:
> Why do the demo videos always use /dev/null as destination for his file ? I tried to do
> a file twice, (which would be located in a partition where there is a lot of disk space),
> and it ended with zero byte files: is it because I didn't do it the right way, or could it
> rather be because the hard drive is almost dead? (It's lying on cold surface right now,
> and I hope to resume the tests later, hopefully with some more information coming from
> the present list?).
I used /dev/null for demos (and set it to be default) because it allows
you to run it (at last to see what is being done) without having second HDD.
I believe /dev/null is a good default, because this way you cannot screw
up your real HDD by forgetting to edit the string.
The fact your destination file stays zero-length is strange. Couldn't it be that you mistyped file path?
Did you try absolute path? If procedure runs, then it must be successful writing to your output file.
Traduction:
> Pourquoi les vidéos de démo utilisent-elles toujours /dev/null comme fichier de destination ? J'ai essayé
> deux fois de créer un fichier, (qui serait placé dans une partition où il y a beaucoup d'espace disque),
> et cela s'est fini avec un fichier faisant zéro bit: est-ce parce que je ne l'ai pas fait de la bonne manière,
> ou cela serait-il plutôt parce que le disque dur est presque mort ? (Il est posé sur une surface froide maintenant,
> et j'espère reprendre les tests plus tard, avec l'espoire d'avoir plus d'informations sur la présente liste ?).
J'ai utilisé /dev/null pour les démos (et je l'ai réglé par défaut) parce que cela permet de l'utiliser (au moins pour voir
ce que ça fait) sans avoir un second disque dur. Je crois que /dev/null est une bonne option par défaut, car
ainsi vous ne pouvez pas mettre la pagaille sur votre vrai disque dur en oubliant d'éditer la chaine de caractères.
Donc, c'est un mode test, à blanc.
> Happy End of Year !
To you also!
> Bonne Fin d'Année !
À vous aussi!
C'était le 31 décembre 2013.
Voici un des mails suivants, avec les parties importantes contenant les informations permettant de finir de faire le tour des détails qui comptent:
> Alright. (Is it normal that it reads the whole drive : /dev/sdc here, and not each partition separately?)
Sure.
> (…)
> I always use absolute paths for cases such as this one. I also paid
> close attention to the
> syntax of the destination directory name. Only I was unsure if I
> should provide a file
> name (…).
>
> This is where I didn't find any information in the integrated help
> menu, nor in the videos you have provided: how is that supposed to be done exactly?
>> If procedure runs, then it must be successful writing to your output file.
>
> Thanks. I'll be waiting for your insight on what file name extension I should give if any?
Any file name will be fine. You can also give it another block device name, like /dev/sda.
> Last but not least, if it would succeed in creating a file, would it have to be mounted
> to loop (ie: as with images done with dd) to get to access the data or does it have to
> be done differently?
If i recall correctly, sth like
losetup -P <something else>
check `man losetup`.
In the end, i suggest you to bring the HDD to a professional if you
really want to recover your data.
Traduction:
> D'accord. (Est-ce normal qu'il lise tout le disque dur : /dev/sdc dans le cas présent, et pas chaque
partition séparément ?)
Bien sûr.
> (…)
> J'utilise toujours le chemin absolu pour des cas comme celui-là. J'ai aussi fait très attention
> à la syntaxe du nom du répertoire de destination. Seulement je n'étais pas sûre de savoir si je
> devais fournir un nom de fichier. (…)
>
> C'est là que je n'ai trouvé aucune information dans le menu d'aide, ni dans les vidéos que vous
avez fournies : comme cela doit être fait exactement ?
>> If procedure runs, then it must be successful writing to your output file.
Si la procédure se déroule, alors cela doit réussir à écrire dans votre fichier de destination.
> Merci. J'attendrai votre information sur le type d'extension de fichier que je devrai utiliser, si c'est
nécessaire d'en mettre une ?
N'importe quel nom de fichier fera l'affaire. Vous pouvez aussi lui donner un autre nom de périphérique
block comme /dev/sda.
> Enfin pour finir, un détail mais pas des moindres, si la création d'un fichier réussit, devra-t-il être monté
> en loop (ex: comme pour les images faites en utilisant dd) pour accéder aux données, ou cela devra-t-il
> être fait d'une manière différente ?
Si je m'en souviens bien, quelque chose comme I
losetup -P <quelque chose d'autre>. Vérifiez dans `man losetup`.
Enfin, je vous suggère de porter le disque dur auprès d'un professionnel si vous voulez récupérer les données.
Ce n'était pas mon objectif, je le lui ai expliqué dans un mail suivant. Cependant en effet, si les données que vous n'avez
pas sauvegardées à temps vous sont précieuses, vous pouvez trouver des professionnels vous proposant
un diagnostique et devis gratuit pour la récupération en laboratoire. J'ai vu des vidéos et des sites où les tarifs peuvent aller
de 300 à 600 euros. Alors bien sûr, la pertinence de faire faire le boulot en salle blanche dépend de la valeur que vous attachez
à vos données et du prix que vous êtes prêt à payer pour tenter de les récupérer.
Le mieux est de faire ses backups, mais les faisons-nous toujours à temps, et de la manière la meilleure ?
Pour la suite, si la phase de récupération avec WHDD fonctionne, il sera nécessaire d'avoir à nouveau un espace disque de taille identique ou supérieure, monté sur la même machine, d'utiliser losetup, du paquet util-linux, et d'installer multipath-tools, qui contient l'outil kpartx.
La procédure a été décrite ici:
http://phillw.net/isos/bento-ubuntu-remix/Misc/whdd_howto-access-partitions-of-hdd-saved-with-whdd.txt et aussi retranscrite ici:
http://debian-facile.org/viewtopic.php?id=8133Il y a aussi eu utilisation de fsck.ext4 sur la partition contenant les blocks défectueux. Dans la prochaine opération que je vais faire, je vais travailler sur des systèmes de fichier Ntfs. Dans ce cas, et si je parviens jusqu'à ce stade, je m'interroge sur les possibilités de vérification de système ?
Peut-être ntfsfix pourrait aider, entre deux des étapes finales:
https://doc.ubuntu-fr.org/ntfsfixAprès la mise en ligne de ce post, il s'agira de rebooter Linux avec le disque dur malade installé dans un dock ad'hoc, en e-sata. (C'est ce qui est disponible chez moi, mais si vous branchez le disque dur source dans une tour, c'est bien aussi, du moment que vous avez une place en plus : vous essayerez d'éviter d'utiliser une connexion dotée d'un mode de transfert plus lent, car les disques durs chauffent pas mal pendant les opérations de copie de données).