« e2fsprogs (1.41~WIP-2008-06-17-1) | Home | eth0 eth1 »
ext3grep et récupération de fichiers effacés
posté par cep le 17 juillet 2008
ext3grep est un utilitaire permettant de récupérer des fichiers effacés sur des systèmes ext3.
Il existe un paquet debian avec la version 0.6.0 de cet utilitaire, mais avec cette version il n’est pas encore possible de travailler sur un système de fichiers ext3 dont la taille des inodes est réglée à 256 bytes, ce qui est le cas de tous les fs créés avec une version e2fsprogs 1.40.5-1 ou supérieure.
ext3grep ne travaille pas sur le système de fichiers monté, mais sur une image du fs. Les fichiers récupérés sont placés dans un sous-répertoire du répertoire courant.
Exemple de récupération d’un fichier :
On va restaurer le fichier findfs.txt précédement supprimé sur le point de montage de /dev/hda10.
Pour rappel, le système de fichiers avait été créé avec la commande mkfs.ext3 -I 128 /dev/hda10 pour avoir des inodes de 128 bytes.
On démonte /dev/hda10 et on crée une image du fs :
# umount /dev/hda10 # dd if=/dev/hda10 of=hda10_image
Dans le répertoire courant où a été créée l’image on lance la récupération du fichier findfs.txt
$ ext3grep hda10_image –restore-file findfs.txt Running ext3grep version 0.6.0 WARNING: I don’t know what EXT3_FEATURE_COMPAT_EXT_ATTR is. Number of groups: 8 Minimum / maximum journal block: 322 / 4424 Loading journal descriptors… sorting… done Number of descriptors in journal: 22; min / max sequence numbers: 4 / 12 Writing output to directory RESTORED_FILES/ Finding all blocks that might be directories. D: block containing directory start, d: block containing more directory entries. Each plus represents a directory start that references the same inode as a directory start that we found previously. Searching group 0: DD++ Searching group 1: Searching group 2: Searching group 3: Searching group 4: Searching group 5: Searching group 6: Searching group 7: Writing analysis so far to ‘hda10_image.ext3grep.stage1′. Delete that file if you want to do this stage again. Result of stage one: 2 inodes are referenced by one or more directory blocks, 2 of those inodes are still allocated. 1 inodes are referenced by more than one directory block, 1 of those inodes is still allocated. 0 blocks contain an extended directory. Result of stage two: 2 of those inodes could be resolved because they are still allocated. All directory inodes are accounted for! Writing analysis so far to ‘hda10_image.ext3grep.stage2′. Delete that file if you want to do this stage again. Restoring findfs.txt
findfs.txt a en effet été récupéré dans RESTORED_FILES/ et est tout à fait éditable dans sa totalité.
Récupération de fichiers supprimés depuis une certaine date :
Si je supprime certains fichiers le jeudi 17 juillet 2008, 08:54:14 (UTC+0200), il est aussi possible de les récupérer en passant cette date comme point de départ de la recherche.
On transforme la date jeudi 17 juillet 2008, 08:54:14 en “date” machine :
$ date -d ‘07/16/2008 18:29:49′ +%s 1216225789
et on passe le paramètre à ext3grep :
$ ext3grep hda10_image –restore-all –after=1216225789 Running ext3grep version 0.6.0 Only show/process deleted entries if they are deleted on or after Wed Jul 16 18:29:49 2008. WARNING: I don’t know what EXT3_FEATURE_COMPAT_EXT_ATTR is. Number of groups: 8 Minimum / maximum journal block: 322 / 4424 Loading journal descriptors… sorting… done Number of descriptors in journal: 22; min / max sequence numbers: 4 / 12 Writing output to directory RESTORED_FILES/ Loading hda10_image.ext3grep.stage2… done Restoring Numériser0001.jpg Restoring cep.jpg Restoring cep1.jpg Restoring cep1.png Restoring cep3.jpg Restoring cep4.jpg Restoring chemin.jpg Restoring chemin1.jpg Restoring findfs.txt Restoring imgp0945.jpg Restoring imgp0946.jpg Restoring imgp0948.jpg Restoring imgp0949.jpg Restoring imgp0950.jpg Restoring imgp0951.jpg Restoring imgp0954.jpg Restoring pisc_pier.jpg Restoring portail.JPG Restoring portrait.jpg Restoring portrait1.jpg Restoring portrait2.jpg Restoring portrait3.gif Restoring portrait3.jpg Restoring roxy.jpg Restoring zugrib1.png Restoring zugrib2.png Restoring zugrib_thumb.png
On vérifie la récupération :
$ ls -lh RESTORED_FILES/* -rw-r–r– 1 sidcep sidcep 3,7K jui 17 08:48 RESTORED_FILES/cep1.jpg -rw-r–r– 1 sidcep sidcep 9,9K jui 17 08:48 RESTORED_FILES/cep1.png -rw-r–r– 1 sidcep sidcep 16K jui 17 08:48 RESTORED_FILES/cep3.jpg -rw-r–r– 1 sidcep sidcep 6,1K jui 17 08:48 RESTORED_FILES/cep4.jpg -rwxr-xr-x 1 sidcep sidcep 864K jui 17 08:48 RESTORED_FILES/cep.jpg -rw-r–r– 1 sidcep sidcep 569K jui 17 08:48 RESTORED_FILES/chemin1.jpg -rwxr-xr-x 1 sidcep sidcep 3,4M jui 17 08:48 RESTORED_FILES/chemin.jpg -rw-r–r– 1 sidcep sidcep 780 jui 17 08:48 RESTORED_FILES/findfs.txt -rwxr-xr-x 1 sidcep sidcep 2,4M jui 17 08:48 RESTORED_FILES/imgp0945.jpg -rwxr-xr-x 1 sidcep sidcep 2,0M jui 17 08:48 RESTORED_FILES/imgp0946.jpg -rwxr-xr-x 1 sidcep sidcep 2,4M jui 17 08:48 RESTORED_FILES/imgp0948.jpg -rwxr-xr-x 1 sidcep sidcep 2,4M jui 17 08:48 RESTORED_FILES/imgp0949.jpg -rwxr-xr-x 1 sidcep sidcep 2,4M jui 17 08:48 RESTORED_FILES/imgp0950.jpg -rwxr-xr-x 1 sidcep sidcep 3,7M jui 17 08:48 RESTORED_FILES/imgp0951.jpg -rwxr-xr-x 1 sidcep sidcep 3,5M jui 17 08:48 RESTORED_FILES/imgp0954.jpg -rwxr-xr-x 1 sidcep sidcep 475K jui 17 08:48 RESTORED_FILES/Numériser0001.jpg -rwxr-xr-x 1 sidcep sidcep 1,3M jui 17 08:48 RESTORED_FILES/pisc_pier.jpg -rw-r–r– 1 sidcep sidcep 865K jui 17 08:48 RESTORED_FILES/portail.JPG -rw-r–r– 1 sidcep sidcep 306K jui 17 08:48 RESTORED_FILES/portrait1.jpg -rw-r–r– 1 sidcep sidcep 15K jui 17 08:48 RESTORED_FILES/portrait2.jpg -rw-r–r– 1 sidcep sidcep 5,7K jui 17 08:48 RESTORED_FILES/portrait3.gif -rw-r–r– 1 sidcep sidcep 6,8K jui 17 08:48 RESTORED_FILES/portrait3.jpg -rw-r–r– 1 sidcep sidcep 338K jui 17 08:48 RESTORED_FILES/portrait.jpg -rw-r–r– 1 sidcep sidcep 106K jui 17 08:48 RESTORED_FILES/roxy.jpg -rw-r–r– 1 sidcep sidcep 2,1M jui 17 08:48 RESTORED_FILES/zugrib1.png -rw-r–r– 1 sidcep sidcep 2,1M jui 17 08:48 RESTORED_FILES/zugrib2.png -rw——- 1 sidcep sidcep 188K jui 17 08:48 RESTORED_FILES/zugrib_thumb.png
Et l’image jpg de 2,4Mo s’affiche sans problème. À noter donc que ext3grep fonctionne aussi sur les fichiers de plus de 48 ko et conserve les noms de fichiers originaux.
Ext3grep est bien plus puissant que ces deux exemples ne peuvent le laisser penser. Pour une vue plus détaillée de ses possibilités de récupération, voir ce howto de référence :
http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
cep
p.s. ne pas croire pour autant que la récupération de fichiers soit réalisable à 100%. Parfois on a aussi en retour des :
Cannot find an undeleted inode for file xxx
Topics: Général, debian, linux |
