Filesystems

btrfs 相同的 inode 號

  • February 16, 2017

我有一個 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

可能是您誤解-xdevfind. 有了它,它不會下降到其他文件系統上的那些目錄,但如果它們符合其他條件,它仍然會列印目錄名稱。

引用自:https://unix.stackexchange.com/questions/345471