Почему у '/' есть индекс 2?

8

Во многих системах * nix, таких как OS X и Ubuntu, мы видим, что индекс корневого каталога равен 2. Тогда для чего используется индекс 1?

yzyzsun
источник
7
Это будет отличаться в зависимости от файловой системы; Вы заинтересованы в конкретном? Обычно индекс 1 используется для списка плохих блоков, но это не обязательно.
Майкл Гомер
2
Этот SO ответ может быть уместным: stackoverflow.com/a/2109363/2808351
dhag
«Почему» действительно «потому что разработчики ext4 решили сделать это». Индекс AFAIK для /разных файловых систем отличается, и он не указан нигде в стандарте POSIX. Конечно, это могло быть так в оригинальной AT & T UNIX или System V, так что это можно считать традицией, но это определенно не заложено.
Сергей Колодяжный

Ответы:

7

Inode 0 используется как значение NULL, чтобы указать, что нет никакого inode.

Inode 1 используется для отслеживания любых плохих блоков на диске; по сути это скрытый файл, содержащий плохие блоки. Те плохие блоки, которые записаны с помощью e2fsck -c.

Inode 2 используется корневым каталогом и указывает на запуск inode файловой системы.

Maythux
источник
Следует отметить, что кроме 0 значения взяты из традиции и на самом деле не являются фиксированными. Например, minixfs имеет / as inode 1 и badblocks, как и любой inode /.badblocks.
Джошуа