Comment récupérer des fichiers supprimés sous Linux avec testdisk
Avez-vous déjà supprimé un fichier et l’avez-vous immédiatement regretté? Vous en avez besoin de retour, et vite! Mais que faire si le fichier est si nouveau, il n’a pas encore été sauvegardé? Heureusement, vous pouvez y remédier.
Sommaire
rm: Abréviation de Remorse?
Il est trop facile d’utiliser le rm
commande et vous retrouvez à regarder une fenêtre de terminal avec un sentiment de regret de plus en plus profond. Une petite erreur avec les jokers, et vous pouvez effacer beaucoup plus que ce que vous aviez prévu.
Le système de fichiers Linux par défaut, ext4
utilise des inodes pour conserver les données sur chaque fichier et une table des inodes pour garder une trace des inodes. L’inode contient des métadonnées sur le fichier, telles que son nom, son propriétaire, les autorisations, etc.
Il contient également des points d’entrée vers des liens physiques qui pointent vers le fichier. Chaque fichier a au moins un lien physique. Chaque fois que vous créez un nouveau lien physique, le nombre de liens physiques augmente de un. Chaque fois que vous supprimez un lien physique, le nombre de liens physiques dans l’inode est réduit de un.
Lorsque vous supprimez un fichier que l’inode a marqué comme inutilisé (et prêt à être réutilisé), le dernier lien physique est supprimé. Lorsque cela se produit, le fichier n’apparaîtra pas dans les listes de répertoires et il ne peut pas être utilisé ou accessible.
Cependant, les données qui composent le contenu du fichier sont toujours présentes sur le disque dur. Si vous pouviez patcher l’inœud afin qu’il contienne les informations correctes, le fichier serait restauré. Bien sûr, cela ne fonctionnera que si les données qui composent le fichier sur le disque dur restent intactes et ne sont pas écrasées.
Vous pouvez également créer un nouvel inode, copier les données restantes de l’ancien inode, puis remplacer les bits manquants.
Ce sont des activités non triviales. Habituellement, lorsque vous supprimez un fichier par erreur, c’est au pire moment possible. C’est toujours lorsque vous avez besoin de ce fichier, et vous en avez besoin maintenant. Vous n’avez pas le temps de vous salir avec les éditeurs de secteur et autres utilitaires. De plus, s’il s’agit d’un fichier que vous venez de créer, il n’a probablement pas encore été sauvegardé, donc cela ne vous aidera pas non plus.
Ce où testdisk
est facile à utiliser et ne nécessite pas de connaissances détaillées et de bas niveau sur le système de fichiers. Voyons comment l’utiliser!
Installation de testdisk
À installer testdisk
sur Ubuntu, utilisez cette commande:
sudo apt-get install testdisk
Sur Fedora, vous devez taper:
sudo dnf install testdisk
Sur Manjaro, vous devez utiliser pacman
:
sudo pacman -Sy testdisk
Utilisation de testdisk
Bien qu’il s’exécute dans une fenêtre de terminal, testdisk
a une interface rudimentaire. Vous utilisez les touches fléchées pour naviguer et Entrée pour effectuer une sélection. Pour garder les choses en ordre, il est préférable de créer un répertoire pour les fichiers restaurés.
Nous tapons ce qui suit pour créer un répertoire appelé «restauré» pour nos fichiers restaurés:
mkdir restored
Nous tapons ce qui suit pour basculer vers le nouveau répertoire et démarrer testdisk
De là:
cd restored/
Nous devons utiliser sudo
avec testdisk
, nous tapons donc ce qui suit:
sudo testdisk
La première question testdisk
demande concerne la journalisation. Il peut créer un nouveau fichier journal, utiliser un fichier existant ou ne rien enregistrer du tout. Peu importe l’option que vous choisissez; cela n’affectera pas la manière testdisk
fonctionne.
Vous pouvez simplement appuyer sur Entrée pour accepter l’option en surbrillance et créer un nouveau fichier journal. Il sera créé dans le répertoire à partir duquel vous avez commencé testdisk
. Lorsque vous faites votre sélection, testdisk
demande quel disque dur contient le système de fichiers sur lequel vous souhaitez travailler.
Il répertorie les disques durs qu’il peut trouver, ainsi que les squashfs
Fichiers «/ dev / loop». Il y en aura un pour chaque application que vous avez installée à partir d’un snap
. Ils sont en lecture seule, vous n’auriez donc pas dû réussir à supprimer quoi que ce soit de ces systèmes de fichiers.
Il n’y a qu’un seul disque dur physique dans cet ordinateur de test, nous avons donc utilisé la flèche vers le bas pour mettre en surbrillance l’option «/ dev / sda». Nous avons ensuite utilisé la flèche droite pour sélectionner «Continuer», puis appuyé sur Entrée.
testdisk
doit également connaître le type de partition. Il présente un menu d’options, ainsi que le type de partition détecté automatiquement en bas.
À moins que vous n’ayez une bonne raison de ne pas le faire, mettez en surbrillance le type de partition détectée automatiquement, puis appuyez sur Entrée.
Dans le menu de fonctions qui apparaît, mettez en surbrillance «Avancé», puis appuyez sur Entrée.
Le menu de sélection de partition apparaîtra.
Les fichiers que nous recherchons se trouvent dans la partition du système de fichiers Linux. Nous n’avons qu’une seule partition Linux sur notre disque dur, mais vous pourriez en avoir plus.
Sélectionnez la partition sur laquelle se trouvaient vos fichiers, utilisez les touches fléchées gauche et droite pour sélectionner «Liste», puis appuyez sur Entrée. Le menu de sélection de fichiers apparaîtra.
Utilisez les flèches haut et bas ou les touches PgUp et PgDn pour parcourir la liste des fichiers et répertoires. Appuyez sur la flèche droite ou Entrée pour entrer dans un répertoire et sur la flèche gauche ou Echap pour quitter un répertoire.
Nous recherchons des fichiers appartenant à dave
. Les fichiers de tous les comptes utilisateurs se trouvent dans le répertoire «Accueil». Nous mettons donc en surbrillance le répertoire «Home», puis nous pouvons appuyer sur la flèche droite ou sur Entrée pour entrer dans ce répertoire.
Tous les comptes utilisateurs sont alors répertoriés pour nous. Nous soulignons dave
, puis appuyez sur la flèche droite ou sur Entrée pour accéder à ce répertoire.
Nous pouvons maintenant voir les fichiers qui appartiennent au dave
Compte. Les entrées en rouge ont été supprimées. Nous naviguons dans les fichiers et les répertoires jusqu’à ce que nous trouvions les fichiers que nous voulons récupérer.
Pour récupérer un fichier, mettez-le simplement en surbrillance, puis appuyez sur c (minuscule).
L’affichage change et vous indique de choisir une destination pour le fichier récupéré. Parce que nous avons créé un répertoire appelé «Restauré» et avons commencé testdisk
à partir de là, la première entrée de la liste (.) est ce répertoire. Pour récupérer ce fichier supprimé dans ce répertoire, nous appuyons sur C (majuscule).
Après cela, vous revenez à l’affichage de sélection de fichiers. Si vous souhaitez récupérer plus de fichiers, répétez simplement le processus. Mettez en surbrillance un fichier supprimé, appuyez sur c (minuscule) pour le copier, puis appuyez sur C (majuscule) pour le récupérer.
Travailler avec des fichiers restaurés
Une fois que vous avez restauré un fichier, l’arborescence des répertoires à son emplacement d’origine est reconstruite, ce qui est utile car cela vous rappelle où sur le disque dur le fichier d’origine se trouvait. Cela signifie que si vous devez le recopier, vous savez où le mettre.
Si vous récupérez un certain nombre de fichiers à partir d’emplacements de système de fichiers différents qui ont le même nom de fichier, ils devront de toute façon être stockés séparément.
Vous pouvez taper ce qui suit pour voir le contenu du répertoire «Restauré»:
ls
Si vous avez demandé testdisk
pour créer un fichier journal, ce sera dans le répertoire «Restauré». Parce que nos fichiers récupérés se trouvaient dans «/ home / dave», ils ont été copiés dans notre répertoire «Restauré», imbriqués dans des répertoires du même nom.
Nous pouvons changer dans le répertoire «dave» copié en utilisant cd
. Assurez-vous de ne pas inclure de barre oblique (/
) sur le chemin: vous souhaitez passer au « home » local, pas au système « / home ».
Nous tapons ce qui suit:
cd home/dave
Les fichiers récupérés sont dans ce répertoire, nous tapons donc:
ls
Jetons un autre regard sur les fichiers récupérés en utilisant le -l
(longue liste) option:
ls -l
Parce que nous avons utilisé sudo
lancer testdisk
, les fichiers récupérés ont été restaurés avec «root» comme propriétaire. Nous pouvons redéfinir le propriétaire sur « Dave » en utilisant chown
:
sudo chown dave.dave *
Nous tapons ce qui suit pour nous assurer que la propriété correcte a été restaurée:
ls -l
testdisk: Code de secours
Ce sentiment de soulagement après avoir récupéré un fichier important qui, il y a un instant, se sentait irrémédiablement perdu, est quelque chose que vous apprécierez toujours.
C’est pourquoi testdisk
est un utilitaire si pratique. Une fois que vous avez parcouru les menus et que vous pouvez commencer à restaurer des fichiers, il est facile de tomber dans un rythme de surbrillance, c, C, répéter.