目錄 /proc 和 /sys 的 inode 值為 1,儘管它意味著「壞塊」。它們都正常工作,我還有另一台 Linux 機器,除了這兩個之外,/boot 也有 inode 1。
adam@AdamMobile:/$ ls -i
1179649 bin 2 dev 25034753 home 22675457 lib 12058625 media 1 proc 10092545 sbin 12 swapfile 8912897 usr 14 vmlinuz.old
12713985 boot 15 device-clean 13 initrd.img 9961473 lib64 25165825 mnt 13500417 root 7733249 snap 1 sys 2621441 var
20578305 cdrom 23330817 etc 17 initrd.img.old 11 lost+found 1441793 opt 2 run 23592961 srv 18743297 tmp 18 vmlinuz
為什麼他們有 inode 1?
答案1
索引節點結構是檔案系統設計的一部分。保留 inode 1-10 的假設特定於 UFS 及其衍生產品(包括 Linux ext2/ext3/ext4),並且不一定適用獨立設計的檔案系統。
您提到的所有三個位置都是不同檔案系統的掛載點(用於findmnt
查找)。
例如,/boot 通常是安裝 FAT32 檔案系統(EFI 系統分割區)的位置。 FAT 檔案系統本身沒有 inode 編號(核心必須顯示假 inode 編號);他們確實在“集群映射”中標記了壞扇區。
/proc 和 /sys 完全是虛擬的(核心產生的)檔案系統、procfs 和 sysfs,甚至沒有「壞塊」和「保留 inode」的概念,因為它們實際上不是磁碟上的檔案系統。
其他檔案系統的工作方式仍然不同。例如,NTFS使用inode 8(一個名為的真正的隱藏檔案
$BadClus
)來保留壞磁區。 Btrfs 並未完全追蹤壞扇區。
答案2
inode 值 1,即使它意味著“壞塊”
在ext4
“有缺陷的區塊列表”實際上。但它是為了ext4
.每種檔案系統類型都可以以自己的方式保留一些特殊的索引節點。
有問題的掛載點包含一些其他檔案系統(偽檔案系統):/proc
屬於類型proc
並且/sys
是類型sysfs
。您可以透過mount
不帶參數的呼叫來看到這一點。
我猜/boot
在其他機器上是沒有的ext4
。