Chancen für Datenwiederherstellung: Die Dateisysteme von Linux

Um zu verstehen, ob die verlorenen Dateien wiederhergestellt werden können, ist es wichtig zu wissen, was mit ihnen bei der Löschung oder Formatierung passiert. Verschiedene Dateisysteme haben unterschiedliche Ansätze, um diese Operationen abzuschließen. Und genau deshalb hängt die Erfolgswahrscheinlichkeit so stark vom verwendeten Dateisystemtyp des betroffenen Speichermediums ab.

Linux unterstützt eine Vielzahl von Formaten. Da die meisten von ihnen jedoch darauf ausgelegt sind, bestimmte Probleme zu lösen, werden wir nur solche weit verbreiteten Typen wie Ext2, Ext3/Ext4 und XFS kennenlernen.

Ext2

Jede Datei und jedes Verzeichnis in Ex2 wird durch eine individuelle Indizierungsstruktur namens Inode repräsentiert. Jeder Inode kann über seine eindeutige Nummer adressiert werden. Neben solch kritischen Dateimerkmalen wie ihrer Größe enthalten Inodes Links zu den Blöcken, die ihre eigentlichen Daten speichern.

Die Namen von Dateien in Ex2 sind jedoch nicht in Inodes vorhanden. Sie sind ausschließlich in Verzeichnissen zu finden. Verzeichnisse verknüpfen diese Namen mit den entsprechenden Inodes. Sie selbst sind nur gewöhnliche Dateien, die Listen mit Namen und Inode-Nummern enthalten.

Der gesamte Speicherplatz ist in Abschnitte aufgeteilt, die als Blockgruppen (Block Groups) bezeichnet werden. Jede Blockgruppe speichert Inodes in ihrer eigenen Inode-Tabelle (Inode Table). Sie verwaltet auch die Block-Bitmap (Block Bitmap) und die Inode-Bitmap (Inode Bitmap), um zu wissen, welche ihrer Blöcke und Inodes derzeit verwendet werden.

Löschung

Prozedur: Ext2 kennzeichnet den Inode der Datei als frei und aktualisiert die Block- und Inode-Bitmaps. Es löscht auch den Namen und die Inode-Nummer der Datei aus dem Verzeichnis.

Wiederherstellung: Die Informationen über die Größe der Datei und den Speicherort ihres Inhalts sind weiterhin im Inode verfügbar. Dank dessen gibt es große Chancen, die Datei zurückzubringen. Andererseits wurde der Link zu seinem Namen im Verzeichniseintrag zerstört, sodass der korrekte Name höchstwahrscheinlich nicht wiederhergestellt werden kann.

Formatierung

Prozedur: Ext2 leert die aktuellen Blockgruppen und löscht die Inodes.

Wiederherstellung: Es werden keine Informationen im Dateisystem hinterlassen, die bei der Wiederherstellung verlorener Dateien hilfreich sein könnten. Wenn Blöcke mit ihrem Inhalt noch nicht wiederverwendet wurden, besteht die Möglichkeit, die Dateien zurückzubringen. Ein Datenrettungsprogramm kann die Dateisystemstrukturen ignorieren und den Speicher auf einer niedrigeren Ebene untersuchen. Es sucht nach Dateien basierend auf den spezifischen Daten, von denen bekannt ist, dass sie in Dateien gängiger Formate vorhanden sind. Diese Technik wird auch RAW-Datenrettung genannt. Leider erlaubt sie nicht, Dateien mit ihren ursprünglichen Namen und Verzeichnissen zu erhalten. Darüber hinaus werden die in nicht benachbarten Blöcken gespeicherten Dateien nicht rekonstruiert, und als Ergebnis werden fragmentierte Dateien höchstwahrscheinlich endgültig verloren gehen.

Ext3/Ext4

Ext3 ist im Grunde eine verbesserte Version von Ext2. Seine Hauptstärke ist die Verwendung von Journaling. Das Journal befindet sich in einem speziellen Bereich innerhalb des Dateisystems. Bevor Änderungen geschrieben werden, sammelt Ext3 alle zu ändernden Blöcke, erstellt ihre Kopie und speichert die aktualisierte Version im Journal. Nur dann kann es diese Änderungen anwenden.

