Récupération de fichiers supprimés accidentellement

79

J'ai accidentellement supprimé un fichier de mon ordinateur portable. J'utilise Fedora. Est-il possible de récupérer le fichier?

crskhr
la source
9
Quel est votre système de fichiers?
echox

Réponses:

94

Je déconseille d'installer immédiatement un utilitaire. Fondamentalement, votre plus grand ennemi ici sont les écritures sur disque. Vous voulez les éviter à tout prix en ce moment.

Votre meilleur choix est une sauvegarde automatique créée par votre éditeur, si elle existe. Sinon, j'essaierais l'astuce suivante en utilisant grep si vous vous souvenez d'une chaîne unique dans votre fichier .tex:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

Remplacez /dev/sda1par le périphérique sur lequel se trouvait le fichier et remplacez 'string'par la chaîne unique de votre fichier. Cela pourrait prendre du temps. Mais en gros, cela recherche la chaîne sur le périphérique, puis renvoie 100 lignes avant et après cette ligne et la place file.txt. Si vous avez besoin de plus de lignes renvoyées, ajustez simplement les options -Bet -Acomme il convient. Vous pourriez recevoir un tas de déchets supplémentaires, mais vous devriez pouvoir récupérer votre texte.

Bonne chance.

Steven D
la source
8
Quelqu'un m'a montré cela quelques semaines après être passé à Linux, lorsque j'ai supprimé un document texte dont j'avais vraiment besoin - cela m'a vraiment bouleversé la tête
Michael Mrozek
18
Par ailleurs, -B100 -A100peut être remplacé par équivalent -C100(C pour "contexte"). Et je ne voudrais certainement pas utiliser -isi cela était possible, mais -Fle remplacer.
rozcietrzewiacz
Probablement sans surprise - je suppose que les mêmes blocs de disque ont été réutilisés - cette méthode n’a pas fonctionné pour un fichier que j’ai écrasé par inadvertance et non supprimé par inadvertance.
NTC2
Oui, sur la plupart des systèmes de fichiers, les mêmes blocs sont réutilisés lorsqu'un fichier est simplement écrasé. Notez que certaines applications "contournent cela" dans un sens en écrivant d'abord un fichier temporaire (ce qui en fait une écriture séparée), puis en renommant ce fichier par-dessus l'ancien fichier (qui remplace les données du point de vue de l'utilisateur). Ceci est fait pour un certain nombre de raisons différentes. Les systèmes de stockage (y compris les systèmes de fichiers) qui le font tout le temps sont appelés copie sur écriture .
un CVn
avez-vous besoin de / dev / sda1? Pouvez-vous simplement aller au directeur où le fichier était et exécuter sans / dev / sda1?
coolcool1994
22

C'est possible, ça va être un problème.

MISE À JOUR: avant d'essayer cette méthode, jetez un coup d'œil à la réponse de Steven .

Vous allez avoir besoin du paquet testdisk , de beaucoup d’ espace disque et de beaucoup de temps.

PhotoRec, une partie de TestDisk, peut récupérer des fichiers à partir de presque tous les disques. PhotoRec prend en charge la recherche de .texfichiers.


Tout d’abord, installez testdisk en exécutant

yum install testdisk

Remarque: vous aurez besoin de beaucoup d'espace libre sur un autre lecteur, où vous pourrez sauvegarder les fichiers récupérés.

Récupérez tous les fichiers supprimés sur votre disque en les exécutant photorecsur l’espace libre du disque.

sudo photorec

et suivez les instructions ... (n'oubliez pas de ne pas enregistrer les fichiers sur le même disque que celui que vous récupérez)

Une fois le processus terminé, tous les fichiers récupérés doivent figurer dans un répertoire, où vous devez exécuter:

find -name '*.tex' > filelist

Cela produira une liste de fichiers qui pourraient être ceux que vous avez perdus. Vous devrez tous les vérifier, car les noms de fichiers seront perdus.

Stefan
la source
11
photorec est un bon utilitaire, je voudrais juste m'inquiéter des écritures sur disque qui vont se produire pendant l'installation. Est-il possible d'obtenir ce fichier en tant qu'exécutable autonome pouvant être exécuté à partir d'un support externe?
Steven D
1
Oui, tu as très raison. Je ne sais pas pour un exécutable autonome, mais on pourrait essayer d'utiliser un live-cd?
Stefan
2
Pour réduire le nombre de fichiers récupérés avec Photorec, le troisième écran de cette option permet à un [Fichier optionnel] de sélectionner ceci. Vous pouvez sélectionner dans une liste les types de fichiers que vous souhaitez ou non récupérer.
Steve Burdine
13

De nombreux éditeurs de texte conservent des fichiers de sauvegarde. Si vous êtes vraiment chanceux, il pourrait y avoir quelque chose comme yourfile.tex ~ incluant une version précédente de votre fichier.

fschmitt
la source
4

Dans tous les cas, je cesserais de travailler sur le périphérique utilisé dès que possible pour éviter toute gravure sur disque, et démarrerais sur un système d’exploitation dédié, tel que SystemRescueCd , un Live-CD afin que vous puissiez monter votre disque en lecture seule. afin d'éviter toute perte de données supplémentaire.

Ces distributions comprennent de nombreux outils de récupération mentionnés par d’autres, et vous pouvez installer la plupart des fichiers manquants.

J'ai toujours tendance à avoir un CD avec une version récente de SystemRescueCd dans mon lecteur USB externe, juste au cas où.

Martin C.
la source
3

NOTE: J'ai ajouté cette réponse concernant une autre question à propos des fichiers de base de données supprimés (serveur MySQL) qui était fermée et qui pointait vers celui-ci. Je pense que cela peut également être utile dans d’autres situations similaires (dans la mesure où un processus maintient toujours les descripteurs de fichier ouverts).

Si votre processus est toujours en cours d'exécution, vous pouvez trouver vos fichiers /proc/<pid>fd/et les copier. Envoyez d' SIGSTOPabord au groupe de processus. Copiez les fichiers. Construisez une nouvelle instance sur le côté et laissez celle-ci arrêtée ou kill -9remettez les fichiers à leur place. InnoDB récupérera par lui-même lors de son exécution, mais s’il existe un certain nombre de MyISAM, vous devrez le faire manuellement.

pawel7318
la source
2

J'avais accidentellement supprimé mon fichier de base de données sqlite.

Ce que j'ai fait pour découvrir le fichier était,

Ouverture de l'emplacement /proc/dans un navigateur de fichiers et recherche du fichier de base de données sqlite supprimé sur celui-ci.

J'ai découvert ce fichier dans un résultat de recherche. Copié ce fichier de là vers mon ancien lieu.

Thaha kp
la source
0

J'ai eu le même problème il y a deux ans 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. La syntaxe est très simple:

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 est un mini tutoriel qui peut vous aider.

Juan
la source
0

Si vous ne possédez aucune sauvegarde, un outil de récupération de disque tiers peut récupérer tout ou partie des données, mais vous devez arrêter d'utiliser la machine maintenant. Les fichiers supprimés sont maintenant disponibles pour que votre système les écrase. Une fois écrasées, la récupération des données est extrêmement coûteuse. J'ai eu du succès avec la récupération de données uflysoft (il existe d'autres applications de récupération de données Mac OS) - vous devez disposer d'un "lecteur de récupération" (pas votre lecteur principal ou d'un lecteur de disque dur) sur lequel enregistrer les données récupérées. Vous démarrez à partir du disque de récupération de données (système)

Gallup Noel
la source