PhotoRec

Fiche logiciel validé
  • Création ou MAJ importante : 20/08/12
  • Correction mineure : 20/08/12
Mots-clés

PhotoRec : récupération de données perdues

Description
Fonctionnalités générales

PhotoRec est un logiciel, écrit en langage C et distribué sous licence GPL, destiné à récupérer les données effacées ou perdues sur un support physique. Contrairement à d'autres logiciels de récupération de données qui ont besoin de connaître le système de fichiers sur lequel reposent les données, PhotoRec effectue une récupération brute par recherche exhaustive de fichiers, et peut donc récupérer les données présentes y compris si le système de fichiers est fortement corrompu ou inexistant.
PhotoRec fonctionne sur tout type de media : disques durs, supports optiques (CD/DVD), mémoires électroniques (notamment tous types de cartes mémoires d'appareils numériques).
PhotoRec cherche les en-têtes de fichiers connues et récupère les données associées (ASCII lisibles ou binaires). Un fichier restauré sera intègre si ses données ne sont pas fragmentées, ce qui est le cas la plupart du temps avec des disques de taille importante.
A ce jour, cet outil permet de récupérer plus de 390 extensions de fichiers connues (soit plus de 225 familles de format de fichier). La liste complète se trouve ici.

Pour des raisons de sécurité (préservation de l'intégrité des fichiers sur le disque), PhotoRec monte le disque à analyser en lecture seule. La restauration des fichiers devra se faire sur un autre disque ou sur un partage réseau.

Contexte d'utilisation dans mon laboratoire/service

Cet outil est très largement utilisé lorsqu'une restauration de données classique s'avère impossible tant le support du media est endommagé (en terme logique et non physique).
Dans le cas où le media est un disque dur, la méthode la plus appropriée est de démonter le disque de son endroit d'origine, puis de le brancher sur la machine de diagnostic (là où est installé PhotoRec) via un adaptateur USB2/(IDE-(S)ATA).
Une deuxième méthode, particulièrement adaptée pour ordinateur portable, consiste à démarrer avec un LiveCD Linux qui contient cet outil (Ubuntu par exemple) et à restaurer les fichiers sur un support externe branché au portable.

Limitations, difficultés, fonctionnalités importantes non couvertes

La technique de restauration brute utilisée par PhotoRec entraine de fait 2 inconvénients :

  • Le nom d'origine du fichier n'est pas récupéré. Ceci dit, cet inconvénient peut être levé sur certains formats où le nom du fichier est inscrit dans son en-tête (JPEG-EXIF par exemple). Ainsi, un simple script peut permettre de parser l'en-tête à la recherche de ce nom de fichier et renommer le fichier récupéré par son nom d'origine.

    Dans sa dernière version, si le champ 'titre' dans les propriétés des fichiers Adobe PDF et Office est renseigné, ce dernier est alors rajouté au nom de fichier restauré. Dans le cas d'un fichier zip, c'est le nom du premier fichier contenu dans l'archive qui constituera le nom du fichier restauré.

  • PhotoRec récupère tous les fichiers présents sur le support analysé (c'est-à-dire ceux qui ont été perdus mais aussi ceux qui étaient volontairement supprimés). Cela peut donc aboutir à récupérer une quantité très importante de fichiers sur laquelle il va falloir alors effectuer un tri. Pour limiter cet effet, et dans le cas où le système de fichiers n'est pas totalement corrompu, il est possible d'effectuer une recherche uniquement sur l'espace libre (c'est-à-dire sur les blocs non alloués). Par contre, si les informations sur la structure du disque n'existent plus, il sera nécessaire de lancer la recherche sur la totalité du disque.

Dans les 2 cas, après une restauration, un travail de tri devra être effectué. On pourra par exemple classer les fichiers restaurés par leur extension puis faire une recherche de motif précis pour retrouver les fichiers les plus pertinents (un simple grep par exemple).

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

PhotoRec est intégré dans la plupart des distributions GNU/Linux avec le package TestDisk (sous Mandriva, les deux outils sont disponibles dans des rpm séparés).

Il existe une version statique qui permet, par exemple, d'exécuter ce programme depuis une clé USB sans l'installer. De même, PhotoRec est présent dans de nombreux LiveCD Linux (Ubuntu par exemple).

Plates-formes

GNU/Linux, MacOS, MS Windows

Logiciels connexes

PhotoRec est livré avec TestDisk.

L'outil TestDisk permet de récupérer des partitions perdues ou effacées ou de réparer des tables de partitions corrompues. Il fonctionne sur la quasi totalité des systèmes de fichiers (notamment toutes les versions de FAT, exFAT, NTFS, HFS, XFS, ext2/3/4 ainsi que les partitions RAID logicielles sous Linux).

Si le support à restaurer ne contient plus de partition, il peut être très utile de tenter de récupérer la table des partitions avec TestDisk avant de se lancer dans une restauration brute de fichiers.

TestDisk permet également d'utiliser l'outil de récupération de fichiers natif au système de partition pour les types NTFS, FAT et ext2 (par exemple undelete sous exFAT).

Autres logiciels aux fonctionnalités équivalentes

Foremost, Magic Rescue (mais tous deux ne sont plus maintenus et ne fonctionnent que sur Linux).

Environnement de développement
Eléments de pérennité

Les sources sont disponibles (Licence GPL) et l'auteur accepte d'étudier de nouvelles extensions dont on lui fait part afin de les intégrer dans son logiciel (bien entendu, uniquement si le format de fichier respecte un standard qui permet de retrouver sa structure).

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

FAQ de PhotoRec.

Guide d'utilisation : étape par étape.

Divers (astuces, actualités, sécurité)
  • A l'origine, l'auteur du logiciel a développé cet outil pour récupérer des photos à partir d'une carte mémoire d'appareil photo (d'où son nom Photo Recovery). Puis, le logiciel a été enrichi avec de nombreuses autres extensions et notamment les formats bureautiques et multimedia les plus utilisés.
  • Il est même possible de contacter l'auteur pour demander la prise en charge d'une nouvelle extension.
    Ainsi, en avril 2008, j'ai demandé la prise en charge du format de fichier FITS (suite à un besoin interne). Après avoir fourni au développeur des informations sur la structure du fichier, celui ci a très rapidement patché son logiciel pour que je puisse récupérer les fichiers de ce format. Après validation de restauration avec succès de plusieurs fichiers intègres, ce format a ensuite été rajouté dans la version stable qui suivait.
  • Il est possible de récupérer les données perdues sur un iPhone. La condition pour effectuer cette manipulation est d'avoir un iPhone débridé, ce qui permettra d'effectuer une image de la mémoire avec la commande 'dd' et de la transférer sur un autre media via SSH. Il suffira ensuite de lancer PhotoRec sur cette image disque.
Contributions

Pour contribuer au développement : tout est expliqué ici

Commentaires

Très bon logiciel

Dans un cadre plus personnel, je viens de faire l'expérience d'une récupération d'une clef USB corrompue sans le moindre écueil. Le nom PhotoRec ne se justifie plus, puisque le logiciel indique une liste d'extensions / types de fichiers plus qu'exhaustive (par rapport à mes modestes connaissances) qu'il tentera de reconstruire.
Pour une clef USB (ou carte SD), la méthode 'dd if=/dev/sdX of=/tmp/image_clef ...' est la plus appropriée, puisqu'elle permet de travailler sur une copie sans toucher l'original corrompu. D'après d'autres sources, l'erreur la plus fréquente de "clef corrompues" est une destruction de la première FAT (et il y a normalement une deuxième sur le même "disque", puisque le problème est aussi vieux que les disques eux-mêmes sur DOS/Windows).
Je n'ai pas trouvé le package correspondant dans mes distributions (Fedora, SL, tous deux des dérivés RH). Mais le fichier sur le site officiel est lié "statiquement", n'a donc pas besoin de librairies dynamiques et est censé être indépendant de l'OS (tant que c'est Linux).

Oui je confirme que Photorec

Oui je confirme que Photorec est très simple d'utilisation et gagnerait à s’appeler autrement car c'est un logiciel de récupération qui va bien au delà de la simple restauration des fichiers images !
De plus, le projet continue d'être réactif :
- même si la dernière version stable date de juillet 2013, la version 7 est en cours de développement et les commit dans le git de testdisk sont réguliers (voir http://git.cgsecurity.org/cgit/testdisk/)
- l'auteur de l'outil est réactif aux demandes de rajouts de format de fichiers (sous réserve de lui indiquer la nature de l’en-tête)
- L'auteur a écrit un article dessus dans le dernier MISC de mars/avril 2015.
Au niveau des packages, ils existent bien dans les repository des principales distributions Linux (y compris SL et Fedora). Par contre, il faut installer testdisk et non photorec ! (en fait testdisk = testdisk + photorec)