我格式化了一个带有和不带有extents
功能的新文件系统,只是为了了解此功能的工作原理。然而,当我查看 inode 字段时,i_flags
我发现该字段始终具有零值(对于“已使用”的 inode 2、7 和 11)。
关于范围的文档(来自 Kernel.org)说,这个标志应该为使用范围的索引节点设置 0x80000 位 - 但看起来它不准确。
我可以在同一个文件系统中拥有带扩展区和不带扩展区的 inode 吗?我应该依靠 来i_flags
确定方式,如何i_block
使用该字段?或者它只是超级块中的一个文件系统范围的标志,它规定了所有 inode 的扩展使用情况?
答案1
该extents
标志是为每个 inode 存储的,因此可以将没有范围的 ext3 文件系统升级到 ext4,然后extents
在超级块中启用该功能,并且将在extents
启用的情况下创建新的 inode。您绝对应该检查每个索引节点标志来决定i_blocks
每个文件的使用方式。