Versehentlich gelöschte Dateien wiederherstellen

79

Ich habe versehentlich eine Datei von meinem Laptop gelöscht. Ich benutze Fedora. Ist es möglich, die Datei wiederherzustellen?

crskhr
quelle
9
Was ist dein Dateisystem?
Echox

Antworten:

94

Ich würde davon abraten, sofort ein Dienstprogramm zu installieren. Grundsätzlich sind Ihre größten Feinde hier Festplattenschreibvorgänge. Sie möchten sie jetzt unbedingt vermeiden.

Ihre beste Wahl ist eine automatische Sicherung, die von Ihrem Editor erstellt wurde - sofern vorhanden. Wenn nicht, würde ich den folgenden Trick mit grep versuchen, wenn Sie sich an eine eindeutige Zeichenfolge in Ihrer .tex-Datei erinnern:

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

Ersetzen Sie /dev/sda1durch das Gerät, auf dem sich die Datei befand, und durch 'string'die eindeutige Zeichenfolge in Ihrer Datei. Dies kann einige Zeit dauern. Im Grunde genommen sucht es auf dem Gerät nach der Zeichenfolge und gibt dann 100 Zeilen vor und nach dieser Zeile zurück und fügt sie ein file.txt. Wenn Sie mehr Zeilen benötigen anpassen gerade die -Bund -AOptionen entsprechend. Möglicherweise erhalten Sie eine Menge zusätzlichen Müll zurück, aber Sie sollten in der Lage sein, Ihren Text zurückzubekommen.

Viel Glück.

Steven D
quelle
8
Jemand hat mir das ein paar Wochen nach dem Umstieg auf Linux gezeigt, als ich ein Textdokument getötet habe, das ich wirklich brauchte - es hat mich umgehauen
Michael Mrozek
18
Übrigens -B100 -A100kann durch Äquivalent -C100(C für "Kontext") ersetzt werden. Und ich würde definitiv nicht verwenden, -iwenn es möglich wäre, sondern -Fan seiner Stelle haben.
rozcietrzewiacz
Wahrscheinlich nicht überraschend - ich nehme an, dass die gleichen Plattenblöcke wiederverwendet wurden - hat diese Methode nicht für eine Datei funktioniert, die ich versehentlich überschrieben, nicht versehentlich gelöscht habe.
NTC2
Ja, auf den meisten Dateisystemen werden dieselben Blöcke wiederverwendet, wenn eine Datei nur überschrieben wird. Beachten Sie, dass einige Anwendungen dies in gewisser Weise umgehen, indem sie zuerst eine temporäre Datei schreiben (wodurch ein separater Schreibvorgang erfolgt) und diese Datei dann über der alten Datei umbenennen (wodurch die Daten aus Sicht des Benutzers ersetzt werden). Dies geschieht aus verschiedenen Gründen. Speichersysteme (einschließlich Dateisysteme), die dies ständig tun, werden beim Schreiben als Kopie bezeichnet .
einen Lebenslauf vom
brauchst du / dev / sda1 ?? Können Sie einfach zum Director gehen, in dem sich die Datei befand, und ohne / dev / sda1 ausführen?
Coolcool1994
22

Es ist möglich, es wird nur ein Ärger sein.

UPDATE: Bevor Sie diese Methode ausprobieren, schauen Sie sich bitte die Antwort von Steven an .

Sie benötigen das Testdisk- Paket, viel Speicherplatz und viel Zeit.

PhotoRec, ein Teil von TestDisk, kann Dateien von fast jeder Disc wiederherstellen. PhotoRec unterstützt das Suchen von .texDateien.


Installieren Sie zunächst testdisk, indem Sie ausführen

yum install testdisk

Hinweis: Sie benötigen viel freien Speicherplatz auf einem anderen Laufwerk, auf dem Sie wiederhergestellte Dateien speichern können.

Stellen Sie alle gelöschten Dateien auf Ihrer CD wieder her, indem Sie sie photorecauf dem freien Speicherplatz der CD ausführen.

sudo photorec

und befolgen Sie die Anweisungen ... (Denken Sie daran, die Dateien nicht auf derselben Disc zu speichern, von der Sie wiederherstellen)

Nach Abschluss des Vorgangs sollten sich alle wiederhergestellten Dateien in einem Verzeichnis befinden, in dem Sie Folgendes ausführen sollten:

find -name '*.tex' > filelist

