Wie werden Dateien in ext2/ext3/ext4 angeordnet?

Wie werden Dateien in ext2/ext3/ext4 angeordnet?

Vor ein paar Tagen wurden alle meine Metadaten auf einer Flash-Karte im Ext4-Format überschrieben.

Ich werde jetzt darüber spekulieren, wie das passiert ist. Das ist reine Spekulation. Es passierte, kurz nachdem ich eine andere Karte verwendet hatte. Die Datenträgerbezeichnung auf der Karte ist jetzt dieselbe wie auf der anderen Karte. Ich vermute also, dass ich vergessen habe, die andere Karte zu synchronisieren/auszuhängen, als ich sie herausgezogen habe. Der Kartenleser benachrichtigt das System nicht richtig, wenn eine Karte herausgezogen wird, also hat das System beim nächsten Synchronisieren nicht gewusst, dass ich die Karten gewechselt habe, und es hat die Metadaten überschrieben.

Als erstes habe ich ein Image mit dd erstellt. Als zweites habe ich das Image schreibgeschützt gemacht. Als drittes habe ich eine beschreibbare Kopie des Images erstellt.

Ich habe Photorec entdeckt, mit dem ich einige, aber nicht alle Dinge wiederherstellen konnte. Ich denke, einer der Gründe dafür ist, dass es zerstörungsfrei ist.

Da es sich bei einigen der wiederhergestellten Dateien um Textdateien handelt, vermute ich, dass Photorec nur minimale oder gar keine Informationen zum Dateiformat verwendet.

Um zu versuchen, andere Dateien von der Karte wiederherzustellen, müsste ich wissen, wie die Dateien in ext2 angeordnet sind. Ich vermute, dass die grundlegende Vorgehensweise darin besteht, dass die Dateien in Blöcke aufgeteilt sind, die wiederum in Sektoren geschrieben werden, und dass Informationen darüber, wie der nächste Sektor zu finden ist, irgendwie in den aktuellen Sektor geschrieben werden.

Was ich zum Fortfahren brauche, sind Informationen darüber, wie der Zeiger auf den nächsten Sektor geschrieben wird.

PS: Ich lese den Photorec-Code, habe aber einige Probleme beim Lesen. Ob es an mir liegt oder ob der Code hässlich ist, weiß ich nicht.

PPS: Ich habe einige Informationen zum Aufbau von Ext-Dateisystemen gefunden, kann aber scheinbar keine grundlegenden Informationen zum Dateilayout finden.

Antwort1

PhotoRec durchsucht eine Festplatte (oder ein Festplatten-Image) nach zusammenhängenden Byteblöcken, die bekannten Dateiformaten ähneln (es kann beispielsweise JFIF/EXIF (JPEG) anhand der Segmentheader erkennen). Ziemlich einfach, aber begrenzt.

Das Detektiv-Kitist ein großartiges Tool zum Durchsuchen von Dateisystemen. Mit etwas Sorgfalt (und durch Skripten der Tools und Hex-Editieren des Disk-Images, wenn es nicht mehr funktioniert) kann es zur Wiederherstellung verwendet werden.

Für ein Tool, das ext besser versteht, versuchen Sieext4magic? (Ich hatte bisher noch keinen Anlass, dies zu verwenden.)

Documentation/filesystems/ext2.txtin den Kernelquellen bietet einen Überblick über die allgemeine Struktur. DieExt4 Wikiverfügt über gute Informationen, einschließlichExt4-Festplattenlayoutenthält mehr Details (gilt weitgehend auch für ext[23]).

Aber ja, die Daten einer Datei sind in Blöcke aufgeteilt. In ext2 wird jede Datei durch einen Inode dargestellt, der direkte Blöcke (Zeiger auf Datenblöcke), indirekte Blöcke (die Zeiger auf direkte Blöcke enthalten), doppelt indirekte Blöcke und dreifach indirekte Blöcke enthält. Es gibt keine Backlinks. Um also die Geschwister eines Datenblocks zu finden, müssen Sie zuerst alle Inodes und Blockzeiger scannen, um dessen Besitzer zu finden.

verwandte Informationen