為什麼/proc和/sys有inode 1?

為什麼/proc和/sys有inode 1?

目錄 /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

相關內容