PhotoRec
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.
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.
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).
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)