Moderne Dateisysteme wie Ext4, XFS oder BTRFS machen es nicht einfacher, Gelöschtes wiederherzustellen. Im Gegenteil: Diese Journaling-Dateisysteme sind darauf ausgelegt, ihre Struktur jederzeit konsistent zu halten, etwa auch nach einem plötzlichen Stromausfall. Meta-Daten zu einer Datei, also die Informationen zu den vormals belegten Blöcken, gehen bei Dateisystemen mit einem Journal schneller verloren als bei einfachen Dateisystemen wie zum Beispiel FAT16, FAT32 oder dem alten Ext2. Erschwerend kommt die Controller-Logik von SSDs und NVME-Laufwerken mit Flash-Speicher hinzu, die auf eigene Faust Schreibaktionen über das eigentliche Medium verteilt. Auch dies macht die Zuordnung von Blöcken einer gelöschten Datei schwieriger und verlangt nach einer schnellen Reaktion.
1. Konservieren: Schreibvorgänge vermeiden
Nach dem Löschen einer Datei hat es Vorrang, weitere Schreibaktionen auf dem Datenträger so schnell wie möglich zu unterbinden. Das bedeutet im Fall einer Datenpartition, den betroffenen Datenträger sogleich auszuhängen. Auf Desktop-Systemen gelingt dies nach dem Schließen aller eventuell noch geöffneten Dateien über den jeweiligen Dateimanager sowie den nachfolgenden Befehl:
sudo umount /dev/[ID]
Der Platzhalter „[ID]“ steht für die Laufwerkskennung, die mit der Eingabe von lsblk vorher ermittelt werden kann. Falls es sich um die Systempartition handelt, auf der das System selbst läuft, so muss man dieses herunterfahren und mit einem Livesystem weiterarbeiten.
2. Flash-Speicher: Image anlegen
Bei SSDs, NVME-Laufwerken, USB-Sticks wie auch Speicherkarten ist eine zusätzliche Sicherheitsvorkehrung Pflicht: Die weiteren Wiederherstellungsaktionen sollten nicht direkt auf dem physikalischen Laufwerk ausgeführt werden. Es könnte sonst passieren, dass der Controller-Chip die freien Speicherbereiche unwiederbringlich mit einer internen Aufräumaktion löscht (Trim). Sicherer ist es, mit einem Image des Laufwerkes zu arbeiten. Zum Anlegen dieses Abbildes soll hier das weniger bekannte Tool GNU ddrescue in der Kommandozeile dienen – ein Verwandter von dd –, das den Inhalt einer Partition im Rohdatenformat in eine Datei schreibt. In Debian/ Ubuntu ist das Programm über das Paket „gddrescue“ installierbar, in Fedora, Cent- OS und Arch Linux heißt das Paket schlicht „ddrescue“ und in Open Suse Leap „gnu_ddrescue“. Das Laufwerk darf zum Auslesen nicht mehr eingehängt sein und das Ziellaufwerk muss genügend Platz für das Image der gesamten Partition bieten. Angenommen, es soll das Laufwerk „/dev/sdb1“ ausgelesen werden, so speichert
sudo ddrescue -d /dev/sdb1 sdb1.img
die Partition „/dev/sdb1“ im aktuellen Verzeichnis in der Datei „sdb1.img“ ab. Die ausgelesene Datei übergibt man dann den weiteren Wiederherstellungsprogrammen zur Analyse – als ob sie ein Laufwerk unter „/dev/“ wäre.
3. Ext4magic: Erste Hilfe bei Ext4

