Récupération de fichiers sous linux

Par Cinux, le 14 mars 2017

Ce qui devait arriver un jour est arrivé! J'ai supprimé par mégarde le fichier KEEPASS contenant tous mes mots de passe et ma dernière sauvegarde date du mois dernier. Ca n'est pas dramatique mais j'aimerais pouvoir récupérer les modifications que j'y ai apporté entre temps. La récupération de données est composées de 2 étapes importantes:

1) Arrêter d'écrire sur la partition concernée par la perte de données.
2) récupérer les données (si rien n'a été écrit par dessus).

afin de ne plus écrire sur votre partition concernée par la perte de fichiers, il faut la démonter afin d'éviter que des écriture se fassent sur les données perdues. On peut éventuellement la remonter en lecture seule pour accéder à certains fichiers si besoin mais cette étape est optionnelle. Pour se faire, on quitte tout pour se loger en root puis on tape :

ATTENTION: Dans tous les exemples ci-dessous, /dev/sdaX est la partition surlaquelle se trouvent les données à restaurer.

$ umount /dev/sdaX # pour la démonter
$ mount -o ro /dev/sdaX/ /mnt/tmp # pour la monter en lecture seule.
Ceci étant fait, vous pouvez passer à la phase de récupération. Si foremost n'est pas installé sur votre distribution, vous pouvez récupérer la dernière version sur http://foremost.sourceforge.net/ ou l'installer avec votre gestionnaire de paquet. Pour les systèmes basés sur Debian, on tapera:

$ apt update
$ apt install foremost 
Pour connaître la liste des fichiers qu'il est possible de restaurer, tapez :

sudo foremost -w -i /dev/sdaX -o /recovery/foremost
L'option -w indique à foremost de lister tout ce qui est récupérable dans le fichier audit.txt dans le répertoire de sortie.(dans notre cas /recovery/foremost/). Par défaut, foremost permet de récupérer tous les types de fichiers listés dans la manpage (pour plus de détails tapez : man foremost). Pour récupérer les images .jpg par exemple, On tapera alors:

$ foremost -t jpg -i /dev/sdaX -o /recovery/foremost
Et si c'est un type de fichier non reconnu par défaut, comment faire???
En installant foremost, un modèle de fichier de configuration est installé en /etc/foremost.conf. Il contient déjà pas mal de types additionnels qui sont tous commentés par défaut. Pour les activer il faut dé-commenter la ligne en supprimant le '#' en début de ligne.
Si toute fois, le type de fichier que vous tentez de restaurer ne figure pas dedans il est possible de l'ajouter. Pour récupérer un fichier KEEPASS, j'ai trouvé les informations concernant le type de fichier à l'adresse https://gist.github.com/msmuenchen/9318327, et je les ai ajouté à la fin du fichier de conf /etc/foremost.conf comme suit:

#---------------------------------------------------------------------
# KEEPASS FILES
#---------------------------------------------------------------------
#  type    Case      size            Header                   footer
    kdbx    y           5000000     \x03\xD9\xA2\x9A    \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0


Il ne reste plus qu'à lancer foremost avec la configuration que nous avons mise en place :
$ foremost -t kdbx -c /etc/foremost.conf -i /dev/sdaX -o /restore/foremost
Les fichiers récupérés seront alors placés dans /restore/foremost/kdbx/

La restauration de fichier ne fonctionne malheureusement pas toujours et n'est pas une solution à envisager. Il faut mettre en place une politique de sauvegarde sérieuse afin de se prémunir contre toute perte de données.

Mots clés : aucun
Classé dans : Sécurité