Wie kann ich eine entfernte Datei unter Linux wiederherstellen?

Zufällig habe ich rm für eine Datei verwendet, die ich nicht löschen wollte. Gibt es eine Möglichkeit, es wieder unter Linux zu bekommen?

Author: Chindraba, 2010-06-08

15 answers

Das Folgende sind generische Schritte zum Wiederherstellen von Textdateien.

  1. Verwenden Sie zuerst den Befehl wall, um dem Benutzer mitzuteilen, dass das System in einem einzelnen Benutzermodus ausfällt:

    # wall
    System is going down to .... please save your work.
    

    Drücken Sie STRG + D, um eine Nachricht zu senden.

  2. Verwenden Sie als nächstes den Befehl init 1, um das System in einen Einzelbenutzermodus zu versetzen:

    # init 1
    
  3. Verwenden von grep (traditioneller UNIX-Weg) zum Wiederherstellen von Dateien

    Verwenden Sie folgende Grep-Syntax:

    grep -b 'search-text' /dev/partition > file.txt
    

    ODER

    grep -a -B[size before] -A[size after] 'text' /dev/[your_partition] > file.txt
    

    Wo

    -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.
    

    Wiederherstellen textdatei beginnend mit" nixCraft " word auf / dev / sda1 können Sie folgenden Befehl versuchen:

    # grep -i -a -B10 -A100 'nixCraft' /dev/sda1 > file.txt
    
  4. Verwenden Sie als nächstes vi, um die Datei anzuzeigen.txt.

    Diese Methode ist NUR nützlich, wenn gelöschte Datei Textdatei ist. Wenn Sie das ext2-Dateisystem verwenden, probieren Sie den Befehl recover aus.

Gefunden unter: http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html

 53
Author: Gabriel L. Oliveira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-06-08 03:38:06
  • Wenn es sehr-sehr wichtig ist, nehmen Sie die Festplatte vom Computer und beauftragen Sie eine Firma, dies für Sie zu tun.
  • Wenn es nur sehr wichtig ist, mounten Sie die Festplatte schreibgeschützt, kopieren Sie die gesamte Partition mit dd in eine Datei und versuchen Sie, die Datei darin zu finden (mit grep oder einem Editor).

Edit: manchmal ddrescue funktioniert besser als dd.

 13
Author: Sjoerd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-10 07:54:59

Wenn Ihr Dateisystem ext3 ist, verwenden Sie ext3grep.

 9
Author: zaynyatyi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-26 17:08:58

Testdisk hat eine Undelete-Option, die mit Linux funktionieren sollte.

Es gibt a walkthrough für Linux - . Beachten Sie, dass es für ext2 funktioniert, ext3 und ext4.

 8
Author: James T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-08-14 19:21:43

Ich habe das vor ein paar Jahren gemacht. Mein Ansatz war direkt, keine Zeit zu verlieren, Partition aushängen und dann

dd if=/dev/hda1 of=backup_image.ext3

Um eine Sicherungsdatei mit dem genauen Status der Partition zu haben. Anschließend können Sie die Partition erneut mounten und mit business as usual fortfahren, während Sie nach der gelöschten Datei in Ihrem erstellten Image suchen. Das Bild wird wahrscheinlich SEHR groß sein, da Sie den gesamten "leeren" Speicherplatz benötigen, sodass es möglicherweise ein praktisches Problem ist, es zu speichern.

Dann war es nur um durchzuführen langweilige Suche nach Textausschnitten, von denen ich erwartete, dass sie sich irgendwo in der Suppe des Partitionsinhalts befinden. ZB zu finden .tex-Dateien, lief ich

grep --binary-files=text -1000 "subsection" < backup_image.ext3 > latexfiles

, das einen großen Kontext um den Ausdruck "Unterabschnitt" gedruckt und die Ausgabe in einer Datei gespeichert hat, die manuell durchsucht werden soll. Ich habe einen so großen Kontext gedruckt, da es so lange gedauert hat, das Bild zu durchsuchen, dass ich es lieber nicht öfter machen würde, als ich musste.

