13

On many *nix systems like OS X and Ubuntu, We can see the inode of root directory is 2. Then what is the inode 1 used for?

3
  • 7
    This will differ by filesystem; are you interested in a particular one? Commonly inode 1 is used for the list of bad blocks, but it's not required. Apr 26, 2015 at 8:49
  • 2
    This SO answer may be relevant: stackoverflow.com/a/2109363/2808351
    – dhag
    Apr 27, 2015 at 18:29
  • The "why" is really "because ext4 developers decided to do so". AFAIK inode for / differs between filesystems, and it's not specified anywhere in POSIX standard. It may have been so in original AT&T UNIX or System V, of course, so can be considered a tradition,but it'd definitely not set in stone. Jun 3, 2019 at 22:54

2 Answers 2

13

Inode 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. Those bad blocks which are recorded using e2fsck -c.

Inode 2 is used by the root directory, and indicates starting of filesystem inodes.

1
  • We should note that except for 0 the values come from tradition and are not really fixed. For example minixfs has / as inode 1 and badblocks as whatever inode /.badblocks is.
    – Joshua
    Apr 6, 2018 at 16:04
4

In ext4 the Inode 1 is used for bad blocks. The link below the the kernel site describes which Inode is used for what purpose.

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Special_inodes

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .