Я обнаружил, что в моем корневом каталоге есть несколько каталогов с одинаковым номером инода:
$ ls -aid */ .*/
2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/
Я только знаю, что имена каталогов хранятся в родительском каталоге, а их данные хранятся в иноде самих каталогов.
Я запутался здесь.
Это то, что я думаю, когда я прослеживаю путь / home / user1.
- Сначала я попадаю в индекс 2, который является корневым каталогом, который содержит списки каталогов.
- Затем я нахожу название дома в паре с индексом 2.
- Так я вернусь на диск, чтобы найти инод 2?
- И я получаю имя user1 здесь?
linux
filesystems
inode
youxiao
источник
источник
Ответы:
Они на разных устройствах.
Если мы посмотрим на вывод
stat
, мы также можем увидеть устройство, на котором находится файл:Таким образом, эти два находятся на отдельных устройствах / файловых системах. Номера инодов уникальны только внутри файловой системы, поэтому здесь нет ничего необычного. В ext2 / 3/4 inode 2 также всегда является корневым каталогом , поэтому мы знаем, что они являются корнями соответствующих файловых систем.
Комбинация номер устройства + индекс может быть уникальной для всей системы. (Существуют файловые системы, которые не имеют inode в традиционном смысле, но я думаю, что они все равно должны подделывать какой-то уникальный идентификатор на своем месте.)
Номера устройств там, похоже, совпадают с номерами, показанными на узлах устройства, поэтому
/dev/sda1
содержит файловую систему, где/
она включена:источник
Номер inode любого данного файла уникален для файловой системы, но не обязательно уникален для всех файловых систем, смонтированных на данном хосте. Если у вас несколько файловых систем, вы увидите дубликаты номеров инодов между файловыми системами, это нормально.
источник