Auch der Befehl strings war hilfreich, um binären Müll aus der Ausgabe zu entfernen, aber wenn ich mich richtig erinnere, wurden auch alle Zeilenumbrüche entfernt, was ein Problem sein könnte.

Um Binärdateien auf die gleiche Weise zu finden, könnte man Erfolg haben, einen charakteristischen Header oder etwas von einer bestimmten Datei zu finden, aber ich stelle mir vor, es ist ein ziemlich großes Abenteuer.


Kurze technische Hinweise: Es gibt technische Schwierigkeiten bei der Datenträgerwiederherstellung und Ext3 / 4. Es ist eine lange Sache zu erklären, aber kurz (und unzureichend): Ext3 / 4 entfernt die "Markierungen", die dem Betriebssystem mitteilen, wo Dateien befinden sich auf der Festplatte, wenn Sie sie löschen. Die Dateien werden nicht geschrubbt, aber niemand weiß mehr, wo sie auf der Festplatte beginnen und enden, und manchmal sind sie sogar an mehreren Stellen fragmentiert. Einige andere Dateisysteme setzen den Status der Dateien einfach auf "gelöscht", behalten jedoch die Standortdaten bei. Dann ist Undelete nicht schwieriger, als Dateizeiger mit diesem Flag zu betrachten (sie sollten immer noch verfügbar sein, wenn nicht zu viel Aktivität aufgetreten ist), und dann hoffen, dass ihr Inhalt nicht war überschreiben.

Was ist das Beste? Rhetorisch, aus meiner Sicht. Regelmäßiges backup ist die Antwort auf all diese Probleme. Wichtige Daten ohne automatisierte Backup-System ist ein Unfall zu passieren warten, IMHO.


Obligatorische persönliche Anekdote: Ich wollte foo\ foo* aus ~ entfernen. Ich schrieb

rm -r foo<Tab>*

, was leider, da foo anscheinend ein Symlink war und die einzige Datei, die dazu passte, die Shell in

rm -r foo\ foo *

Ich drückte Enter und saß da blick auf den Befehl, der höchstens eine Sekunde hätte dauern sollen. Nach etwas längerer Zeit fragte mich rm, ob ich "die schreibgeschützte Datei 'something' entfernen möchte".Ziemlich schnell spürte ich die Schüttelfrost und sanft und sehr kontrolliert drückte ich Ctrl+c. ~Die Hälfte meines ~ wurde gelöscht, aber ich habe es geschafft, alles von Wert durch oben beschriebenes Grepping und einige mehr oder weniger aktuelle Backups zurückzubekommen. Ich hatte einige persönlich sehr wertvolle (sprich: zeitaufwendige) und sehr aktuelle Messdaten auf der Festplatte das war verloren, aber ich hatte vierfache Backups gemacht. Einer verschwand hier, ein anderer aufgrund eines Systemausfalls in der Schule, ein anderer war korrupt, und zuerst konnte ich den vierten nicht finden ,da ich ihn versehentlich in den falschen Ordner gelegt hatte: - D. Wäre rm -r nicht in einer schreibgeschützten Datei stecken geblieben, wäre der vierte Ordner gegessen worden, da dieser Ordner über sshfs in meinem ~ gemountet wurde. Ich bin viel vorsichtiger über diese Art von Sachen seit.

 6
