Webagentur » Digitale Nachrichten » So stellen Sie gelöschte Dateien unter Linux mit testdisk wieder her

So stellen Sie gelöschte Dateien unter Linux mit testdisk wieder her

wie-benutzt man-pandoc-zum-konvertieren-von-dateien-on-line-4147938
Fatmawati Achmad Zaenuri/Shutterstock

Haben Sie schon einmal eine Datei gelöscht und es sofort bereut? Sie brauchen es zurück, und zwar schnell! Aber was ist, wenn die Datei so neu ist, dass sie noch nicht gesichert wurde? Glücklicherweise können Sie es beheben.

rm: Abkürzung für Reue?

Es ist zu einfach, das zu verwenden rm Befehl und Sie starren mit wachsendem Bedauern auf ein Terminalfenster. Ein kleiner Fehler mit den Platzhaltern, und Sie können viel mehr löschen, als Sie erwartet haben.

Das Standard-Linux-Dateisystem, ext4 verwendet Inodes, um Daten zu jeder Datei zu speichern, und eine Inode-Tabelle, um Inodes zu verfolgen. Der Inode enthält Metadaten zur Datei, wie Name, Besitzer, Berechtigungen usw.

Es enthält auch Einstiegspunkte zu Hardlinks, die auf die Datei verweisen. Jede Datei hat mindestens einen Hardlink. Jedes Mal, wenn Sie einen neuen Hardlink erstellen, erhöht sich die Anzahl der Hardlinks um eins. Jedes Mal, wenn Sie einen Hardlink löschen, wird die Anzahl der Hardlinks im Inode um eins reduziert.

Wenn Sie eine Datei löschen, deren Inode als unbenutzt (und zur Wiederverwendung bereit) markiert ist, wird der letzte Hardlink gelöscht. In diesem Fall wird die Datei nicht in den Verzeichnislisten angezeigt und kann weder verwendet noch darauf zugegriffen werden.

Die Daten, aus denen der Inhalt der Datei besteht, sind jedoch weiterhin auf der Festplatte vorhanden. Wenn Sie den Inode so patchen könnten, dass er die richtigen Informationen enthält, würde die Datei wiederhergestellt. Dies funktioniert natürlich nur, wenn die Daten, aus denen die Datei auf der Festplatte besteht, intakt bleiben und nicht überschrieben werden.

Sie können auch einen neuen Inode erstellen, die restlichen Daten aus dem alten Inode kopieren und dann die fehlenden Bits ersetzen.

Dies sind nicht-triviale Aktivitäten. Wenn Sie eine Datei versehentlich löschen, ist dies normalerweise der ungünstigste Zeitpunkt. Immer wenn Sie diese Datei benötigen, und Sie brauchen sie jetzt. Sie haben keine Zeit, sich mit Sektoreditoren und anderen Dienstprogrammen herumzuschlagen. Auch wenn dies eine Datei ist, die Sie gerade erstellt haben, wurde sie wahrscheinlich noch nicht gesichert, so dass Ihnen das auch nicht weiterhilft.

Das wo testdisk ist einfach zu bedienen und erfordert keine detaillierten Low-Level-Dateisystemkenntnisse. Mal sehen, wie man es benutzt!

Testdisk installieren

Installieren testdisk Verwenden Sie unter Ubuntu diesen Befehl:

sudo apt-get install testdisk

sudo apt-get install testdisk in einem Terminalfenster.

Auf Fedora müssen Sie Folgendes eingeben:

sudo dnf testdisk installieren

Auf Manjaro müssen Sie verwenden pacman:

sudo pacman -Sy testdisk

sudo pacman -Sy testdisk in einem Terminalfenster.

Testdisk verwenden

Obwohl es in einem Terminalfenster ausgeführt wird, testdisk hat eine rudimentäre Schnittstelle. Sie verwenden die Pfeiltasten zum Navigieren und die Eingabetaste, um eine Auswahl zu treffen. Um Ordnung zu halten, legen Sie am besten ein Verzeichnis für die wiederhergestellten Dateien an.

Wir geben Folgendes ein, um ein Verzeichnis namens "restored" für unsere wiederhergestellten Dateien zu erstellen:

