Estou tentando encontrar inodes excluídos no sistema de arquivos ext2. E esta é a abordagem que estou adotando. No entanto, sinto que estou fazendo algo errado.
Estou procurando pela primeira vez 1024 bytes para o início do superbloco
Conheço que o tamanho do bloco é 1024 bytes; portanto, a tabela de descritores de grupo começa no deslocamento 2048.
A tabela de descritores de grupo possui um descritor de grupo para cada grupo de blocos, certo? Portanto, calculo o número de descritores de grupos ou grupos de blocos: total de inodes / inodes por grupo. Isso me fornece o valor 8, o que significa que tenho 8 descritores de grupo na minha tabela de descritores de grupos de blocos.
Eu li o campo first_inode_table para todos os 8 descritores de grupo. Os descritores do grupo têm 32 bytes de comprimento
Então é aqui que eu fico confuso. A tabela de inode para o primeiro descritor de grupo fornece 260. Isso significa que, para acessar a tabela de inode para o primeiro grupo de blocos, eu faço 260 * tamanho do bloco?
Quando chego lá, estou lendo o campo dtime - que indica o último horário excluído. Se for> 0, significa que foi excluído.
Portanto, outra confusão que tenho é que se diz que as 11 primeiras entradas da tabela de inodes são reservadas. Portanto, isso não deve ser um problema, desde que eu passe por todas as entradas de inode da tabela de inodes, certo?
Minha abordagem está correta? Por favor, aponte-me para a direção certa, se vir algo errado.
fonte