Author: Daniel Andersson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-25 01:23:05
  • Die einzig richtige Antwort ist: Stellen Sie Ihre Datei aus dem Backup wieder her. Jeder muss ein Backup haben. Für wirklich wichtige Dateien sollten Sie zwei sicherungen. Du nicht? Nun, schade, hier ist eine Lektion gelernt ( Entschuldigung, es klingt hart, aber ich bin in der Datenspeicherung, und die Leute sichern nicht, bis sie einige wichtige Daten verloren haben, das ist eine gegebene Tatsache. Also ja, du siehst dumm aus, aber fast alle anderen auch ).

  • OK, Sie haben kein backup. sie müssen stoppen mit dem Dateisystem die GERADE die Datei enthielt. Jede Schreibaktivität kann definitiv die Dateidaten enthalten, die darf (nur darf) auf der Festplatte bleiben.

  • Wenn Sie den tragischen Fehler gemacht haben, nur eine Partition als Root-Dateisystem und / home zu verwenden, bedeutet dies, dass Sie von einem anderen Gerät booten müssen. JETZT .

  • Wenn Ihre Datei ein gängiges Format hat (Word-Datei, JPG usw.), verwenden Sie Photorec. Photorec kann häufigste Datei abrufen Dateiformaten.

  • Sie können die zuvor vorgeschlagene Methode "ext3 undelete" ausprobieren, müssen sich jedoch mit der Befehlszeile vertraut machen, das grundlegende Linux-Innenleben verstehen usw.

  • Wenn Ihre Datei von einem speziellen Format ist, Pech. Ich habe einmal ein Perl-Programm geschrieben, um ein Laufwerk nach speziellen Dateien zu durchsuchen, und es hat ziemlich gut funktioniert; aber Sie müssen etwas Programmierung kennen, um das zu tun, und sich auch mit Linux wohl fühlen.

 5
Author: wazoox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-07-09 13:49:14

Wenn es der Standard rm ist, hoffe ich, dass Sie ein Backup haben. Das Verfahren zum Wiederherstellen einer gelöschten Datei wäre für jedes Dateisystem unterschiedlich, wenn dies überhaupt möglich ist. Linux hat keinen eingebauten "Papierkorb"; Sobald Sie eine Datei löschen, ist alles weg.

Wie auch immer Sie es tun, Sie werden den Computer trennen wollen-so schnell wie möglich, wie weiterhin den Computer laufen (auch um es herunterzufahren) verursacht schreibt auf die Festplatte und erhöht die Chance, dass einige Blöcke früher besetzt durch die Datei wird überschrieben. Sobald Sie dies getan haben, legen Sie es entweder auf einen anderen Computer, starten Sie eine Live-CD neu (stellen Sie sicher, dass Sie das Laufwerk nur dann mounten, wenn Sie es schreibgeschützt mounten), oder entfernen Sie die Festplatte und bringen Sie es zu einem Datenwiederherstellungsspezialisten.

 5
Author: cHao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-26 17:12:42

Setze deine Erwartungen niedrig. Wenn etwas über die "gelöschten" Daten geschrieben wurde, werden Sie es verlieren.

Ich habe eine kleine Menge an Wiederherstellung durchgeführt und die besten Tools, die ich gefunden habe, wurden oft für bestimmte Formate entwickelt. Zum Beispiel war 'photorec' großartig, als ich Zehntausende von JPEGs wiederherstellen wollte.

Recuva hat mir auch schon einmal geholfen und könnte Ihre beste Wahl sein. (Seine freie, nicht dazu verleitet, zu zahlen durch Ihre anzeigen)

Am Ende des Tages, wenn was Sie verloren haben, ist wichtig, nehmen Sie das Laufwerk offline und hören Sie auf, darauf zu schreiben. Verwenden Sie jede Wiederherstellungssoftware, die Sie finden können, bis Sie Ihre Daten zurückerhalten haben oder sie sich nicht mehr lohnt. Wenn es wirklich wichtig ist, senden Sie es zu einem hohen Preis an Profis.

Wenn Sie schon einmal Glück mit einem Werkzeug hatten, versuchen Sie es erneut, da Sie damit vertraut sind. Am Ende des Tages sollten sie nicht auf die Festplatte schreiben, sodass Sie Software verwenden können, bis Sie eine gefunden haben, die funktioniert.

 4
Author: Pricey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-16 10:25:55

