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?
Asked
Active
Viewed 6,770 times
13
-
7This 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
-
2This 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 Answers
12
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
- 66,199
- 35
- 114
- 250
Maythux
- 1,848
- 13
- 19
-
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
- 1
- 9