块组中,紧跟在超级块后面的是组描述符表,其每一项称为组描述符,是一个叫ext2_group_desc的数据结构,共32字节。它是用来描述某个块组的整体信息的。
struct ext2_group_desc
{
__u32 bg_block_bitmap; /* 组中块位图所在的块号 */
__u32 bg_inode_bitmap; /* 组中索引节点位图所在块的块号
*/
__u32 bg_inode_table; /*组中索引节点表的首块号 */
__u16 bg_free_blocks_count; /* 组中空闲块数 */
__u16 bg_free_inodes_count; /* 组中空闲索引节点数 */
__u16 bg_used_dirs_count; /*组中分配给目录的节点数 */
__u16 bg_pad;
/*填充,对齐到字*/
__u32[3] bg_reserved;
/*用null填充12个字节*/
}
每个块组都有一个相应的组描述符来描述它,所有的组描述符形成一个组描述符表,组描述符表可能占多个数据块。组描述符就相当于每个块组的超级块,一旦某个组描述符遭到破坏,整个块组将无法使用,所以组描述符表也像超级块那样,在每个块组中进行备份,以防遭到破坏。组描述符表所占的块和普通的数据块一样,在使用时被调入块高速缓存。