mkdir wiederhergestellt

mkdir in einem Terminalfenster wiederhergestellt.

Wir geben folgendes ein, um in das neue Verzeichnis zu wechseln und zu starten testdisk Des:

CD restauriert /

cd wiederhergestellt / in einem Terminalfenster.

Wir müssen verwenden sudo mit testdisk, also geben wir Folgendes ein:

sudo testdisk

sudo testdisk in einem Terminalfenster.

Die erste Frage testdisk Anfrage ist für die Protokollierung. Es kann eine neue Protokolldatei erstellen, eine vorhandene Datei verwenden oder überhaupt nichts speichern. Es spielt keine Rolle, welche Option Sie wählen; es wird den Weg nicht beeinflussen testdisk funktioniert.

Protokollierungsoptionen in testdisk in einem Terminalfenster.

Sie können einfach die Eingabetaste drücken, um die markierte Option zu akzeptieren und eine neue Protokolldatei zu erstellen. Es wird in dem Verzeichnis erstellt, von dem aus Sie gestartet haben testdisk. Wenn Sie Ihre Auswahl treffen, testdisk fragt, welche Festplatte das Dateisystem enthält, an dem Sie arbeiten möchten.

Es listet die Festplatten auf, die es finden kann, sowie die squashfs "/dev/loop"-Dateien. Es gibt eine für jede App, die Sie von einem installiert haben snap. Sie sind schreibgeschützt, Sie sollten also nichts aus diesen Dateisystemen erfolgreich entfernt haben.

Ein Festplattenmenü in testdisk in einem Terminalfenster.

In diesem Testcomputer gibt es nur eine physische Festplatte, daher haben wir den Abwärtspfeil verwendet, um die Option "/dev/sda" hervorzuheben. Wir haben dann den rechten Pfeil verwendet, um "Weiter" auszuwählen und die Eingabetaste zu drücken.

"Weiter" in einem Terminalfenster ausgewählt.

testdisk muss auch die Art der Partition kennen. Es zeigt ein Optionsmenü sowie den automatisch erkannten Partitionstyp unten an.

Partitionstabellentypmenü in testdisk in einem Terminalfenster.

Sofern kein triftiger Grund vorliegt, markieren Sie den automatisch erkannten Partitionstyp und drücken Sie die Eingabetaste.

Markieren Sie im angezeigten Funktionsmenü "Erweitert" und drücken Sie dann die Eingabetaste.

"Erweitert" aus dem Funktionsmenü in einem Terminalfenster ausgewählt.

Das Partitionsauswahlmenü wird angezeigt.

Das Partitionsauswahlmenü in testdisk in einem Terminalfenster.

Die gesuchten Dateien befinden sich in der Linux-Dateisystempartition. Wir haben nur eine Linux-Partition auf unserer Festplatte, aber Sie könnten mehr haben.

Wählen Sie die Partition aus, auf der sich Ihre Dateien befanden, verwenden Sie die linke und rechte Pfeiltaste, um "Liste" auszuwählen, und drücken Sie dann die Eingabetaste. Das Dateiauswahlmenü wird angezeigt.

Das Dateiauswahlmenü in testdisk in einem Terminalfenster.

Verwenden Sie die Aufwärts- und Abwärtspfeile oder die PgUp- und PgDn-Tasten, um die Liste der Dateien und Verzeichnisse zu durchsuchen. Drücken Sie den Rechtspfeil oder die Eingabetaste, um ein Verzeichnis einzugeben, und den Linkspfeil oder Esc, um ein Verzeichnis zu verlassen.

Wir suchen Dateien von dave. Die Dateien für alle Benutzerkonten befinden sich im Verzeichnis "Home". Wir markieren also das Verzeichnis "Home" und können dann den Rechtspfeil oder die Eingabetaste drücken, um dieses Verzeichnis aufzurufen.

Alle Benutzerkonten werden dann für uns aufgelistet. Wir unterstreichen dave, und drücken Sie dann den Rechtspfeil oder die Eingabetaste, um zu diesem Verzeichnis zu navigieren.

Ein Home-Verzeichnis in testdisk in einem Terminalfenster.

