Linux Datenrettung - wie man unter Linux gelöschte Dateien wiederherstellen kann

In der heutigen Zeit sind Daten das Gold der Neuzeit. Für viele gibt es wahrscheinlich nichts schlimmeres, wenn persönliche Daten wie die Fotosammlung, Familien-Videos oder wichtige Dokumente aus Versehen oder durch Fehlbedienung gelöscht werden. Der erfahrene Anwender wird an dieser Stelle den Einwand bringen, dass eine solide Backup-Strategie dem entgegenwirkt und die Gefahr eines Total-Verlustes seiner Daten gegen Null minimiert. Optimalerweise befindet sich jede Datei IMMER in mindestens doppelter Ausführung an mindestens zwei Orten, was wir in diesem Artikel beschreiben. Aber selbst die beste Backup-Strategie hilft nicht, wenn der Kopiervorgang der Daten (z.B. von der Digitalkamera auf den PC) fehlerhaft ist oder die Daten auf dem Gerät (Kamera, Smartphone etc.) bereits korrupt sind. Aus eigener Erfahrung hat die Kombination aus MacOS, NTFS formatierte externe Festplatte und VeraCrypt in der Vergangenheit mehrmals dazu geführt, dass das Kopieren der Urlaubsbilder von der Nikon-DSLR abgebrochen wurde, die Daten auf der SD-Karte verschwunden waren, aber nicht auf der externe Festplatte angekommen sind. Eine Wiederherstellung war zwingend erforderlich, um ein Desaster zu vermeiden.

Datenrettung unter Linux

