Sto cercando di trovare inode cancellati nel filesystem ext2. E questo è l'approccio che sto adottando. Tuttavia sento che sto facendo qualcosa di sbagliato.
Innanzitutto cerco 1024 byte all'inizio del superblocco
Vengo a sapere che la dimensione del blocco è 1024 byte, quindi la tabella dei descrittori di gruppo inizia all'offset 2048.
La tabella dei descrittori di gruppo ha un descrittore di gruppo per ciascun gruppo di blocchi, giusto? Quindi calcolo il numero di descrittori di gruppi o gruppi di blocchi: inode / inode totali per gruppo. Questo mi dà il valore 8, il che significa che ho 8 descrittori di gruppo nella mia tabella dei descrittori di gruppi di blocchi.
Ho letto il campo first_inode_table per tutti gli 8 descrittori di gruppo. I descrittori di gruppo sono lunghi 32 byte
Quindi è qui che mi confondo. La tabella di inode per il primo descrittore di gruppo mi dà 260. Quindi questo significa che per accedere alla tabella di inode per il primo gruppo di blocchi faccio 260 * blocchi?
Una volta raggiunto lì, sto leggendo il campo dtime - che ci dice l'ultima volta cancellata. Se questo è> 0 significa che è stato eliminato.
Quindi un'altra confusione che ho è che si dice che le prime 11 voci della tabella degli inode siano riservate. Quindi questo non dovrebbe essere un problema finchè passo attraverso tutte le voci di inode della tabella di inode giusto?
Il mio approccio è corretto? Per favore, indicami la giusta direzione se vedi qualcosa di sbagliato.