¿Cómo leo y recorro inodes

Abrí el superbloque y el descriptor de grupo en un sistema de archivos EXT2, pero no sé cómo leer, por ejemplo, el directorio raíz o los archivos que contiene ...

Aquí hay algo de lo que tengo

fd=open("/dev/sdb2", O_RDONLY);
lseek(fd, SuperSize, SEEK_SET);
read(fd, &super_block, SuperSize);
lseek(fd, 4096, SEEK_SET);
read(fd, &groupDesc, DescriptSize);

pero la siguiente parte no parece funcionar ...

lseek(fd, super_block.s_log_block_size*groupDesc.bg_inode_table, SEEK_SET);
lseek(fd, InodeSize*(EXT2_ROOT_INO-1), SEEK_CUR);
read(fd, &root, InodeSize);

Respuestas a la pregunta(2)

Su respuesta a la pregunta