Search code examples
linuxlinux-kernel

Why is root directory always stored in inode two?


I'm learning about Linux filesystems, with these sources:

http://linuxgazette.net/issue21/ext2.html
http://homepage.smc.edu/morgan_david/cs40/analyze-ext2.htm 

But I have one question about the root directory: why is its inode number always two? Why not one, or another number?


Solution

  • The first inode number is 1. Inode number 0 is used as a NULL value, to indicate that there is no inode. Inode 1 is used to keep track of any bad blocks on the disk; it is essentially a hidden file containing the bad blocks, so that they will not be used by another file. The bad blocks can be recorded using e2fsck -c. The filesystem root directory is inode 2.

    The meaning of particular inode numbers differs by filesystem. For ext4 you can find a list of the reserved special inodes in the kernel documentation.