22 décembre 2009

La récupération de données, faites la vous-même

Vous avez veillé tard hier soir, vous avez malencontreusement effacé un document important, malgré les conseils de David .J. Way...

Vous allumez votre ordinateur et, horreur, celui-ci ne redémarre plus, et affiche au choix: un curseur clignotant sur fond noir, un écran bleu, un message sibyllin au sujet d'un fichier manquant apparemment indispensable (NTLDR?)...

Vous faites un grand ménage de vos fichiers et, croyant travailler sur une copie de répertoire, vous effacez toutes vos photos de votre voyage exceptionnel sur l'ISS...

Votre petit dernier a eu la bonne idée de supprimer votre dossier "accord final avec les chinois" pour faire de la place pour son dernier FPS, TPS, RPG, RTS ou sa variante MMO...

Et bien entendu, votre dernière sauvegarde (choisir une ou plusieurs mentions):
- date de Mathusalem
- quoi, quelle sauvegarde?
- est sur un cédérom ayant servi de sous-verre à votre dernier Mathusalem
- est complète, mais non restaurable (pas de cédérom de boot, ni de logiciel adhoc)
- se trouve hors de portée sur la planète Mathusalem
- se trouve justement sur le disque dur de l'ordinateur en panne...

Bienvenu dans le monde impitoyable des problèmes informatiques.

Première règle: empêcher toute écriture sur le disque dur à problème. Par exemple, en éteignant l'ordinateur.

Seconde règle: réfléchir calmement pour éviter tout mauvais choix. C'est le moment de proposer une pause à votre enfant réclamant son jeu. N'hésitez pas à avertir votre mari/épouse/conjoint(e)/concubin(e)/amant(e)/copain(e)/colocataire/confrère/collègue/patron/subordonné/partenaire(s) sexuel(s) que vous avez un GROS problème à gérer et qu'il vous faut calme et silence. Débranchez le téléphone. N'appelez pas un ami. N'essayez pas le 50/50, ni l'avis du public.

Troisième règle: ne rien entreprendre que l'on ne maitrise pas. Ce n'est pas le moment pour essayer "un truc", surtout si c'est le fils du voisin "qui s'y connait bien" qui vous le conseille. Y'en a qui ont essayé, ils ont eu des problèmes!

Hypothèse de travail: votre disque dur semble fonctionner. Il ne fait pas de "clac clac" et ronronne normalement. Si ce n'est pas le cas, ou s'il s'agit d'une clef USB ou d'un disque SSD qui ne fonctionne plus sur aucun autre ordinateur, alors il ne vous reste probablement plus qu'à écouter cette musique. Si vous avez supprimé votre dossier le mois dernier, et que depuis vous avez défragmenté un disque dur rempli à 99%, ou si vous avez utilisé un outil tel que UltraShredder, WipeDisk ou WipeFile de votre LiberKey, il est peu probable que vos données soient récupérables, et dans ce cas: musique.

Que faire? La liste des opérations qui suivent ne prétend pas être la meilleure, ni exhaustive, ni complète. C'est MA liste de conseils, SGDZ. Elle pourra évoluer au gré de mes humeurs et des commentaires des lecteurs (dont je m'approprierai honteusement les bonnes idées).

1) Copie du disque endommagé.
- C'est un réflexe d'expert judiciaire. Je ne travaille jamais sur le disque dur d'origine. Si votre disque dur est en train de vous lâcher, il est préférable d'en effectuer une copie qui, certes, stressera votre disque, mais une fois seulement.
- Une fois la copie effectuée (voir ci-après), rangez votre disque dur et n'y touchez plus.
- Si votre disque d'origine n'est pas trop gros et que vous avez de la place, n'hésitez pas à dupliquer la copie. Vous pourrez alors essayer différents outils de récupération (voir ci-après) et en cas de fausse manip (loi de Edward Aloysius Murphy Jr.), vous pourrez toujours redupliquer la copie, sans toucher au disque dur d'origine. Vous n'avez pas beaucoup de place, n'est-ce pas le moment d'acheter un petit disque de 2To qui pourra toujours vous servir ensuite d'espace de stockage de vos sauvegardes?
- Si vous avez un seul ordinateur, courez acheter un disque dur USB externe (de taille supérieure au votre). Paramétrez votre BIOS pour démarrer sur le disque dur USB sur lequel vous allez installer un nouveau système tout neuf. Il vous suffit ensuite de taper la commande (si Windows, exécution sous cygwin):
dd if=/dev/disque_dur_origine of=nom_de_fichier_image
- Si vous avez deux ordinateurs (et un réseau), il me semble plus pratique de procéder comme indiqué dans ce billet, et de procéder ainsi à une prise d'image à travers le réseau. En résumé: côté PC de travail (si Windows, exécution sous cygwin)
nc -l -p 2000 > nom_de_fichier_image
et côté PC avec disque dur contenant les données endommagées, boot sous DEFT, lancement dans un shell de la commande
dd if=/dev/disque_dur_origine | nc IP_PC_de_travail 2000
- Dans tous les cas, si la commande dd ne fonctionne pas à cause de la présence de secteurs défectueux, il est possible d'utiliser la commande dd_rescue ou sa sœur ddrescue.

2) Les outils de récupération.
Comme j'ai déjà bien travaillé sur ce blog, je vous invite à lire ce billet. En résumé, je vous propose d'utiliser l'outil PhotoRec. Avec cet outil, vous pourrez récupérer tous ces fichiers là.

Vous pouvez également utiliser le live CD INSERT, sur lequel vous trouverez quelques uns des meilleurs outils de récupération (gparted, gpart, partimage, testdisk et recover).

Les linuxiens pourront utiliser avec succès le live CD PLD RescueCD avec entre autres les outils gzrt, disc-recovery-utility, e2retrieve, e2salvage, foremost, gpart, recover, recoverdm, et scrounge-ntfs.

3) L'entrainement, il n'y a que cela de vrai.
Plutôt que d'attendre que la catastrophe n'arrive, essayez un peu de récupérer un fichier effacé exprès.
Mettez en place une stratégie de sauvegarde.
Mettez en place une stratégie de sauvegarde ET de restauration.
Mettez en place une stratégie de sauvegarde ET de restauration ET testez les.
Un peu de lecture ne fait pas non plus de mal:
- DataRecovery de la communauté Ubuntu
- Data Recovery de Wikipedia (en anglais)
- La distribution Operator (Live CD)
Vous vous sentez fort et sur de vous... Vos données ont "ceinture et bretelles"? N'oubliez pas qu'une panne arrive même aux meilleurs: Sid et /tmp, Chappeli et la poubelle (du copain?)...

4) Et après?
Si le disque dur contenant les données perdues vous semble un peu vieux, séparez vous en (en l'amenant à une déchèterie spécialisée). Ne le conservez pas pour faire des sauvegardes ou pour y stocker des données peu importantes (toutes vos données sont importantes). N'oubliez pas d'effacer les anciennes données avant de vous débarrasser du disque.
Si vous arrivez à récupérer tout seul vos données perdues, laissez moi un petit commentaire sous ce billet ;)
Si vous avez utilisé le superbe outil PhotoRec ou TestDisk, envoyez quelques anciennes pièces de monnaies à l'auteur du logiciel Christophe GRENIER, je suis sur que cela lui fera plaisir.
Si vous avez utilisé exceptionnellement une distribution Linux ou des outils OpenSource, pourquoi ne pas continuer?
Connaissez-vous Firefox, Thunderbird, Liberkey, Tristan Nitot, Framasoft? N'hésitez pas à soutenir toutes ces personnes.
Allez réconforter votre mari/épouse/conjoint(e)/concubin(e)/amant(e)/copain(e)/colocataire/confrère/collègue/patron/subordonné/partenaire(s) sexuel(s) en lui expliquant que vous étiez très énervé quand vous lui avez parlé durement. Idem pour votre enfant et son maudit jeu.