Ext4 stützt sich ebenfalls auf das Journal. Darüber hinaus fügt es die Unterstützung für spezielle Strukturen hinzu, die zum Speichern des Inhalts von Dateien verwendet werden. Diese werden als Extents bezeichnet - ununterbrochene Bereiche von Blöcken, die nur durch den Startblock und die Anzahl der darauf folgenden Blöcke dargestellt werden.

Extents können direkt in der Inode-Struktur, die die Datei beschreibt, gespeichert werden. Wenn eine Datei jedoch mehr als vier Extents belegt, werden die restlichen in einer separaten Struktur organisiert, die als B+-Baum bezeichnet wird. Das Bemerkenswerteste an Bäumen ist, dass sie Informationen nicht sequentiell platzieren. Sie werden auf mehreren Ebenen angeordnet, die in einer bestimmten Hierarchie miteinander verbunden sind.

Löschung

Prozedur: Ext3/Ext4 erstellt einen Eintrag im Journal und löscht dann den mit der Datei verknüpften Inode. Die Information über den Dateinamen verbleibt im Verzeichnis.

Wiederherstellung: Gelöschte Dateien können mithilfe des Journals wiederhergestellt werden, sogar mit ihrem ursprünglichen Namen. Das Ergebnis kann jedoch unvollständig sein, wenn das Dateisystem nach dem Löschen lange Zeit verwendet wurde.

Formatierung

Prozedur: Alle vorhandenen Blockgruppen und Inodes werden gelöscht. Das Journal wird ebenfalls geleert, enthält aber möglicherweise noch Informationen zu einigen kürzlich erstellten Dateien.

Wiederherstellung: Die verlorenen Dateien können nur mittels RAW-Daterettung wiederhergestellt werden. Wenn die Blöcke, die ihren Inhalt enthalten, jedoch über den Speicher verteilt sind, verringern sich die Erfolgschancen erheblich.

XFS

XFS besteht aus gleich großen Teilen, die als Zuordnungsgruppen (Allocation Groups) bezeichnet werden. Jede Zuordnungsgruppe verhält sich so, als wäre sie ein unabhängiges Dateisystem.

Wie in Ext4 wird der Inhalt von Dateien als Extents gespeichert und die Informationen darüber, mit Ausnahme ihrer Namen, als Inodes. Die Dateinamen existieren nur in den entsprechenden Verzeichnissen. Abhängig von der Größe der Datei können die Speicherorte ihrer Extents direkt im Inode gefunden oder in einer speziellen B+Baumstruktur organisiert werden.

Freie Extents in jeder Zuordnungsgruppe werden unter Verwendung eines Paares B+Bäume nachverfolgt. Der erste Baum hilft dabei, den Startblock des zusammenhängenden Freiraumbereichs zu finden, und der zweite - die Anzahl der Blöcke in diesem Bereich.

Ein separater B+-Baum zeichnet die Inodes in Zuordnungsgruppen auf, während sie zugewiesen und freigegeben werden.

XFS verwendet auch das Journal. Es behält Änderungen an den Metadaten des Dateisystems bei, bis sie in den Speicher geschrieben werden.

Löschung

Prozedur: XFS schließt den mit der gelöschten Datei verknüpften Inode aus dem B+-Baum aus. Die meisten Informationen darüber werden überschrieben. Der Name der Datei wird aus dem Verzeichnis entfernt. Die Extents, die seinen Inhalt enthalten, bleiben jedoch intakt.

Wiederherstellung: Die Kopien der Metadaten werden im Journal gespeichert. Sie können verwendet werden, um die verlorene Datei zurückzubringen. Die Datenrettungschancen sind ziemlich hoch, selbst für seinen ursprünglichen Namen.

Formatierung

Prozedur: Die für die Speicherplatzzuteilung verantwortlichen B+Bäume werden gelöscht. Außerdem wird ein neues Root-Verzeichnis erstellt, wodurch das vorherige überschrieben wird.

Wiederherstellung: Die Dateien, die sich näher am Beginn des Speichers befinden, haben schlechte Chancen, wiederhergestellt zu werden. Der Rest der Daten wird wahrscheinlich erfolgreich wiedererlangt.

Lesen Sie weiter, um die Chancen der Datenrettung von anderen Dateisystemen zu erfahren: