The layout of a filesystem

  1. Boot block

  2. Superblock - contains some general information about the filesystem such as:

    Filesystem size.

    The condition of the filesystem e.g. Would be marked as an error if the machine not shut down correctly and this would start the process of "fsck" on bootup.

    A list of some of the free inodes and blocks available

  3. Inode Table- which contains the number of inodes allocated to that filesystem. This is elastic in Linux and will expand if you require more inodes than those allocated. When you create a new file the kernel will allocate an inode for that file from the free list held in the superblock.

  4. Data Blocks - containing the file data, a block is fixed in size. The kernel can only access the data blocks via the information held in the inode of that file.