Filesystems
btrfs 相同的 inode 號
我有一個 btrfs 文件系統,頂層的所有文件夾都是 inode 256。
這對我不好,設備 id 是一樣的,所以我假設這些是“虛擬 inode 編號”,Btrfs 有自己的機制這樣做。
是否可以獲得每個目錄真正唯一的物理inode?
看看會發生什麼:
root@ReadyNAS-DEV:/home# find / -xdev -inum 256 / /home /data /apps root@ReadyNAS-DEV:/home#
這不好。
我假設這三個目錄
/home
,/data
和/apps
是掛載點。當你在 上掛載某些東西時
/home
,報告/home
的 inode 是掛載分區的根目錄的 inode,而不是原始/home
目錄的 inode。因此,這些 inode 與其他分區根目錄的 inode 相同也就不足為奇了。在我的 OpenBSD 機器上(不使用 btrfs):
$ find / -xdev -inum 2 / /home /usr /var /tmp
我在我的 Ubuntu VM 上看到了同樣的情況。這不是錯誤。
換一種說法:系統呼叫
stat
返回的結構stat()
對於不同的目錄有相同的值st_ino
,但不同的值st_dev
。請參閱POSIX中的stat()
和的描述。sys/stat.h
可能是您誤解
-xdev
了find
. 有了它,它不會下降到其他文件系統上的那些目錄,但如果它們符合其他條件,它仍然會列印目錄名稱。