Geht es darum, von einer Ext4- oder einer Ext3-Partition eine bestimmte Datei wiederzubeleben, die noch nicht lange gelöscht ist, so bietet das Tool Ext4magic ein schnelles und zuverlässiges Werkzeug. Es arbeitet über die Analyse des Journals und lässt sich unter Debian/Ubuntu über das gleichnamige Paket „ext4magic“ installieren. Das alte Wiederherstellungstool Extundelete ist hingegen auf aktuellen Linux-Systemen nicht mehr lauffähig.
Um Ext4magic einzusetzen, ist es notwendig, den ungefähren Zeitpunkt zu kennen, wann die benötigte Datei gelöscht wurde. Dann blickt man anhand dieser Zeitangabe mit Ext4magic erst in das Journal, um Änderungsstempel der letzten Änderungen anzuzeigen:
sudo ext4magic sdb1.img -H -a $(date -d "-20minutes" +%s)
Dieser Befehl zeigt Ihnen ein Histogramm der Änderungen der letzten 20 Minuten für das Ext3/4-Image „sdb1.img“ an. Bei (ausgehängten) Festplatten nutzen Sie anstatt der Image-Datei einfach direkt die Laufwerkskennung wie „/dev/sdb1“. Ext4magic zeigt nun ein Histogramm namens „c_time“ mit den letzten allgemeinen Änderungen an, darunter ein weiteres namens „d_time“ mit Löschungen. In diesem Fall sind lediglich die Zeitstempel von Änderungen unter „d_time“ interessant. Lautet dort der Zeitstempel vor dem letzten Löschen beispielsweise „1597491799“, so geben wir Ext4magic mit dem Kommando
sudo ext4magic sdb1.img -a 1597491799 -m -d gerettet
den Auftrag, sämtliche Dateien hinter dem angegebenen Zeitstempel aus dem Image „sdb1.img“ oder aus einem nicht eingehängten Laufwerk in den neuen Unterordner „gerettet“ wiederherzustellen. Dateinamen gehen hierbei verloren, Endungen hingegen nicht. Abschließend bleibt noch, die gesicherten Dateien in den angelegten Ordnern manuell zu überprüfen, um das Gesuchte zu finden.
4. Magicrescue: Für alle Dateisysteme
Unabhängig vom Dateisystem arbeiten die Tools Photorec und Magicrescue , die gelöschte Dateien anhand ihrer Fingerabdrücke („Magic Bytes“) aus Fragmenten wiederherstellen können. Eine Anleitung zu Photorec finden Sie hier , deshalb geht es hier nur um Magicrescue. Es liegt unter allen Linux-Distributionen zur Installation in den Standardpaketquellen und lässt sich in Debian/Ubuntu mit
sudo apt install magicrescue
installieren. Magicrescue analysiert Strukturen auf dem Datenträger und arbeitet entsprechend langsam. Für große Festplatten oder Images riesiger SSDs ist es aus diesem Grund weniger gut geeignet. Auch verlangt Magicrescue zur Identifizierung der Fingerabdrücke ein sogenanntes „Recipe“. Ohne dieses „Rezept“ ist Magicrescue machtlos. Welche Recipes es für welche Dateitypen gibt, zeigt dieser Befehl:
ls /usr/share/magicrescue/recipes/
Es gibt ein „Recipe“ für MS-Office-Dateien namens „msoffice“, aber etwa keines für Libre-Office-Dokumente. Das Kommando
sudo magicrescue -r msoffice -d ./ gerettet sdb1.img
stellt Microsoft-Office-Dateien aus dem angegebenen Image oder einem Laufwerk mit der jeweiligen ID wieder her.
5. Scalpel: Dateien nach Typ finden

Sollte bislang alles versagt haben, so ist es Zeit, nochmal aufzurüsten: Das Werkzeug Scalpel basiert auf dem verwandten Open- Source-Tool Foremost, das von Forensikern der US Air Force für Beweisaufnahmen entwickelt wurde. Anders als Foremost arbeitet Scalpel, wie der Name es nahelegt, besonders mit gesuchten Dateitypen, die aus einem Datenträger oder einem Image davon herausgeschnitten werden. Das Tool ist in Linux-Distributionen über das Paket „scalpel“ installierbar. Wie Magicrescue basiert Scalpel auf einer Mustersuche. Doch bringt die freie Version nur eine Handvoll Muster mit, die in der Konfigurationsdatei „/etc/scalpel/scalpel.conf“ hinterlegt sind. Um nun einen bestimmten Dateityp aus den Rohdaten eines Dateisystems zu retten, muss das Kommentarzeichen „#“ am Zeilenanfang vor der angegebenen Dateiendung entfernt werden.
Tipp: Libre-Office-Dateien sind Zip-komprimiert und die Suche nach dem Dateityp „zip“ hat in unserem Test auch Libre-Office-Dokumente mit dem Kommando
sudo scalpel sdb1.img -o ./scalpel
wiederhergestellt. Die Sichtung aller Dateien im hier angegebenen Unterordner „scalpel“ verlangt mehr Zeit, denn Scalpel arbeitet sehr gründlich, produziert jedoch auch etliche falsche Ergebnisse.