Wenn Sie eine Anwendung geöffnet haben, die gerade die Datei liest, wie VLC oder LibreOffice, dann diese tolle L&U.SO antwort hat mir aus diesem Durcheinander geholfen. Hier ist eine alternative Methode, um dasselbe zu tun.

Die allgemeine Idee ist, den Link in /proc/PID/fd/DESCRIPTOR_NUMBER zu finden und ihn an seinen ursprünglichen Speicherort zu kopieren. Verwenden Sie ps aux | grep APP_NAME, um die PID zu finden, und dann ls -la /proc/PID/fd/, um die richtige DESCRIPTOR_NUMBER zu finden.

 2
Author: dotancohen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-13 12:37:11

Die" richtige " Antwort ist anzunehmen, dass es keine Methode gibt, um zuverlässig wiederherzustellen und stattdessen von Backups oder einem geklonten System wiederherzustellen oder neu zu installieren.

TestDisk ist ein großartiges Tool, und es gibt andere Möglichkeiten, einige Daten vom physischen Laufwerk zu retten, abhängig vom Dateisystem und der Häufigkeit des Löschens, aber die Zeit und der Schmerz können einfach zu groß sein, also SICHERUNGEN halten (und auch testen, ob sie gültig und wiederherstellbar sind)!

 1
Author: Andy Lee Robinson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-24 15:23:23

Hier ist ein großes Dokument für Sie. Dort finden Sie viele praktische Tipps.

Übrigens gibt es zwei Gruppen von Menschen:

  1. diejenigen, die Backups machen
  2. diejenigen, die Backups machen

Herzlichen Glückwunsch, Sie haben sich gerade zu Gruppe 2 befördert. ;-)

 1
Author: Michał Šrajer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-10-24 05:42:58

Wenn es nicht von anderen Benutzern überschrieben wird, haben Sie Glück. Ich habe versehentlich meine CPP-Quelldatei gelöscht und ein Tool namens und verwendet, mit dem ich 60G CPP-Trümmer von der Festplatte wiederherstellen konnte. Schließlich habe ich meine Datei wiederhergestellt, indem ich diese Trümmer Stück für Stück zusammengebaut habe. Ich denke, es scannt ein bestimmtes Muster nach einem bestimmten Dateityp und durchläuft alle Inodes auf der Festplatte, um Dateien wiederherzustellen! Probieren Sie es einfach aus!

 1
Author: Izana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-07-11 15:40:13

Wenn Sie versehentlich die Datei von Linux gelöscht haben, können Sie diesen Befehl verwenden:

find /root -name "search text" -type f  -exec mv {} "/home" \;

Anstelle von search text können Sie den Dateinamen eingeben und das Verzeichnis angeben, in dem Sie anstelle von /home wiederherstellen möchten.

 0
Author: santosh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-07-17 13:02:27

Sie können dieses Skript ausprobieren. Funktioniert gut und soll anstelle von rm verwendet werden und ich benutze es jetzt ausgiebig.

Https://github.com/nateshmbhat/safe-rm

Eigenschaften :

  • soll anstelle von rm verwendet werden
  • behandelt alle Argumente, die rm annehmen kann
  • behandelt die Dateinamen Kollisionen mit den Dateien bereits im Papierkorb
  • behandelt einige Berechtigungsprobleme automatisch
  • wenn rm von einem anderen Skript oder indirekt aufgerufen wird, dann der Befehl system 'rm' wird automatisch verwendet
  • zeigt die entsprechenden Fehlermeldungen an, wie sie in rm
 0
Author: Natesh bhat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-05-15 01:46:17

Ich hatte letzte Woche das gleiche Problem und habe viele Programme ausprobiert, wie debugfs, photorec, ext3grep und extundelete. ext3grep war das beste Programm, um Dateien wiederherzustellen. Die Syntax ist sehr einfach:

ext3grep image.img --restore-all

Oder:

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’

Dieses Video zeigt, ist ein Mini-Tutorial, das Ihnen helfen kann.

 -2
Author: Juan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-10-19 12:27:52