Ich versuche, gelöschte Inodes im ext2-Dateisystem zu finden. Und das ist der Ansatz, den ich verfolge. Ich habe jedoch das Gefühl, dass ich etwas falsch mache.
Ich suche zuerst 1024 Bytes zum Start des Superblocks
Ich erfahre, dass die Blockgröße 1024 Bytes beträgt, daher beginnt die Gruppendeskriptortabelle mit dem Offset 2048.
Die Gruppendeskriptortabelle enthält einen Gruppendeskriptor für jede Blockgruppe, oder? Also berechne ich die Anzahl der Gruppendeskriptoren oder Blockgruppen: Gesamtzahl der Inodes / Inodes pro Gruppe. Dies gibt mir den Wert 8, was bedeutet, dass ich 8 Gruppendeskriptoren in meiner Blockgruppendeskriptortabelle habe.
Ich habe das Feld first_inode_table für alle 8 Gruppendeskriptoren gelesen. Die Gruppendeskriptoren sind 32 Byte lang
Hier bin ich also verwirrt. Die Inode-Tabelle für den ersten Gruppendeskriptor gibt mir 260. Bedeutet dies also, dass ich 260 * Blockgröße mache, um auf die Inode-Tabelle für die erste Blockgruppe zuzugreifen?
Sobald ich dort angekommen bin, lese ich das Feld dtime - das uns die letzte gelöschte Zeit anzeigt. Wenn das> 0 ist, bedeutet dies, dass es gelöscht wurde.
Eine weitere Verwirrung, die ich habe, ist, dass gesagt wird, dass die ersten 11 Einträge der Inode-Tabelle reserviert sind. Das sollte also kein Problem sein, solange ich alle Inode-Einträge der Inode-Tabelle durchgehe, oder?
Ist mein Ansatz korrekt? Bitte weisen Sie mich in die richtige Richtung, wenn Sie etwas falsch sehen.
quelle