为什么 /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 结构是文件系统设计的一部分。假设 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。每个文件系统类型都可以用自己的方式保留一些特殊的 inode。

有问题的挂载点包含一些其他文件系统(伪文件系统):/proc类型为proc并且/sys属于类型sysfs。您可以通过mount不带参数的调用来看到这一点。

我猜/boot另一台机器没有开机ext4

相关内容