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?

yzyzsun
  • 233
  • 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. – Michael Homer Apr 26 '15 at 08:49
  • 2
    This SO answer may be relevant: http://stackoverflow.com/a/2109363/2808351 – dhag Apr 27 '15 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. – Sergiy Kolodyazhnyy Jun 03 '19 at 22:54

2 Answers2

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.

Jeff Schaller
  • 67,283
  • 35
  • 116
  • 255
Maythux
  • 1,888
  • 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 06 '18 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

Benjamin
  • 161