Forum Astuces.divers Récupérer des données malencontreusement effacées

Posté par  (site web personnel) .
Étiquettes :
18
27
juin
2012

J'ai accidentellement supprimé un répertoire contenant les photos de notre super week-end du 11 novembre dernier dans les gorges du Verdon. Ne me demandez pas comment j'ai fait mon compte, ce serait trop long à raconter, mais si j'écris ce billet vous vous doutez que je ne suis pas resté les bras croisés à pleurer sur mon sort.

Premier réflexe, ne plus toucher à mon PC pour ne pas aggraver mon cas : je savais en effet qu'effacer un fichier consistait simplement à enlever un pointeur dans le système de fichier. Tant qu'on n'écrit pas sur l’espace libéré les données elles-mêmes ne sont pas perdues.

Étape 1 - Récupération

J’emprunte donc le PC de ma chère et tendre, lance la recherche qui va bien (Linux récupération données effacées) et tombe rapidement sur cet article de l’excellentissime blog de Korben qui présente Foremost. Je retourne sur mon PC, passe en console (Alt-Ctrl-F1), me logue en root (pour ne pas écrire dans /home) et un yaourt plus tard (apt-get install pour les debianistes, ou yum pour les fedoristes, ou ce que vous voulez…) le paquet est installé. Je monte un disque dur externe, supputant à bon escient que la partition racine pourrait être un peu petite, m'y déplace et lance l'incantation magique :

foremost -t jpeg -i /dev/sda1

Là il faut prendre son mal en patience, ça mouline une paire d'heure et j'ai des messages inquiétants dans la console :

CPU1: Core temperature above threshold, 
cpu clock throttled (total events = 6730)

Je croise les doigts et au bout d'un (très long) moment je récupère la main. Ainsi qu'un répertoire bourré de plusieurs milliers de .jpg au nom tout aussi évocateur que 12456548524.jpg ! Ben oui, ça remonte à la nuit des temps, enfin plus exactement à l'origine de mon installation (tous les fichiers ne sont du reste pas lisibles). Comment vais-je retrouver mes petits là-dedans ?

Étape 2 - Renommage

C'est évident mon cher Watson : renommer les fichiers en tenant compte de la date contenue dans les données exif. Voir ce billet de mon blog sur exiv2. Donc je me déplace dans le répertoire créé par foremost (cd output/jpg/) puis :

exiv2 -r %Y%m%d_%H%M%S_:basename: mv *.jpg
mkdir /home/vince/recup
mv 201111* /home/vince/recup/
chown -R vince:users /home/vince/recup

  • avec exiv2 je renomme les fichiers (dont les données exif seraient intactes) sous la forme année-mois-jour_heure-minute-seconde_nom-d-origine.jpg
  • puis je sélectionne tous ceux du mois de novembre 2011 pour les déplacer dans un dossier de mon répertoire personnel
  • enfin je me rend propriétaire de ce dernier

Je ne suis malheureusement pas au bout de mes surprises : une fois sélectionnés les seuls fichiers correspondants au week-end (11, 12 et 13 novembre) j'en ai encore près de 800 au lieu des 250 attendus. Un petit coup d'œil avec gThumb pour m'apercevoir qu'ils sont tous au moins en double, voire triple, quadruple ou même quintuple exemplaire. Je ne comprends pas pourquoi, toujours est-il que l'idée de trier ça à la main ne me tente guère.

Étape 3 - Suppression des doublons

Donc retour vers notre ami du web à qui je propose "linux supprimer doublons photos". Et c'est encore un billet de Korben qui me fournit la solution avec le surprenant FSlint. Encore un coup de yaourt (pour les archers FSlint est dans le dépôt AUR, tout comme Foremost) et l'affaire est dans le sac.

FSlint est un programme surprenant qui permet de faire un ménage en profondeur de votre disque dur :

  • détection des fichiers en double sur la base de leur taille, de leur somme de contrôle MD5 et SHA1
  • liste des paquets installés sur le système
  • détection des fichiers comportant des caractères problématiques
  • détection des liens symboliques brisés
  • détection des répertoires vides
  • etc.

Si des doublons sont détectés vous pouvez soit les supprimer soit les remplacer par un lien physique.

Et voilou, encore une Happy End.

  • # Voir aussi: photorec

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

    Dédié à la récup des fichiers effacés, ou sur support défectueux.

    http://www.cgsecurity.org/wiki/PhotoRec_FR

    Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

  • # rangement de photos

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

    Merci pour fslint que je ne connaissais pas et qui pourrait bien m'être utile!

  • # Journal ?

    Posté par  . Évalué à 4.

    Pour une fois que c'est l'inverse, il fut le dire : il me semble que ce contenu aurait sa place en tant que journal. C'est bien ecrit, tu ne demandes rien, a ca serait un bon point de départ pour une discussion sur la restauration (pour ma part, je ne connaissais que photorec)

    Et sinon, mais ce n'est que mon avis, Korben, il commence à me fatiguer. Même s'il poste des contenus interessant (et souvent "neufs", ce qui n'est pas rien), ca manque franchement de cohérence, et je doute qu'il teste vraiment ce dont il parle.

    • [^] # Re: Journal ?

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

      Merci pour le compliment. Ce qui m'a poussé à utiliser le forum plutôt que le journal est que je n'ai pas vu (au moins récemment) de journal de ce genre. Du coup je ne sais pas… Un forum ce n'est pas que pour demander, c'est aussi pour partager :-)

    • [^] # Re: Journal ?

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

      il me semble que ce contenu aurait sa place en tant que journal.

      c'est dans le forum http://linuxfr.org/forums/astucesdivers qui est le forum approprié (bon, ok, faudrait le ranger pour enlever ce qui n'est qu'une erreur de sélection de certains…).

      Ce serait plutôt les journaux qu'il faudrait mettre dans les forums ;-)

Suivre le flux des commentaires

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