/home, /usr, /var 등의 디렉토리가 모두 동일한 inode 번호(2)를 갖는 이유는 무엇입니까?

/home, /usr, /var 등의 디렉토리가 모두 동일한 inode 번호(2)를 갖는 이유는 무엇입니까?

내 루트 디렉터리 아래에 동일한 inode 번호를 가진 일부 디렉터리가 있음을 발견했습니다.

$ ls -aid */ .*/

2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/

내가 아는 것은 디렉토리 이름이 상위 디렉토리에 저장되고 해당 데이터가 디렉토리 자체의 inode에 저장된다는 것뿐입니다.

나는 여기서 매우 혼란스러워요.

이것이 /home/user1이라는 경로명을 추적할 때 제가 생각했던 것입니다.

  • 먼저, 디렉터리 목록이 포함된 루트 디렉터리인 inode 2로 이동합니다.
  • 그런 다음 home이라는 이름이 inode 2와 쌍을 이루는 것을 발견했습니다.
  • 그런 다음 디스크로 돌아가서 inode 2를 찾으시나요?
  • 여기에 user1이라는 이름이 있나요?

답변1

서로 다른 장치에 있습니다.

출력을 보면 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

답변2

특정 파일의 inode 번호는 파일 시스템에 고유하지만 특정 호스트에 설치된 모든 파일 시스템에 반드시 고유할 필요는 없습니다. 여러 파일 시스템이 있는 경우 파일 시스템 간에 중복된 inode 번호가 표시되며 이는 정상적인 현상입니다.

관련 정보