Undelete eine gerade gelöschte Datei auf ext4 mit extundelete

54

Gibt es eine einfache Möglichkeit, extundeletewie ich versuchen kann, eine /var/tmp/test.isogerade gelöschte Datei wiederherzustellen?

(Es ist nicht so wichtig, dass ich anfange, das Laufwerk schreibgeschützt oder dergleichen erneut zu laden. Ich kann diese Datei auch einfach erneut herunterladen.)

Ich suche einen einfachen Befehl, mit dem ich versuchen könnte, wenn ich es schaffe, ihn schnell wieder herzustellen.

Ich weiß, es ist möglich, das Laufwerk schreibgeschützt erneut bereitzustellen : (siehe Wie stelle ich einfach die einzige gelöschte Datei auf einer leeren Festplatte wieder her? )

Aber ist das auch irgendwie auf der noch gemounteten Platte möglich?

rubo77
quelle
Allgemeine Frage mit irgendwelchen Nutzen: unix.stackexchange.com/questions/2677/...
Ciro Santilli新疆改造中心法轮功六四事件
Diese andere Frage ist zu weit gefasst. Hier suche ich eine schnelle unsichere Lösung ohne viel Aufwand (und weniger Erfolgschance)
rubo77
Ich wollte nicht das Duplizieren implizieren, aber vielleicht möchten Sie es der Frage hinzufügen, warum diese Frage nicht genug war.
Ciro Santilli新疆改造中心法轮功六四事件

Antworten:

36

Wenn Sie sich die Bedienungsanleitung für Extundelete ansehen , scheint es, als wären Sie darauf beschränkt, das Löschen von Dateien auf einige Arten rückgängig zu machen.

Alles wiederherstellen

Mit extundelete können Dateien von einer nicht gemounteten Partition auf eine separate (gemountete) Partition wiederhergestellt werden. extundelete stellt alle gefundenen Dateien in einem Unterverzeichnis des aktuellen Verzeichnisses mit dem Namen "RECOVERED_FILES" wieder her. Um das Programm auszuführen, geben Sie "extundelete --help" ein, um verschiedene Optionen anzuzeigen, die Ihnen zur Verfügung stehen.

Die typische Verwendung zum Wiederherstellen aller gelöschten Dateien von einer Partition sieht folgendermaßen aus:

    $ extundelete /dev/sda4 --restore-all

Wiederherstellen einer einzelnen Datei

Zusätzlich zu dieser in der Befehlszeile hervorgehobenen Methode:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

Sie sollten also in der Lage sein, das zu tun, was Sie wollen:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

HINWEIS: In beiden Fällen müssen Sie das Gerät kennen, /dev/sda4um diesen Befehl ausführen zu können. Sie müssen das Dateisystem erneut als schreibgeschützt einbinden. Dies ist eine der Nutzungsbedingungen, extundeleteund daran führt kein Weg vorbei.

slm
quelle
2
ja, aber das alles funktioniert nur, wenn ich das Laufwerk schreibgeschützt wieder
einbinde
1
@ rubo77 - richtig, daran führt kein Weg vorbei.
slm
2
Dies funktionierte tatsächlich für ein ext4-Dateisystem, ohne dass es erneut schreibgeschützt war. Wenn Sie versuchen, dies ohne erneutes Einhängen des R / O zu tun, erhalten Sie eine Warnung, die Ihnen lediglich mitzuteilen scheint, dass Ihre Erfolgswahrscheinlichkeit geringer ist, wenn Sie dies tun. Wenn es wirklich überlebenswichtig ist, die Datei wiederherzustellen, sollten Sie das tun.
Ben Crowell
Wie @BenCrowell habe ich ohne erneute Bereitstellung verwendet, aber das Programm macht mich auf Datenbeschädigungen aufmerksam, wenn ich weiterhin Festplatte verwende ... wurde kürzlich gelöscht, also drücke ich einfach die Eingabetaste und erhalte meine Dateien zurück;)
erm3nda
16

Ein typisches Verwendungsszenario beim Wiederherstellen aller Dateien besteht darin, dass alle Dateien wiederhergestellt werden müssen, die /dev/sdX1in der letzten Stunde gelöscht wurden :

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

Wenn Sie mit den wiederhergestellten Dateien zufrieden sind:

mount -o remount,rw /dev/sdX1
sanmai
quelle
mount: Sie müssen den Dateisystemtyp angeben
Remount erwartet Mount-Punkt als Argument nicht das Gerät
Don't You Worry Child
@ Don'tYouWorryChild mount -onimmt entweder dir oder Gerät, perman mount
Sanmai
Anstatt 2 Stunden vom Datum abzuziehen, können Sie dies tun $(date -d "-2 hours" +%s)und die Ausgabe von lsblk -pkann nützlich sein, um herauszufinden, wo sich das LUKS-verschlüsselte LVM-zwischengespeicherte EXT4-Volume befindet. ;)
LiveWireBT