J'essaie de trouver des inodes supprimés dans le système de fichiers ext2. Et c'est l'approche que je prends. Cependant, je sens que je fais quelque chose de mal.
Je cherche d'abord 1024 octets au début du superbloc
J'apprends que la taille de bloc est de 1024 octets, donc la table des descripteurs de groupe commence à l'offset 2048.
La table des descripteurs de groupe a un descripteur de groupe pour chaque groupe de blocs, n'est-ce pas? Je calcule donc le nombre de descripteurs de groupe ou de groupes de blocs: total des inodes / inodes par groupe. Cela me donne la valeur 8, ce qui signifie que j'ai 8 descripteurs de groupe dans ma table de descripteurs de groupe de blocs.
J'ai lu le champ first_inode_table pour tous les 8 descripteurs de groupe. Les descripteurs de groupe ont une longueur de 32 octets
C'est donc là que je me sens confus. La table d'inode pour le premier descripteur de groupe me donne 260. Donc, cela signifie-t-il que pour accéder à la table d'inode pour le premier groupe de blocs, je fais 260 * taille de bloc?
Une fois que j'y suis arrivé, je lis le champ dtime - qui nous indique la dernière heure supprimée. Si c'est> 0, cela signifie qu'il a été supprimé.
Donc, une autre confusion que j'ai, c'est qu'il est dit que les 11 premières entrées de la table d'inode sont réservées. Donc, cela ne devrait pas être un problème tant que je passe en revue toutes les entrées d'inode de la table d'inode, n'est-ce pas?
Mon approche est-elle correcte? Veuillez me diriger dans la bonne direction si vous voyez quelque chose de mal.
la source