Wir können jetzt die Dateien sehen, die zu den gehören dave Konto. Einträge in rot wurden gelöscht. Wir navigieren durch Dateien und Verzeichnisse, bis wir die Dateien finden, die wir wiederherstellen möchten.

In TestDisk gelöschte Dateien in einem Terminalfenster.

Um eine Datei wiederherzustellen, markieren Sie sie einfach und drücken dann c (Kleinbuchstaben).

Die Anzeige ändert sich und fordert Sie auf, ein Ziel für die wiederhergestellte Datei auszuwählen. Weil wir ein Verzeichnis namens "Restored" erstellt und gestartet haben testdisk von dort aus ist der erste Eintrag in der Liste (.) dieses Verzeichnis. Um diese gelöschte Datei in diesem Verzeichnis wiederherzustellen, drücken wir C (Großbuchstaben).

Das Dateizielmenü in TestDisk in einem Terminalfenster.

Danach kehren Sie zur Dateiauswahlansicht zurück. Wenn Sie weitere Dateien wiederherstellen möchten, wiederholen Sie einfach den Vorgang. Markieren Sie eine gelöschte Datei, drücken Sie c (Kleinbuchstaben), um sie zu kopieren, und drücken Sie dann C (Großbuchstaben), um sie wiederherzustellen.

Mit wiederhergestellten Dateien arbeiten

Nachdem Sie eine Datei wiederhergestellt haben, wird der Verzeichnisbaum an seinem ursprünglichen Speicherort neu erstellt, was nützlich ist, da es Sie daran erinnert, wo sich die Originaldatei auf der Festplatte befand. Dies bedeutet, dass Sie wissen, wo Sie es ablegen müssen, wenn Sie es zurückkopieren müssen.

Wenn Sie mehrere Dateien von verschiedenen Dateisystemspeicherorten wiederherstellen, die denselben Dateinamen haben, müssen sie sowieso separat gespeichert werden.

Sie können Folgendes eingeben, um den Inhalt des Verzeichnisses „Wiederhergestellt“ anzuzeigen:

ls

Wenn du gefragt hast testdisk Um eine Protokolldatei zu erstellen, befindet sie sich im Verzeichnis "Wiederhergestellt". Da sich unsere wiederhergestellten Dateien in "/home/dave" befanden, wurden sie in unser Verzeichnis "Restored" kopiert, das in gleichnamigen Verzeichnissen verschachtelt ist.

Wir können in das kopierte "dave"-Verzeichnis wechseln mit cd. Stellen Sie sicher, dass Sie keinen Schrägstrich (/) unterwegs: Sie möchten auf das lokale "home"-System umschalten, nicht auf das "/home"-System.

Wir geben folgendes ein:

CD-Startseite / Dave

Die wiederhergestellten Dateien befinden sich in diesem Verzeichnis, also geben wir Folgendes ein:

ls

ls in einem Terminalfenster.

Werfen wir einen weiteren Blick auf die Dateien, die mit dem wiederhergestellt wurden -l (lange Liste) Option:

ls -l

ls -l in einem Terminalfenster.

Weil wir benutzt haben sudo Lanzenreiter testdisk, wurden die wiederhergestellten Dateien mit "root" als Eigentümer wiederhergestellt. Wir können den Besitzer zurück zu "Dave" ändern mit chown:

sudo chown dave.dave *

sudo chown dave.dave * in einem Terminalfenster.

Wir geben Folgendes ein, um sicherzustellen, dass die richtige Eigenschaft wiederhergestellt wurde:

ls -l

ls -l in einem Terminalfenster.

Testdisk: Rettungscode

Dieses Gefühl der Erleichterung, nachdem Sie eine wichtige Datei wiederhergestellt haben, die sich noch vor einem Moment hoffnungslos verloren anfühlte, werden Sie immer zu schätzen wissen.

Darum testdisk ist so ein praktisches Dienstprogramm. Sobald Sie die Menüs durchgegangen sind und mit der Wiederherstellung von Dateien beginnen können, ist es leicht, in einen Rhythmus von Hervorhebung, c, c, Wiederholung zu verfallen.

★ ★ ★ ★ ★