Et n'oubliez pas de rebrancher le téléphone.

31 commentaires:

  1. Juste une question : quand j'étais jeune, les outils de copie récupéraient les données inscrites sur la table d'allocation, pas ce qui en était effacé. Les outils dont vous parlez font une copie bit-à-bit sans tenir compte de la table d'allocation et il suffit ensuite de reconstruire celle-ci, c'est bien ça ? En tel cas, tant que les bits n'ont pas été réutilisés, le fichier est récupérable ?

    RépondreSupprimer
  2. @Bertrand_Lemaire: Les outils de copie bit à bit dont je parle copie l'ensemble du disque dur, y compris la table d'allocation. Cela permet ensuite de travailler sur un clone parfait du disque dur.

    Les différents outils utilisent des stratégies de récupération différentes: la table d'allocation (ou son équivalent) est explorée en premier, mais elle peut être incomplète, ou tout simplement réallouée. Il faut donc ensuite parcourir l'ensemble du disque à la recherche d'empreintes caractérisant un type de fichier, et réassembler les morceaux dans le cas de fichiers morcelés.

    En expertise, dans le rapport, je fais la différence entre les fichiers effacés récupérés (dont les métadonnées telles que date de création, etc, sont toujours récupérées) et les fichiers récupérés en zone non alloués (sans métadonnées).

    RépondreSupprimer
  3. Avant de courir acheter un disque dur, vérifier la taille du disque à récupérer pour en prendre un plus grand (toute ressemblance avec...) :)

    Sinon, je plussois le Photorec, il m'a sauvé la vie au moins deux fois. J'ai rédigé le récit des aventures pour qu'il puisse éventuellement servir à d'autres. À faire la récupération je veux dire, pas à me mailer pour me demander comment faire :)

    On peut aussi lire les aventures de Jean-Cédric Chappelier. Comme quoi, effacer ses photos de vacances, ça arrive souvent.

    RépondreSupprimer
  4. @Sid: J'édite le billet pour tenir compte de vos remarques. Merci!

    RépondreSupprimer
  5. Bonjour Zythom,

    Dans le cadre de mon travail, j'ai été mené à effectuer à plusieurs reprises des images disques de serveurs sur lesquels je travaillai.

    Nous avons toujours utilisé ddrescue plutôt que dd pour les raisons suivantes :
    - ddrescue est beaucoup plus rapide que dd (mais peut-être que nous n'utilisions pas dd correctement)
    - ddrescue fonctionne même lorsque le disque contient des blocs corrompus, ce qui n'est pas le cas de dd.

    Dans ce cas, pourquoi choisir d'utiliser dd pour effectuer l'image d'un disque ?

    Pourriez-vous m'éclairer ?

    RépondreSupprimer
  6. "Hypothèse de travail: votre disque dur semble fonctionner. Il ne fait pas de "clac clac""

    Caramba ! Encore raté ! Et pourtant mon ordinateur reconnaît la présence d'un périphérique de stockage de données USB mais ne lui alloue pas de lettres.

    J'ai cru que j'allais être sauvé. Félicitations pour l'article ceci-dit, à garder dans un coin précieusement. Bientôt l'entraînement pour moi.

    RépondreSupprimer
  7. @limon

    La meilleure raison amha est que dd est un outil de base a priori présent sur toute distribution GNU/Linux. Une autre raison, qui découle directement de la première, est que pas mal de gens sont habitués à sa syntaxe, ce qui n'est pas un luxe avec une commande qui peut vous flinguer irrémédiablement un système.

    Si je prends mon exemple personnel, je manipule dd depuis des lustres (ce qui ne m'empêche pas de relire plusieurs fois les paramètres de chaque invocation) et l'utiliserai à chaque fois que ça marchera. ddrescue ne sera probablement jamais plus qu'un fallback pour les cas difficiles.

    RépondreSupprimer
  8. Il existe une autre solution ...
    Travailler sous Mac OS X (Leopard ou supérieur) et avoir une ou deux TimeMachine ce qui permettra de ne plus jamais perdre vos données ... (sauf en cas de catastrophe nucléaire).

    Le principe étant de sauvegarder tous les fichiers et toutes les versions de chaque fichier. Certe ça consomme en espace disque et en euros, mais on n'est jamais trop prudent ... :)

    RépondreSupprimer
  9. Bonjour Zythom,

    Vous dites, sous Windows, d'exécuter la commande "dd" sous Cygwin de la façon suivante:

    dd if=/dev/disque_dur_origine of=nom_de_fichier_image

    Mais sous cygwin les disques locaux sont montés sous /cygdrive/lettre_unite_windows, et sont considérés comme des répertoires. Ils ne sont pas - à moins qu'il ne faille faire quelque chose de particulier pour qu'ils le soient - accessibles en tant que /dev/hda_numero.

    Or dd refuse de travailler en utilisant un répertoire comme source. Il me le fait savoir gentiment, de la façon suivante:

    dd: reading `/cygdrive/d': Is a directory
    0+0 records in
    0+0 records out
    0 bytes (0 B) copied, 0.001 s, 0 B/s

    Est-ce à dire que tout espoir est perdu sous Windows ?

    Merci pour cet article, quoiqu'il en soit, et à vous lire

    RépondreSupprimer
  10. Pour un disque dur qui fait clac clac ou qui a manifestement du mal à démarrer (on l'entend essayer de lancer la rotation plusieurs fois d'affiliée), j'ai déjà eu de bons résultats avec un passage de 5/10 minutes au congélateur!
    Ceci dit je passe à cette solution en tout dernier recours...

    RépondreSupprimer
  11. @Sofienne: Vous trouverez plus d'informations sur http://www.cygwin.com/cygwin-ug-net/using-specialnames.html

    En général dd if=/dev/sda ... fonctionne

    Vous pouvez également créer des images ISO d'un cédérom avec
    dd if=/dev/scd0 of=cd.iso

    RépondreSupprimer
  12. Photorec étant très bon pour la récupération de données, le fait qu'on perde le nom de fichier est tout de même bien dommage.

    RépondreSupprimer
  13. @habana: Le nom d'un fichier fait parti des métadonnées, comme la date de création, de dernier accès, etc. Si les métadonnées sont perdues car effacées de la table d'allocation, je trouve déjà bien de pouvoir quand même récupérer le fichier.

    Une autre solution est de ne pas perdre ses données (et métadonnées) en les sauvegardant.

    RépondreSupprimer
  14. Je dis ça en tant qu'utilisateur régulier de Photorec depuis plusieurs années, pa spécialement sur mes propres périphériques :)

    RépondreSupprimer
  15. ...demander à votre fils/fille ce qu'il peut faire moyennant rémunération 1 mois d'abonnement à Wow de votre poche?

    Prendre des notes, ou du moins essayer, pendant qu'il tripote l'ordi en mâchouillant son déjeuner, tout en continuant d'envoyer des SMS à ses amis.

    Se rendre à l'évidence que, vraiment, les enfants grandissent trop vite, et arrêrter de prendre des notes.

    Constater que tout remarche et que votre fils/fille s'en fiche car il a déjà relancé MSN et tchatte sans se soucier de vous.

    Le priver de Wow et l'envoyer faire ses devoirs avec toute l'autorité et l'hypocrisie parentale possible et assumable.


    ..nan, personne ne ferait un truc pareil....

    RépondreSupprimer
  16. Bonjour à tous,

    ayant longtemps été catégorisé comme "le gamin du voisin qui si connait", j'ai quelques récupérations de disques durs à mon actif... Et je plussoie fortement concernant le combo DD + photorec.

    Pour les disques qui tournent (IE le moteur se met en marche) mais qui font clac-clac (le bras des têtes déconne), une nuit au congel (emballé hein, ne jetez pas le disque au milieu des steaks hachés comme ça...) et une petite claque avant de le rebrancher en général ça fait des miracles... le temps de faire la copie avec DD :)

    Merci Zythom pour votre superbe blog, même si parfois il y a des articles qui ne me réjouissent pas.

    RépondreSupprimer
  17. @Younes : Utiliser TimeMachine et sauvegarder les données sur le même disque ? C'est pas vraiment la meilleure solution...
    Sinon j'abonde totalement pour le choix de TestDisk et PhotoRec encore une fois merci à Christophe Grenier pour ces deux merveilleux outils...

    RépondreSupprimer
  18. Bonjour Zythom,

    Vous avez raison, /dev/sda_Numéro fonctionne à merveille:

    $ dd if=/dev/sda1 of=/cygdrive/C/test.bin
    (quelques secondes plus tard, CTRL+C)

    126845+0 records in
    126845+0 records out
    64944640 bytes (65 MB) copied, 8.5 s, 7.6 MB/s

    Le fichier généré semble bien valide.

    Ce qui m'a initialement induit en erreur, c'est le ls -l de mon /dev qui sous Cygwin ressemble à ceci:

    $ ls -la /dev
    total 4
    drwxrwxrwx+ 2 sofiennerida mkgroup-l-d 0 Sep 3 2008 .
    drwxrwxrwx+ 11 sofiennerida mkgroup-l-d 0 Sep 3 2008 ..
    lrwxrwxrwx 1 sofiennerida mkgroup-l-d 13 Sep 3 2008 fd -> /proc/self/fd
    lrwxrwxrwx 1 sofiennerida mkgroup-l-d 15 Sep 3 2008 stderr -> /proc/self/fd/2
    lrwxrwxrwx 1 sofiennerida mkgroup-l-d 15 Sep 3 2008 stdin -> /proc/self/fd/0
    lrwxrwxrwx 1 sofiennerida mkgroup-l-d 15 Sep 3 2008 stdout -> /proc/self/fd/1

    Contrairement au même ls effectué sous Linux (de mémoire, sous Debian, à vérifier), on n'y voit pas les sda_Numéro, mais il sont effectivement utilisables.

    Merci pour tout !

    RépondreSupprimer
  19. @Sid:

    Merci pour votre réponse Sid.

    Je croyais que quelque chose m'échappait concernant le fonctionnement de dd ou de dd_rescue.

    Tout ceci est donc avant tout une question de choix personnel.

    Cette question me titillait depuis un moment. Vous me soulagez en m'apportant une réponse !

    RépondreSupprimer
  20. Pour les erreurs Windows le disque d'origine de Windows XP/Vista et peut être d'autre permet de récupèrer (parfois).
    Sinon rien ne vaut une bonne sauvegarde (faites ce que je dis pas ce que je fais, la dernière fois que j'ai récupère un fichier important c'était grâce au dossier des messages envoyés de ma messagerie IMAP). J'avais aussi entendu parler pour les sauvegardes d'un logiciel payant qui crypte les données et les envoie en P2P chez d'autres gens, de sorte qu'il y a plusieurs copies de sauvegardes cryptées accessibles rapidement et dans le monde entier (utile pour les parano des catatrophes naturelles, incendie ou pour les pas douées qui oublient le lieu de stockage ou écrasent leurs sauvegardes.

    RépondreSupprimer
  21. Bonjour,

    pour copier un disque vers un autre, pcopy est beaucoup plus rapide que dd.

    http://www.lysator.liu.se/~pen/pcopy/

    Photorec et Testdisk m'ont permis de faire des miracles pour des personnes pour qui le mot "sauvegarde" est un gros mot.

    Bonnes fêtes à Zythom et ses nombreux lecteurs.

    --
    px

    RépondreSupprimer
  22. Bravo pour ce billet très utile, mais surtout bourré d'humour. Sympa et efficace...
    Zet sûr que ce soit bien conforme aux prescriptions ça? Lol.
    Merci et bonne fêtes!

    RépondreSupprimer
  23. Bonjour Zythom,

    Je rajouterai un conseil : ne pas démonter le disque dur ! on reçoit presque tous les semaines des disques avec des traces de doigt sur les plateaux.

    si la copie bas niveau est très lente, c'est que l'état du disque se dégrade. N'attendez pas la rayure pour stopper le disque. Si ça force c'est que ça va péter ;)

    Coté soft, je vous conseillerai R-studio.

    Joyeux noël à tous,

    Florent Chassignol / invirtuel.fr

    RépondreSupprimer
  24. Bonjour,

    J'aurais aussi preconiser l'utilisation de logiciels tel que sleuthkit ou digital forensics framework (malheureusement il ne supporte que le fat pour l'instant), qui permettent a l'inverse des logiciels de 'carving' de recuperer les noms des fichiers et l'arborescence. (ce qui peut etre pratique pour retrouver un document parmis des milliers sans tous les visualiser)

    RépondreSupprimer
  25. Je suis surpris que vous n'ayez pas évoquer une dernière solution :
    Faites comme pour le reste, nous sommes dans l'ère de la "Consommation-kleennex" : quand ça ne marche plus, je jette.

    Il faut savoir s'émanciper de ces contraintes matérielles, et c'est jamais bon de rester attaché au passé, même quand il s'agit des photos de dernières vacances ou de son fichier clients !

    RépondreSupprimer
  26. Bonjour,

    petit commentaire pour préciser qu'il n'est pas nécessaire d'avoir recours à cygwin pour utiliser dd. Une version pour windows existe et peut être téléchargée à l'adresse suivante: http://www.gmgsystemsinc.com/fau/

    J'en profite également pour ajouter un autre utilitaire pour windows (jusque la version 1.3.4):
    http://dcfldd.sourceforge.net/

    Enfin pour finir, une mine d'informations très intéressante pour les passionnés du digital forensics mais également pour ceux qui souhaitent développer leurs connaissances dans ce domaine:
    www.forensicswiki.org

    En espérant que cela puisse servir à certains.

    RépondreSupprimer
  27. "Elle pourra évoluer au grès de mes humeurs".
    Vous voulez donc dire qu'elle n'est pas gravée dans le marbre ?
    Je suis désolée, je ne pinaille normalement pas pour une malheureuse coquille sur un texte aussi long, mais je ne pouvais pas laisser passer ce lamentable jeu de mots géologique (ou devrais-je dire : lapidaire...)

    RépondreSupprimer
  28. @Abie: Merci, c'est corrigé! Et excellent jeu de mot :)

    RépondreSupprimer
  29. Je suis en train de récupérer un disque avec cygwin.

    Ce lien permet d'identifier facilement les disques et partitions: http://www.packetninjas.net/blog/2008/12/31/commentary-on-using-dd-in-cygwin-forensics.html

    RépondreSupprimer
  30. vécu... je sers parfois (hélas) de "copain qui s'y connais"

    Lui : J'ai effacer toutes les photos de vacances... ma femme va me tuer !
    Moi : Si tu n'a pas trop utilisé ce disque je peux essayer de les récupérer. Photorec, patati patata explications... Bon je te préviens juste que je ne peux pas trier tes photos de vacances d'autres images : je te restaure *toutes* les images accessible sur le disque même éacées avant !
    Lui : Heuuuu... comment tu as dis qu'il s'appèle ton logiciel ?

    RépondreSupprimer

Lectrice, admiratrice, avocate, magistrate, programmeuse, dessinatrice, chère consœur, femmes de tous les pays, lecteur, j'ai toute confiance en vous pour prendre bien soin de vérifier que votre prose est compatible avec les normes orthographiques et grammaticales en vigueur. Et si vous pouviez éviter les propos insultants ou haineux, je vous en serais reconnaissant.
N'hésitez pas à respecter ces quelques règles qui peuvent même s'appliquer en dehors de ce blog.

Les commentaires sur ce blog sont modérés. Votre message apparaîtra sur le blog dès que le modérateur l'aura approuvé. Merci de votre patience.