Gibt es einen Befehl zum Wiederherstellen / Wiederherstellen gelöschter Dateien durch rm
?
$ rm -rf /path/to/myfile
Wie kann ich mich erholen myfile
? Wenn es ein solches Tool gibt, wie kann ich es verwenden?
linux
data-recovery
deleted-files
Pylover
quelle
quelle
Antworten:
Der in den Kommentaren angegebene Link ist wahrscheinlich Ihre beste Chance.
Linux debugfs Hack: Undelete Files
Diese Beschreibung, obwohl sie ein wenig einschüchternd aussieht, ist eigentlich ziemlich einfach zu folgen. Im Allgemeinen sind die Schritte wie folgt:
Verwenden Sie debugfs, um ein Dateisystemprotokoll anzuzeigen
Bei der Eingabeaufforderung debugfs
Beispielausgabe
Führen Sie den Befehl in debugfs aus
Bestimmen Sie den Inode der Dateien
Führen Sie mit den obigen Inode-Informationen die folgenden Befehle aus
Dateien wurden wiederhergestellt
recovered.file.001
.Andere Optionen
Wenn dies nicht für Sie zutrifft, habe ich
photorec
in der Vergangenheit Tools zum Wiederherstellen von Dateien verwendet, diese sind jedoch nur für Bilddateien vorgesehen. Ich habe ausführlich über diese Methode in meinem Blog in diesem Artikel mit dem Titel geschrieben:So stellen Sie beschädigte JPEG- und MOV-Dateien von der SDD-Karte einer Digitalkamera unter Fedora / CentOS / RHEL wieder her .
quelle
debugfs -w /dev/sdb2
,lsdel
0 deleted inodes found.
extundelete
ist für ext3 / 4 einfacher und würde wahrscheinlich zu den gleichen Ergebnissen führen./dev/mapper/wks01-root: No such file or directory while opening filesystem
Wo hast du das/dev/mapper/wks01-root
her?Mit ein bisschen Wahrscheinlichkeit kann ich manchmal gelöschte Dateien mit diesem Skript oder der nächsten Lösung in der Antwort wiederherstellen:
Es gibt noch einen weiteren nützlichen Trick: Wenn Sie ein Muster in Ihren gelöschten Dateien kennen, geben Sie alt+ sys+ ein, resuoum neu zu starten und wieder einzuschalten. Verwenden Sie dann eine Live-CD, um
grep
auf der Festplatte zu suchen:Bearbeiten Sie dann,
/tmp/recover
um nur die vorherigen Dateien zu behalten.Hey, wenn mit der Unix-Philosophie alles Dateien sind, ist es Zeit, dies auszunutzen, nein?
quelle
grep
basierte Lösung ist sehr clever und hat bei mir funktioniert, auch wenn das Dateisystem noch eingehängt ist. Vielen Dank!grep -av "[^[:print:]]"
grep
Lösung funktionierte für mich mit einer Modifikation: Ich tatsudo grep --line-buffered -ab "$PATTERN" /dev/sda1 | tee lines
und bekam Byte-Offsets (wie123123123:line\n456456456:another\n...
), dann tatn=1000; sudo dd of=before if=/dev/sda1 ibs=1 skip=$[123123123-$n] count=$n
undn=1000; sudo dd of=after if=/dev/sda1 ibs=1 skip=123123123 count=$n
mit unterschiedlichenn
Werten.Was für mich funktioniert hat, wurde von arch angegeben (gilt nur für Textdateien):
Wo
/dev/sdXN
befindet sich die Partition, auf der sich die verlorene Datei befindetmount
?Dauert eine Weile, hat aber funktioniert, als ich versehentlich einen Quellcode gelöscht habe, den ich noch nicht festgeschrieben hatte!
quelle
rm data/*.json python myFile.py
anstattrm data/*.json && python myFile.py
/dev/sdXN
ist für das Dateisystem, oder? Ich fand meine mitdf -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep: conflicting matchers specified
Obwohl diese Frage gelöst und einige Jahre alt ist, möchte ich das Dienstprogramm testdisk erwähnen .
Wie Sie Dateien mit testdisk wiederherstellen, erfahren Sie in diesem Tutorial . Führen
testdisk /dev/sdX
Sie zum Wiederherstellen von Dateien den Partitionstabellentyp aus. Danach wählen Sie[ Advanced ] Filesystem Utils
, dann wählen Sie Ihre Partition und wählen Sie[Undelete]
. Jetzt können Sie gelöschte Dateien durchsuchen, auswählen und an einen anderen Speicherort in Ihrem Dateisystem kopieren.quelle
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:
oder:
Dieses Video ist ein Mini-Tutorial, das Ihnen helfen kann.
quelle
Eine Alternative kann
del
anstelle vonrm
zum Löschen verwendet werden:http://fex.belwue.de/fstools/del.html
del
hat eine Wiederherstellungsfunktion und funktioniert mit jedem Dateisystem.Natürlich ist es keine Lösung, wenn Sie Ihre Dateien bereits mit "take no prisoners" gelöscht haben. Rm: -}
quelle
del
Befehl eingeführt haben.Laufwerk über externe Schnittstelle anschließen
umount /dev/{sd*}
extundelete --restore-all /dev/{sd*}
Weitere Informationen finden Sie unter diesem Link: Wiederherstellen einer gerade gelöschten Datei auf ext4 mit extundelete .
quelle
Wiederherstellungstools - Befehlszeile:
Wiederherstellungstools - GUI:
Infos:
Nach meiner persönlichen Erfahrung bekomme ich meine Daten mit ufs-explorer und photorec zurück
(1) = Nicht Open Source, nicht frei
(2) = Nicht Open Source, kostenlos
(3) = Open Source und kostenlos
(4) = Habe ntfs Unterstützung
(5) = Verfügt über eine Verzeichnisstrukturfunktion
quelle
Ich bin nicht einverstanden, dass es unmöglich ist, nur sehr, sehr schwierig, und ich habe es noch nie unter Linux gemacht:
Wenn Dateien gelöscht werden, werden sie tatsächlich nicht gelöscht. Was passiert ist, dass der Speicherplatz, den sie auf der Festplatte hatten, sozusagen zurückgesetzt wird, dass sich nichts beschwert, wenn der Computer versucht, Daten dort zu schreiben. Im Allgemeinen können die Daten auf Ihrer Festplatte, von denen Sie dachten, dass Sie sie gelöscht haben, fast ein Jahr später dort sein. Zumindest ist dies meine Erfahrung auf einem Windows-Computer. Ich bin mir nicht sicher, ob es unter Linux auf die gleiche Weise wie unter einer Befehlszeile funktioniert, aber Sie benötigen wahrscheinlich eine separate Live-CD, um die Partition so zu öffnen, und es gibt auch keine Garantie dafür, dass die Dateien noch vorhanden sind. Ich habe dies unter Windows XP mehrere Male mit Zero Assumption Recovery durchgeführt. Ich bin mir sicher, dass es ein ähnliches Tool gibt, wenn Sie genau hinsehen.
quelle
Wenn Sie eine Datei löschen, wird die Anzahl der Verknüpfungen in der Inode-Tabelle für diese Datei um eins verringert. Unter Unix werden die Datenblöcke für diese Datei als frei markiert, wenn die Anzahl der Verknüpfungen auf 0 abfällt. In der Regel gehen Verweise auf diese Datenblöcke verloren. Ich habe gerade aus dem Kommentar von @ fedorqui herausgefunden, dass es eine Möglichkeit gibt, auf diese Blöcke zuzugreifen, aber das gilt nur für das ext3-Dateisystem.
Eine Möglichkeit , die Dateien erhalten wird , eine Funktion zu schreiben , die es Ihnen erlaubt, zu bewegen die Dateien in einem ungenutzten Bereich (sagen wir
$HOME/.trash
) und erholen sie die benötigten Dateien von dort aus . Diese Funktion kann mit Alias versehen werdenrm
. Sie können einen Cron-Job einplanen, um die Dateien zu löschen, die sich für eine bestimmte Anzahl von Tagen im Papierkorb befunden haben.quelle
Dies könnte einigen von Ihnen die Mühe ersparen.
Wenn Sie diese Datei mit gedit bearbeitet haben, wird standardmäßig eine Kopie dieser Datei erstellt.
Nehmen wir zum Beispiel an, wir haben 'myfile.txt' versehentlich gelöscht.
In dem Ordner, der die Datei enthielt, die Sie gerade gelöscht haben, verwenden Sie diese Befehle und Sie werden die Kopie von dort wiederherstellen:
ls | grep 'myfile.txt~'
Mit ein bisschen Glück werden Sie sie finden und dann:
cp 'myfile.txt~' 'myfile.txt'
Ich habe gerade eine Datei mit dieser Methode wiederhergestellt. Viel Glück!
quelle