btrfsファイルシステムがあり、最上位レベルのすべてのフォルダはinode 256です。
これは私にとっては良くありません。デバイスIDが同じであるため、これが「仮想inode番号」であり、Btrfsにはそれを実行する独自のメカニズムがあるとします。
ディレクトリごとに独自の物理inodeを取得することは可能ですか?
何が起こるかを確認してください:
root@ReadyNAS-DEV:/home# find / -xdev -inum 256
/
/home
/data
/apps
root@ReadyNAS-DEV:/home#
これは良くありません。
ベストアンサー1
3つのディレクトリ/home
、/data
および/apps
がマウントポイントであるとします。
に何かをマウントするときに/home
報告されたinodeは、元のディレクトリのinode/home
ではなく、マウントされたパーティションルートのinodeです。/home
したがって、これらのinodeが他のパーティションのルートにあるinodeと同じであることは驚くべきことではありません。
私のOpenBSDコンピュータ(btrfsを使用しない):
$ find / -xdev -inum 2
/
/home
/usr
/var
/tmp
Ubuntu仮想マシンでも同じ現象が発生します。これは間違いではありません。
言い換えれば、異なるディレクトリへのシステムコールstat
によって返される構造はstat()
同じ値を持ちますが、値は異なりst_ino
ますst_dev
。説明を参照stat()
そしてsys/stat.h
POSIXでは。
-xdev
このオプションを誤って理解している可能性がありますfind
。それで、ありません。削減他のファイルシステムのディレクトリに移動しますが、他の基準と一致する場合は、ディレクトリ名を印刷し続けます。