내 루트 디렉토리에는 동일한 inode 번호를 가진 일부 디렉토리가 있습니다.
$ ls -aid */ .*/
2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/
나는 디렉토리의 이름이 부모 디렉토리에 보관되고 디렉토리의 데이터는 디렉토리 자체의 inode에 보관된다는 것을 알고 있습니다.
혼란 스러워요.
이것이 경로 이름 / home / user1을 추적 할 때 생각하는 것입니다.
- 먼저 디렉토리 목록을 포함하는 루트 디렉토리 인 inode 2로 들어갑니다.
- 그런 다음 집 이름이 inode 2와 쌍을 이루고 있습니다.
- 디스크로 돌아가서 inode 2를 찾으십니까?
- 그리고 여기에 user1이라는 이름이 있습니까?
답변
그들은 다른 장치에 있습니다.
의 출력을 보면 stat
파일이있는 장치도 볼 수 있습니다.
# stat / | grep Inode
Device: 801h/2049d Inode: 2 Links: 24
# stat /opt | grep Inode
Device: 803h/2051d Inode: 2 Links: 5
따라서이 두 장치는 별도의 장치 / 파일 시스템에 있습니다. Inode 번호는 파일 시스템 내에서만 고유하므로 여기서 특별한 것은 없습니다. ext2 / 3 / 4에서 inode 2 는 항상 루트 디렉토리 이므로 각 파일 시스템의 루트임을 알고 있습니다.
장치 번호와 inode의 조합은 전체 시스템에서 고유 할 수 있습니다. (전통적인 의미로 inode가없는 파일 시스템이 있지만 어쨌든 여전히 고유 식별자를 위조해야한다고 생각합니다.)
장치 번호는 장치 노드에 표시된 것과 동일하게 나타나므로 /dev/sda1
파일 시스템이있는 위치를 유지하십시오 /
.
# ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 Sep 21 10:45 /dev/sda1
답변
주어진 파일의 inode 번호는 파일 시스템에 고유하지만 주어진 호스트에 마운트 된 모든 파일 시스템에 반드시 고유하지는 않습니다. 파일 시스템이 여러 개인 경우 파일 시스템간에 중복 된 inode 번호가 표시되는데 이는 정상입니다.