Par accident, j’ai utilisé rm
sur un fichier que je ne voulais pas supprimer. Est-il possible de le récupérer sous Linux?
Voici des étapes génériques pour récupérer des fichiers texte.
Utilisez d'abord la commande wall pour indiquer à l'utilisateur que le système est en train de tomber en mode utilisateur unique:
# wall
System is going down to .... please save your work.
Appuyez sur CTRL + D pour envoyer un message.
Utilisez ensuite la commande init 1 pour amener le système en mode utilisateur unique:
# init 1
Utiliser grep (manière UNIX traditionnelle) pour récupérer des fichiers
Utilisez la syntaxe grep suivante:
grep -b 'search-text' /dev/partition > file.txt
OR
grep -a -B[size before] -A[size after] 'text' /dev/[your_partition] > file.txt
Où,
-i : Ignore case distinctions in both the PATTERN and the input files i.e. match both uppercase and lowercase character.
-a : Process a binary file as if it were text
-B Print number lines/size of leading context before matching lines.
-A: Print number lines/size of trailing context after matching lines.
Pour récupérer un fichier texte commençant par "nixCraft" Word sur/dev/sda1, vous pouvez essayer la commande suivante:
# grep -i -a -B10 -A100 'nixCraft' /dev/sda1 > file.txt
Utilisez ensuite vi pour voir file.txt.
Cette méthode est UNIQUEMENT utile si le fichier supprimé est un fichier texte. Si vous utilisez le système de fichiers ext2, essayez de récupérer la commande.
Trouvé à http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html
dd
et essayez de trouver le fichier qu'il contient (en utilisant grep
ou un éditeur).Edit: parfois ddrescue
fonctionne mieux que dd
.
Testdisk a une option de suppression qui devrait fonctionner avec Linux.
Il y a une procédure pas à pas pour Linux . Notez que cela fonctionne pour ext2 , ext3 et ext4 .
Si c'est le standard rm , j'espère que vous avez une copie de sauvegarde. La procédure de récupération d'un fichier supprimé serait différente pour chaque système de fichiers, si cela était possible. Linux n'a pas de "corbeille" intégrée; une fois que vous supprimez un fichier, tout est parti.
Quelle que soit la méthode choisie, vous devrez débrancher l'ordinateur - dès que possible, car le fait de continuer à exécuter l'ordinateur (même à l'éteindre) provoque des écritures sur le disque et augmente le risque que certains blocs précédemment occupés par l'ordinateur de poche soient bloqués. le fichier sera écrasé. Cela fait, installez-le sur un autre ordinateur, redémarrez un live CD (en veillant à ne pas monter le lecteur sauf si vous le montez en lecture seule), ou retirez le disque dur et amenez-le à un spécialiste en récupération de données.
Je l'ai fait il y a quelques années. Mon approche consistait à directement, pas de temps à perdre, démonter la partition, puis
dd if=/dev/hda1 of=backup_image.ext3
d'avoir un fichier de sauvegarde de l'état exact de la partition. Ensuite, vous pouvez monter la partition à nouveau et poursuivre vos activités comme d'habitude lorsque vous recherchez le fichier supprimé dans votre image créée. L'image sera probablement TRES grande car vous avez besoin de tout l'espace "vide", il pourrait donc être un problème pratique pour la stocker.
Ensuite, c’était juste pour effectuer des recherches ennuyeuses après des extraits de texte que je pensais être quelque part dans la soupe du contenu de la partition. Par exemple. pour trouver des fichiers .tex, j'ai couru
grep --binary-files=text -1000 "subsection" < backup_image.ext3 > latexfiles
qui a imprimé un contexte large autour de l'expression "subdivision" et a sauvegardé la sortie dans un fichier dans lequel effectuer une recherche manuelle. J'ai imprimé un contexte aussi vaste, car la recherche de l'image prenait tellement de temps que je préférerais ne pas le faire plus de fois que nécessaire.
La commande strings
a également été utile pour supprimer les déchets binaires de la sortie, mais si je me souviens bien, elle a également supprimé toutes les nouvelles lignes, ce qui pourrait poser problème.
Pour trouver des fichiers binaires de la même manière, on pourrait réussir à trouver un en-tête caractéristique ou quelque chose d'un certain fichier, mais j'imagine que c'est une aventure plutôt grosse.
Brèves notes techniques: la récupération de disque et Ext3/4 posent des problèmes techniques. C'est une longue chose à expliquer, mais brièvement (et de manière inadéquate): Ext3/4 supprime les "marqueurs" qui indiquent au système d'exploitation où les fichiers sont situés sur le disque lorsque vous les supprimez. Les fichiers ne sont pas nettoyés, mais personne ne sait où ils commencent et se terminent sur le disque, et ils sont parfois même fragmentés à plusieurs endroits. Certains autres systèmes de fichiers définissent simplement les statuts des fichiers sur "supprimé", mais conservent les données d'emplacement. Alors, restaurer n’est pas plus difficile que de regarder les pointeurs de fichiers avec cet indicateur (ils devraient rester disponibles si aucune activité n’est trop active) et espérer que leur contenu n’a pas été écrasé.
Quel est le meilleur? Rhétorique, à mon avis. Une sauvegarde fréquente est la réponse à tous ces problèmes. Des données importantes sans un système de sauvegarde automatisé est un accident imminent, IMHO.
Anecdote personnelle obligatoire: J'allais retirer foo\ foo*
de ~
. J'ai écrit
rm -r foo<Tab>*
, qui, malheureusement, étant donné que foo
était apparemment un lien symbolique et que le seul fichier correspondant, le shell
rm -r foo\ foo *
J'ai appuyé sur Entrée et je suis restée assise à regarder la commande, ce qui aurait dû prendre une seconde au plus. Après un peu plus de temps, rm
m'a demandé si je voulais "supprimer le fichier protégé en écriture" quelque chose "". Très rapidement, j'ai senti les frissons et, très doucement, très contrôlé, j'ai appuyé sur Ctrl+c
. ~ La moitié de mon ~
a été supprimée, mais j’ai réussi à récupérer tout ce qui avait de la valeur grâce à la sauvegarde décrite ci-dessus et à certaines sauvegardes plus ou moins actuelles. J'avais personnellement des données de mesure très précieuses (lire: longues) et très récentes sur disque, mais j'avais effectué des sauvegardes quadruples. L'un d'eux a disparu ici, un autre en raison d'une panne système à l'école, un autre était corrompu et, au début, je ne pouvais pas trouver le quatrième, car je l'avais mis par erreur dans le mauvais dossier :-D. Si rm -r
n'avait pas été bloqué sur un fichier protégé en écriture, le quatrième aurait été mangé depuis que ce dossier a été monté via sshfs dans mon ~
. Je suis beaucoup plus prudent avec ce genre de choses depuis.
Définissez vos attentes faibles. Si quelque chose a été écrit sur les données «supprimées», vous le perdrez.
J'ai fait une petite récupération et les meilleurs outils que j'ai trouvés ont souvent été conçus pour certains formats. Par exemple, «photorec» était génial lorsque je voulais récupérer des dizaines de milliers de fichiers jpeg.
Recuva m'a également aidé avant maintenant et pourrait être votre meilleur choix. (C'est gratuit, ne vous laissez pas piéger par leurs annonces)
À la fin de la journée, si ce que vous avez perdu est important, mettez le lecteur hors ligne et arrêtez d'écrire. Utilisez tous les logiciels de récupération que vous pouvez trouver jusqu'à ce que vous récupériez vos données ou que cela en vaille la peine. Si c'est vraiment important, envoyez-le à des professionnels à un prix élevé.
Si vous avez déjà eu de la chance avec un outil, essayez à nouveau, vu que vous le connaissez bien. À la fin de la journée, ils ne devraient pas écrire sur le disque et vous pouvez donc utiliser un logiciel jusqu'à ce que vous en trouviez un qui fonctionne.
La seule réponse correcte est: restaurez votre fichier à partir d'une sauvegarde. Tout le monde doit avoir une sauvegarde. Pour les fichiers vraiment importants, vous devez avoir deux sauvegardes. Vous pas? Eh bien, tant pis, voici une leçon apprise (désolée de paraître dure, mais je suis en stockage de données, et les gens ne sauvegardent pas avant d'avoir perdu des données importantes, c'est un fait. Alors oui, vous avez l'air stupide, mais ainsi presque tout le monde.
OK, vous n'avez pas de sauvegarde. vous devez stop en utilisant le système de fichiers contenant le fichier RIGHT NOW . Toute activité d’écriture peut définitivement contenir les données de fichier qui peut (seulement peut) reste sur le disque.
si vous avez commis l'erreur tragique de n'utiliser qu'une seule partition à la fois comme système de fichiers racine et/home, cela signifie que vous amorcez doit à partir d'un autre périphérique.MAINTENANT.
Si votre fichier a un format courant (fichier Word, JPG, etc.), utilisez Photorec . Photorec peut récupérer les formats de fichiers les plus courants.
Vous pouvez essayer la méthode "ext3 undelete" proposée précédemment, mais vous devez être à l'aise avec la ligne de commande, comprendre le fonctionnement de base de Linux, etc.
Si votre fichier est d'un format spécial, pas de chance. Une fois, j’ai écrit un programme Perl pour analyser un lecteur à la recherche de fichiers spéciaux, et cela a très bien fonctionné; mais vous aurez besoin de connaître la programmation pour le faire et d’être aussi à l’aise avec Linux.
Si vous avez une application ouverte qui lit actuellement le fichier, telle que VLC ou LibreOffice, alors cette réponse géniale de L & U.SO m'a aidé à sortir de ce gâchis. Voici une méthode alternative pour faire la même chose.
L'idée générale est de trouver le lien dans /proc/PID/fd/DESCRIPTOR_NUMBER
et de le recopier à son emplacement d'origine. Utilisez ps aux | grep APP_NAME
pour trouver le PID, puis ls -la /proc/PID/fd/
pour trouver le DESCRIPTOR_NUMBER approprié.
Voici un excellent document pour vous. Vous y trouverez une foule de conseils pratiques.
BTW, il y a deux groupes de personnes:
Félicitations, vous venez d'être promu dans le groupe 2. ;-)
La réponse "correcte" consiste à supposer qu’il n’existe pas de méthode de restauration fiable mais plutôt de restauration à partir de sauvegardes ou d’un système cloné ou de réinstallation.
TestDisk est un excellent outil. Il existe d'autres moyens de récupérer certaines données du disque physique en fonction du système de fichiers et de la récence de la suppression. Toutefois, le temps et la douleur impliqués peuvent être trop longs, donc GARDER DES SAUVEGARDES (et vérifiez également qu’ils sont valides et restaurables)!
Si ce n'est pas écrasé par d'autres utilisateurs, alors vous avez de la chance. J'ai accidentellement supprimé mon fichier source cpp et utilisé un outil appelé foremost , qui m'a aidé à restaurer les débris 60G cpp du disque. Enfin, j'ai récupéré mon dossier en assemblant ces débris pièce par pièce. Je pense qu'il scanne certains motifs pour un type de fichier spécifique et traverse tous les inodes du disque pour récupérer des fichiers! Juste essayer!
Si vous avez accidentellement supprimé le fichier de Linux, vous pouvez utiliser cette commande:
find /root -name "search text" -type f -exec mv {} "/home" \;
à la place de search text
, vous pouvez mettre un nom de fichier et spécifier le répertoire dans lequel vous voulez restaurer à la place de /home
.
Vous pouvez essayer ce script. Fonctionne bien et destiné à être utilisé à la place de rm et im l'utiliser intensément maintenant.
https://github.com/nateshmbhat/safe-rm
rm