Dadurch wird eine Liste der Dateien ausgegeben , die Sie möglicherweise verloren haben. Sie müssen alle überprüfen, da die Dateinamen verloren gehen.

Stefan
quelle
11
photorec ist eine gute Anwendung, ich würde mir nur Sorgen um die Schreibvorgänge auf der Festplatte machen, die während der Installation stattfinden werden. Gibt es überhaupt eine eigenständige ausführbare Datei, die von externen Medien ausgeführt werden kann?
Steven D
1
Ja, du hast sehr recht. Ich kenne keine eigenständige ausführbare Datei, aber könnte man versuchen, eine Live-CD zu verwenden?
Stefan
2
Um die mit Photorec wiederhergestellten Dateien zu reduzieren, wählen Sie diese Option im dritten Bildschirm aus. Sie können aus einer Liste auswählen, welche Dateitypen wiederhergestellt werden sollen oder nicht.
Steve Burdine
13

Viele Texteditoren speichern Sicherungsdateien. Wenn Sie wirklich Glück haben, könnte es so etwas wie yourfile.tex ~ geben, das eine frühere Version Ihrer Datei enthält.

fschmitt
quelle
4

In jedem Fall würde ich die Arbeit an dem verwendeten Gerät so schnell wie möglich einstellen , um Schreibvorgänge auf der Festplatte zu vermeiden, und ein dediziertes Wiederherstellungs-Betriebssystem wie SystemRescueCd starten , bei dem es sich um eine Live-CD handelt, mit der Sie Ihre Festplatte schreibgeschützt einbinden können um weiteren Datenverlust zu verhindern.

Diese Distributionen enthalten eine Menge von Wiederherstellungs-Tools, die von anderen erwähnt wurden, und Sie können die meisten fehlenden installieren.

Ich habe in der Regel immer eine CD mit einer aktuellen Version von SystemRescueCd in meinem externen USB-Lesegerät, nur für den Fall.

Martin C.
quelle
3

ANMERKUNG: Ich habe diese Antwort in Bezug auf eine andere Frage zu gelöschten Datenbankdateien (MySQL-Server) hinzugefügt, die geschlossen wurde und auf diese Frage zeigte. Ich glaube, es kann auch in einigen anderen ähnlichen Situationen nützlich sein (sofern ein Prozess die Dateideskriptoren noch offen hält).

Wenn Ihr Prozess noch nicht abgeschlossen ist, können Sie Ihre Dateien in finden /proc/<pid>fd/und sie einfach kopieren. SIGSTOPZuerst an die Prozessgruppe senden . Kopieren Sie die Dateien. Erstellen Sie eine neue Instanz auf der Seite und lassen Sie diese angehalten, oder kill -9legen Sie die Dateien an ihren Platz zurück. InnoDB wird beim Ausführen von selbst wiederhergestellt. Wenn jedoch MyISAM vorhanden war, müssen Sie dies manuell tun.

pawel7318
quelle
2

Ich hatte versehentlich meine SQLite-Datenbankdatei gelöscht.

Was ich tat, um die Datei herauszufinden, war,

Öffnete den Speicherort /proc/in einem Dateibrowser und suchte dort nach der gelöschten SQLite-Datenbankdatei.

Ich habe diese Datei in einem Suchergebnis gefunden. Kopierte diese Datei von dort an meinen alten Platz.

Thaha kp
quelle
0

Ich hatte vor zwei Jahren 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 ist ein Mini-Tutorial, das Ihnen helfen kann.

Juan
quelle
0

Wenn Sie keine Sicherung haben, kann es sein, dass ein Festplattenwiederherstellungstool eines Drittanbieters einige oder alle Daten wiederherstellt. Sie müssen den Computer jedoch jetzt nicht mehr verwenden. Die gelöschten Dateien können nun von Ihrem System überschrieben werden. Sobald sie überschrieben sind, ist die Wiederherstellung der Daten unerschwinglich. Ich hatte Erfolg mit der uflysoft-Datenwiederherstellung (es gibt andere Mac OS-Datenwiederherstellungsprogramme). Sie benötigen ein "Wiederherstellungslaufwerk" (nicht Ihr Hauptlaufwerk oder ein Laufwerk, von dem aus Sie Daten aufräumen), um die wiederhergestellten Daten zu speichern. Sie booten von der Datenwiederherstellungsdiskette (System)

Gallup Noel
quelle