The EXT2 Inode
Figure 9.2: EXT2 Inode
In the EXT2 file system, the inode is the basic building block; every
file and directory in the file system is described by one and only one inode.
The EXT2 inodes for each Block Group are kept in the inode table together
with a bitmap that allows the system to keep track of allocated and unallocated
inodes. The figure above shows the format of an EXT2 inode,
amongst other information, it contains the following fields:
- This holds two pieces of information; what
this inode describes and the permissions that users have
For EXT2, an inode can describe one
of file, directory, symbolic link, block device, character device or
- Owner Information
- The user and group identifiers of the owners of this
file or directory. This allows the file system to correctly allow
the right sort of accesses,
- The size of the file in bytes,
- The time that the inode was created and the last time that
it was modified,
- Pointers to the blocks that contain the data that this
inode is describing. The first twelve are pointers to the
physical blocks containing the data described by this inode and the
last three pointers contain more and more levels of indirection.
For example, the double indirect blocks pointer points at a block of
pointers to blocks of pointers to data blocks.
This means that files less than or equal to twelve data blocks in length
are more quickly accessed than larger files.
You should note that EXT2 inodes can describe special device files. These are
not real files but handles that programs can use to access devices. All of the
device files in /dev are there to allow programs to access Linux's devices.
For example the mount program takes as an argument the device file that it wishes to