Acho que no meu diretório raiz, existem alguns diretórios com o mesmo número de inode:
$ ls -aid */ .*/
2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/
Só sei que os nomes dos diretórios são mantidos no diretório pai e seus dados são mantidos no inode dos próprios diretórios.
Estou confuso aqui.
Isso é o que penso quando traço o nome do caminho /home/user1.
- Primeiro, entro no inode 2, que é o diretório raiz que contém as listas de diretórios.
- Em seguida, encontro o nome home emparelhado com o inode 2.
- Então eu volto ao disco para encontrar o inode 2?
- E eu recebo o nome user1 aqui?
Eles estão em dispositivos diferentes.
Se olharmos para a saída de
stat
, também podemos ver o dispositivo no qual o arquivo está:Portanto, esses dois estão em dispositivos/sistemas de arquivos separados. Os números de inode são únicos apenas dentro de um sistema de arquivos, portanto, não há nada incomum aqui. No ext2/3/4, o inode 2 também é sempre o diretório raiz , então sabemos que eles são as raízes de seus respectivos sistemas de arquivos.
A combinação do número do dispositivo + inode provavelmente será única em todo o sistema. (Existem sistemas de arquivos que não possuem inodes no sentido tradicional, mas acho que eles ainda precisam falsificar algum tipo de identificador exclusivo em seu lugar).
Os números do dispositivo parecem ser os mesmos mostrados nos nós do dispositivo, portanto,
/dev/sda1
mantém o sistema de arquivos onde/
está ativado:O número do inode de qualquer arquivo fornecido é exclusivo para o sistema de arquivos, mas não necessariamente exclusivo para todos os sistemas de arquivos montados em um determinado host. Quando você tiver vários sistemas de arquivos, verá números de inode duplicados entre os sistemas de arquivos, isso é normal.