Wir haben bereits in den Artikeln Datenrettung und -wiederherstellung unter Windows 7 mit Recuva und Kostenlose Datenrettung gelöschter, verlorener und beschädigter Dateien darüber berichtet, mit welchen Tools man unter Windows eine Datenwiederherstellung gelöschter Dateien durchführen kann. In diesem Artikel möchten wir einmal zeigen, wie Data Recovery unter Linux (in diesem Fall Debian, was aber mit einem beliebigem Linux umgesetzt werden kann.

Voraussetzung für das Wiederherstellen von Daten mittels Software

Wenn wir von der Wiederherstellung von Dateien in diesem Artikel sprechen, dann setzen wir eine funktionierende Hardware, d.h. das Speichermedium wie Festplatte, externe SD-Karte oder der interne Speicher von Smartphones, voraus. Hier einige Beispiele:

  • Der Klassiker: Anwender hat Daten gelöscht (und den "Papierkorb" geleert)
  • Beim Kopiervorgang sind Fehler aufgetreten
  • Das Speichermedium kann nicht mehr eingelesen werden, weil z.B. bei DVDs oder alten Speichersticks
  • Das Dateisystem (genauer gesagt die Partitionstabelle) ist beschädigt

In diesen Fällen ist die Wahrscheinlichkeit relativ hoch, dass die Dateien gerettet werden können. Liegt ein Hardware-Defekt vor, weil beispielsweise ein umgekipptes Glas Cola einen Kurzschluss in der Festplatte verursacht hat, müssen Recovery-Spezialisten zu Hilfe gerufen werden, die in einem Reinraum mit speziellen Equipment die Speicher-Chips direkt auslesen.

Moderne Betriebssysteme löschen nicht wirklich

Werden Daten aus Versehen gelöscht, spielt uns die Art und Weise, wie moderne Betriebssysteme Dateien löschen, in die Karten. Damit der Löschvorgang möglichst schnell vonstatten geht, werden die Bytes der Datei nicht gelöscht, sondern die Daten bleiben erst einmal auf dem Speichermedium gespeichert. Die Datei bzw. der Speicherplatz wird lediglich freigegeben. Beim nächsten Schreibvorgang kann der Speicherplatz verwendet werden und erst dann werden die Daten wirklich überschrieben. Wer also schnell handelt und keine neuen Daten speichert, hat gut Chancen, seine gelöschten Daten zu retten.

Löschen von Dateien

Dieses Vorgehen erklärt auch, dass bei Verschlüsselungs-Viren die Erfolgschance quasi bei 0 liegt, da in der Regel die komplette Festplatte verschlüsselt und somit jedes Bit auf der Festplatte überschrieben wird.

Aufpassen beim Verkauf alter Festplatten, Smartphones und sonstiger Speichermedien. Damit Dritte nicht ungewollt Zugriff auf unsere Daten bekommen, müssen die Daten sicher gelöscht werden. Das BSI klärt in diesem Artikel darüber auf.

Das Dateisystem (FAT, exFAT, NTFS, ext2, ext3/4 etc.) entscheidet über den Erfolg

Wie bereits angesprochen entscheidet das Betriebssystem über die Erfolgschancen. Leider sind die Chancen beim ext3/4 Dateisystem weniger erfolgversprechend, da bei diesen Dateisystemen der Löschvorgang doch einige wichtige Informationen gelöscht werden, um die Datenintegrität zu gewährleisten.

Geeignet Weniger geeignet
  • FAT
  • exFAT
  • NTFS
  • ext2
  • ext3
  • ext4

Der Versuchsaufbau

Wir wollen den Klassiker einmal in der Praxis durchspielen. Der Sommerurlaub ist vorbei und die Bilder + Videos auf der SD-Speicherkarte der Spiegelreflexkamera wurden "aus Versehen" gelöscht.

Datenrettung Setup - SD-Karte einer DSLR wiederherstellen
Datenrettung Versuchsaufbau - SD-Karte einer DSLR wiederherstellen

Die Speicherkarte wird noch erkannt und es existiert weiterhin die Verzeichnis-Struktur. Aber ein Klick in den Bilderordner DCIM zeigt dort, wo Hunderte Fotos und Videos erwartet werden, gähnende Leere an:

Inhalt der SD-Karte
Inhalt der SD-Karte enthält noch die Ordnerstruktur...

Gelöschter Inhalt der SD-Karte
...aber der Inhalt des DCIM-Ordners wurde gelöscht

Tools für Linux: testdisk (PhotoRec) und ddrescue

Wenn über Datenwiederherstellung unter Linux gesprochen wird, dann fallen immer wieder die beiden Tools testdisk und ddrescue. Wichtig zu wissen ist, dass beide Tools sich in der Funktionsweise und Aufgabengebiet grundsätzlich unterscheiden:

  • PhotoRec / testdisk
    Dieses Tool kann einzelne gelöschte Dateien wiederherstellen. Es kann alleine eingesetzt werden und in den meisten Fällen lassen sich damit die verloren gegangenen Dateien wiederherstellen.
  • ddrescue
    Direkt sei gesagt, dass ddrescue keine einzelnen Dateien wiederherstellen kann. ddrescue ist ein Spezialist, um ganze Partitionen zu retten und als Image (.iso, .img etc) zu sichern. Nach erfolgreicher Sicherung setzt man PhotoRec auf das gesicherte Image an, um die Wiederherstellung durchzuführen. Wenn man also vor einem hartnäckigen Fall steht, wo das Dateisystem oder Partition korrupt ist, kann ddrescue teilweise oder durch iterative Durchgänge mit Glück ganze Partitionen retten. Bei sensiblen Daten lohnt sich der Einsatz von ddrescue ebenfalls, da man das Image einmalig erstellt und das eigentliche Quell-Speichermedium danach unberührt bleibt, so dass keine weiteren Schäden durch die Wiederherstellung selbst entstehen.

Beide Tools sind in der Regel in jeder Distribution verfügbar. Hier am Beispiel von Debian:

ddrescue gehört unter Debian zum gddrescue Paket
ddrescue gehört unter Debian zum gddrescue Paket

PhotoRec gehört unter Debian zum testdisk Paket
PhotoRec gehört unter Debian zum testdisk Paket

Die Installation ist mit folgendem Befehl schnell gemacht:

# apt install testdisk gddrescue

photorec

Das Tool PhotoRec aus dem Paket testdisk lässt sich (trotz fehlender) GUI kinderleicht bedienen, da man lediglich das Programm auf der Konsole startet, um dann den Step-By-Step-Wizard zu folgen.

# photorec
Die Bedienung ist intuitiv und nach 5 Schritten, wo u.a. nach Zielordner, Quell-Speichermedium etc. gefragt wird, startet die Wiederherstellung:

Der Wizard von PhotoRec ist sehr intuitiv. Man startet mit der Auswahl des Speichermediums, in unserem Fall die SD-Speicherkarte.
PhotoRec Wizard - Auswahl Speichermedium
Falls das Speichermedium mehrere Partitionen hat, muss man diese auswählen.
PhotoRec Wizard - Auswahl Partition
Okay, das Dateisysteme hätte man automatisch auslesen können, aber die Auswahl ist übersichtlich. 50:50 Chance.
PhotoRec Wizard - Auswahl Dateisystem
Auswahl, ob die gesamte Partition oder nur der leere Bereich gescannt werden soll.
PhotoRec Wizard - Scan Type
Zu guter letzt gibt man noch den Zielort an, in welchen die wiederhergestellten Dateien gespeichert werden sollen.
PhotoRec Wizard - Zielort
...und nun startet der Scan-Vorgang.
PhotoRec Wizard - Ausführung

Das Ergebnis kann sich in unserem Testlauf sehen lassen. Insgesamt wurden 885 Foto- und Video-Dateien gefunden und wiederhergestellt, die sich stichprobenhaft auch öffnen ließen.

885 files saved in /home/chef/Bilder/photorec-recovery/recup_dir directory.
Recovery completed.
Einziges Manko: leider wurden die Dateinamen nicht übernommen. Ansonsten stimmen Inhalt und Metadaten wie Erstelldatum. Kleine Anmerkung: .NEF-Dateien sind die Rohbilder, die aus einer Nikon-DSLR stammen.

Wiederhergestellte Dateien von PhotoRec
Wiederhergestellte Dateien von PhotoRec
Dateien funktionieren, Zeitstempel passt, aber der Dateiname ist verloren gegangen

ddrescue

Kann PhotoRec das Speichermedium nicht mehr lesen, weil z.B. das Dateisystem geschädigt ist, kann man mit ddrescue versuchen, ein Image zu erstellen. ddrescue ist sehr umfangreich und ein Spezialist, um Dateisysteme teilweise oder ganz zu retten.

Die Idee ist, mit ddrescue so viel Daten auf Dateisystem-Ebene zu retten, um anschließend mit PhotoRec die Wiederherstellung auf Basis des erstellten Images durchzuführen (also nicht auf direkter Basis des Speichermediums). Dieses Vorgehen ist grundsätzlich zu empfehlen, da theoretisch bei der Wiederherstellung weiterer Schaden am Quell-Speichermedium entstehen kann.

ddrescue daten recovery
ddrescue erstellt ein Image, wie man es von dd gewohnt ist

Nach erfolgreich erstelltem Image startet man PhotoRec mit Verweis auf das Image:

photorec ../ddrescue-recovery.img
Anschließend startet der Wizard wie zuvor beschrieben.

ddrescue daten recovery mit PhotoRec
Nun startet man PhotoRec und gibt das Image an, damit dieses ausgelesen wird.

Fazit

Datenrettung unter Linux ist kein Hexenwerk und trotz fehlender grafischer Oberfläche (wobei es diese gibt, auf die wir aber nicht eingegangen sind) intuitiv durchführbar. Die Kombination ddrescue (Erstellen eines Backups) und PhotoRec (Wiederherstellung einzelner Dateien) hat sich in der Praxis bewährt.

Natürlich gibt es noch viele weitere Tools zur Datenrettung. Wir haben uns z.B. noch nicht die Möglichkeiten unter MacOS angeschaut. Wem PhotoRec / ddrescue nicht gefällt oder nicht mit Linux unterwegs ist, der kann hier einmal reinschauen. Dort werden weitere Tools vorgestellt.