Par accident, j'ai utilisé rm
un fichier que je ne voulais pas supprimer. Est-il possible de le récupérer sous Linux?
Par accident, j'ai utilisé rm
un fichier que je ne voulais pas supprimer. Est-il possible de le récupérer sous Linux?
Réponses:
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
OU
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" 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
init 1
, supprimez manuellement tous les démons du système, à l'exception de sshd
. Je pense également qu’à ce stade, vous devriez remonter tous les systèmes de fichiers RO et les enregistrer dans tmpfs (en supposant que vos fichiers temporaires s’intègrent dans la mémoire RAM) pour éviter d’écraser les fichiers avec les données temporaires. Vous devrez bien sûr le copier ailleurs ultérieurement, soit sur un serveur distant, soit de nouveau sur les systèmes de fichiers locaux après leur remontage RW.
dd
et essayez de trouver le fichier qu’il contient (à l’aide d’ grep
un éditeur).Edit: ddrescue
fonctionne parfois mieux que dd
.
Testdisk a une option de suppression qui devrait fonctionner avec Linux.
Il existe une procédure pas à pas pour Linux . Notez que cela fonctionne pour ext2 , ext3 et ext4 .
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 sévère, mais je suis dans le stockage de données, et les gens ne sauvegardent pas avant d'avoir perdu des données importantes, c'est un fait. Donc oui, vous avez l'air stupide, mais ainsi presque tout le monde
OK, vous n'avez pas de sauvegarde. vous devez cesser d' utiliser le système de fichiers contenant le fichier RIGHT NOW . Toute activité d’écriture peut définitivement détruire les données de fichier qui peuvent (ne peuvent ) rester sur le disque.
Si vous avez commis l'erreur tragique d'utiliser une seule partition à la fois comme système de fichiers racine et / home, cela signifie que vous devez démarrer à partir d'un autre périphérique. NOW .
Si votre fichier est d'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.
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 j’espérais ê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.
De plus, la commande strings
était utile pour supprimer les déchets binaires de la sortie, mais si je me souviens bien, elle supprimait également tous les retours à la ligne, 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 toujours être disponibles si aucune activité n’est trop active), et ensuite 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 système de sauvegarde automatique est un accident qui attend, IMHO.
Anecdote personnelle obligatoire: J'allais foo\ foo*
partir ~
. J'ai écrit
rm -r foo<Tab>*
, qui, malheureusement, foo
était apparemment un lien symbolique et le seul fichier correspondant, le shell transformé en
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 vite, j'ai senti les frissons et doucement et très contrôlé j'ai appuyé Ctrl+c
. ~ La moitié de ma ~
copie a été supprimée, mais j’ai réussi à récupérer tout ce qui avait de la valeur par le biais de la description décrite ci-dessus de greps et de 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 perdues, 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. N'avait pasrm -r
bloqué sur un fichier protégé en écriture, le quatrième aurait été mangé depuis que ce dossier a été monté via sshfs dans my ~
. Je suis beaucoup plus prudent avec ce genre de choses depuis.
Si c'est la chambre standard , j'espère que vous avez une 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 le fichier sera écrasé. Cela fait, installez-le sur un autre ordinateur, redémarrez un CD live (en veillant à ne pas monter le lecteur, sauf en lecture seule), ou enlevez le disque dur et confiez-le à un spécialiste en récupération de données.
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.
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. ;-)
Si vous avez une application ouverte qui lit actuellement le fichier, telle que VLC ou LibreOffice, cette réponse géniale de L & U.SO m'aidera à 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 /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é.
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 des 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. KEEP BACKUPS (et testez 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é avant tout , qui m'a aidé à restaurer des débris de 60G cpp à partir 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 un répertoire dans lequel vous voulez restaurer /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
J'ai eu le même problème la semaine dernière et j'ai essayé beaucoup de programmes, tels que debugfs, photorec, ext3grep et extundelete. ext3grep était le meilleur programme pour récupérer des fichiers. Le sintax est très facile:
ext3grep image.img --restore-all
ou:
ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’
Cette vidéo montre est un mini tutoriel qui peut vous aider.
rm
est une commande "dangereuse" UNIX / Linux (lecture$ man rm
). Utilisez-le avec une extrême prudence . Cela dit, c’est un moyen rapide de supprimer des fichiers dont vous êtes sûr. Les environnements de bureau Linux et Unix modernes fournissent une solution de "Corbeille" , de sorte que l'utilisateur peut facilement récupérer des fichiers supprimés par inadvertance.