为什么/proc和/sys有inode 1?

Ada*_*tav 4 linux filesystems inode

目录 /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
Run Code Online (Sandbox Code Playgroud)

为什么他们有 inode 1?

use*_*686 5

索引节点结构是文件系统设计的一部分。保留 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 并不完全跟踪坏扇区。