There are two types of block groups: the backup type, and the normal type:
The backup type: contains superblock and block group descriptor table PLUS everything in the normal type (below).
The normal type: Block bitmap, Inode Bitmap, Inode table, and Data blocks.
The backup block groups are groups 0 and 1, and all groups that are powers of 3, 5, and 7.
Each block group descriptor table contains several block group descriptors. There is one block group descriptor per block group. So, if there are 450 block groups, then there will be 450 block group descriptors, right next to each other in ONE block group descriptor TABLE.
The purpose of the the inode table is to create several free inodes that can be used later by the file system. You CAN NOT create new inodes after the ext2/3 file system has been created. It is a FIXED number set when creating the file system.
This is how a directory is created: A free inode is picked, and chosen to hold the directory information. Next, a free data block is picked to hold directory entries information. Even an empty directory contains two directory entries in the data block; a directory entry for its own directory, and one for its parent directory. So, for a new directory, an inode will be picked, and a data block will be picked to hold the first two directory entries. As the new files or directories are created, more directory entries will be added to its data block.