目录 /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 不会完全跟踪坏扇区。