dumpe2fs 报告的“第一个 inode”是什么?

dumpe2fs 报告的“第一个 inode”是什么?

在某些 ext4 分区上使用 dumpe2fs,我得到初始数据,第一个 inode 是 #11。但是,如果我ls -i在此磁盘根分区上,我会发现它的索引节点号是#2(如预期)。那么... dumpe2fs 报告的“第一个分区”是什么?

答案1

#11 是第一个“非特殊”inode,可用于第一个定期创建的文件或目录(通常用于lost+found)。该 inode 的编号保存在文件系统超级块 ( s_first_ino) 中,因此从技术上讲,它不需要是 #11,但mke2fs始终以这种方式设置。

从 #0 到 #10 的大多数 inode 都有特殊用途(例如 #2 是根目录),但有些是保留的或在 ext 文件系统系列的非上游版本中使用。用法记录在内核.org

索引节点号 目的
0 不适用
1 缺陷块列表
2 根目录
3 用户配额
4 团体名额
5 为引导加载程序保留
6 恢复删除目录(保留)
7 “调整索引节点大小”
8 杂志
9 “排除”inode(保留)
10 副本 inode(保留)

答案2

Inode #1 -> #10 是“保留”。保留块 #2 是文件系统的“根”目录

所以 #11 通常是分配的第一个实际 inode...这可能是lost+found

所以:

% ls -ali / | awk '$1<=11'
 2 dr-xr-xr-x. 18 root root  4096 Jul 24  2019 ./
 2 dr-xr-xr-x. 18 root root  4096 Jul 24  2019 ../
 2 dr-xr-xr-x.  6 root root  4096 May  1 22:21 boot/
 3 drwxr-xr-x  17 root root  2980 Jun 30 20:49 dev/
11 drwx------.  2 root root 16384 Jul 24  2019 lost+found/
 1 dr-xr-xr-x  90 root root     0 Jun 30 20:49 proc/
 1 dr-xr-xr-x  13 root root     0 Jun 30 20:49 sys/

目录boot dev procsys都是挂载点,因此ls输出显示这些文件系统内的索引节点号。剩下.and作为..#2 和lost+found#11

在 ext2 的早期版本中,这个保留计数是固定的。在更高版本中,它可以在超级块中配置,这就是dump2fs报告的值。

相关内容