ルートディレクトリの下に、同じiノード番号を持ついくつかのディレクトリがあることがわかります。
$ ls -aid */ .*/
2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/
私は、ディレクトリの名前が親ディレクトリに保持され、それらのデータがディレクトリ自体のiノードに保持されることだけを知っています。
私はここで混乱しています。
これは、パス名/ home/user1をトレースするときに私が思うことです。
それらは異なるデバイス上にあります。
stat
の出力を見ると、ファイルが置かれているデバイスも確認できます。
# stat / | grep Inode
Device: 801h/2049d Inode: 2 Links: 24
# stat /opt | grep Inode
Device: 803h/2051d Inode: 2 Links: 5
したがって、これら2つは別々のデバイス/ファイルシステム上にあります。 iノード番号はファイルシステム内でのみ一意であるため、ここでは異常はありません。 ext2/3/4のiノード2 常にルートディレクトリでもあります なので、これらがそれぞれのファイルシステムのルートであることがわかります。
デバイス番号とiノードの組み合わせは、システム全体で一意である可能性があります。 (伝統的な意味でiノードを持たないファイルシステムもありますが、いずれにしても、その場所にある種の一意の識別子を偽造する必要があると思います。)
そこにあるデバイス番号は、デバイスノードに表示されているものと同じように見えるため、/dev/sda1
は、ファイルシステムを保持します/
はオンです:
# ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 Sep 21 10:45 /dev/sda1
特定のファイルのiノード番号はファイルシステムに固有ですが、特定のホストにマウントされているすべてのファイルシステムに固有である必要はありません。複数のファイルシステムがある場合、ファイルシステム間で重複するiノード番号が表示されますが、これは正常です。