Linux: Gelöschte Dateien mit Ext4-Journal wiederherstellen

Wenn Sie schnell und besonnen reagieren, stehen beim Dateisystem Ext4 die Chancen gut, Ihre Daten wiederzubekommen. Eine To-do-Liste haben wir auch erstellt.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 60 Kommentare lesen

(Bild: Erstellt durch Midjourney / Bearbeitung: heise online)

Lesezeit: 15 Min.
Inhaltsverzeichnis

Weg ist weg: Wenn man unter Linux eine Datei löscht, dann ist dies normalerweise ziemlich endgültig. Grafische Dateimanager wie Nautilus von Gnome verschieben die Dateien zunächst in den Papierkorb – doch ist der geleert, wird es kompliziert. Der Grund dafür liegt darin, wie das Standarddateisystem Ext4 Dateien löscht: Anstatt wie im FAT-Dateisystem die Datei lediglich als gelöscht zu markieren und die von der Datei belegten Datenblöcke freizugeben, überschreibt Ext4 die obere Ebene der Blockzuordnung im Verwaltungsblock der Datei, dem Inode, sodass sich die zur Datei gehörenden Datenblöcke nicht mehr ermitteln lassen. Allerdings wird diese Änderung im Journal des Dateisystems aufgezeichnet, sodass es einen Weg zurück gibt, solang das Journal fortbesteht.

To-do-Liste für gelöschte Dateien
  1. Papierkorb kontrollieren: Grafische Dateimanager löschen die Dateien meist nicht direkt.
  2. RAM-Dateisystem unter /mnt einbinden, um darauf das Journal ohne Beeinflussung des Root-Dateisystems zwischenzuspeichern: sudo mount -t tmpfs tmpfs /mnt
  3. Angeschlossene Laufwerke und ihre Mount-Points auflisten lassen, um den Gerätenamen des betroffenen Dateisystems herauszufinden: lsblk -fp
  4. Größe und Inode-Nummer des Ext4-Journals ermitteln (Standard: 1 GByte, Inode 8): sudo dumpe2fs /dev/sda3 | grep Journal Dabei müssen Sie den Gerätenamen (/dev/sda3) gemäß der Ausgabe von lsblk aus dem vorherigen Schritt anpassen. Bei verschlüsselten Ubuntu-Installationen lautet der Gerätename des Root-Dateisystems zum Beispiel /dev/mapper/vgubuntu-root.
  5. Ausstehende Dateioperationen abschließen lassen und das Journal im RAM-Dateisystem speichern: sync && debugfs -R "dump <8> /mnt/ext4.journal" /dev/sda3. Die Inode-Nummer (<8>) ist Standard, kann im Einzelfall aber abweichen – die korrekte Inode-Nummer finden Sie in der Ausgabe des vorherigen Schritts.
  6. Journalkopie /mnt/ext4.journal auf einen (externen) Datenträger, NAS oder per scp auf einen anderen Rechner kopieren.
  7. Rechner ausschalten und Festplatte ausbauen oder mit Livesystem starten, bis die Daten wiederhergestellt sind.

Es kommt also darauf an, schnell zu handeln, um das Journal zu retten und zu verhindern, dass die freigegebenen Datenblöcke der gelöschten Datei überschrieben werden. Sie sollten sich deshalb diesen Artikel gut aufheben oder ein Lesezeichen im Browser oder in der App setzen, damit Sie die folgende "To-do-Liste für gelöschte Dateien" im Notfall sofort zur Hand haben und Schritt für Schritt abhaken können. Anschließend haben Sie Zeit, sich in Ruhe damit auseinanderzusetzen, wie Sie Ihre Daten zurückbekommen.