extremeaxe5 Asked: 2019-11-18 12:57:34 +0800 CST2019-11-18 12:57:34 +0800 CST 2019-11-18 12:57:34 +0800 CST ext4 inode 结构中的 32 位块地址 772 在 Linux 内核源代码中,磁盘 inode 结构中的块号是 32 位的。为什么?当然 Linux 可以支持超过 2^32 个块... ext4 1 个回答 Voted Best Answer AlexP 2019-11-18T13:40:54+08:002019-11-18T13:40:54+08:00 与以前的磁盘文件系统格式相比inode.i_block ,Ext4中对数组的解释是不同的。在 Ext4 中,当 inode 具有此数组中的EXT4_EXTENT_FL集合时,i_flags将存储扩展树的根和最多四个扩展描述符(struct ext4_extent或struct ext4_extent_idx)。您会注意到,在扩展描述符中,块地址有 48 位。对于较旧的磁盘格式,例如 Ext3,最大块数确实适合 32 位。 请参阅Ext4 数据结构和算法,第4.2 节 inode.i_block 的内容。
与以前的磁盘文件系统格式相比
inode.i_block
,Ext4中对数组的解释是不同的。在 Ext4 中,当 inode 具有此数组中的EXT4_EXTENT_FL
集合时,i_flags
将存储扩展树的根和最多四个扩展描述符(struct ext4_extent
或struct ext4_extent_idx
)。您会注意到,在扩展描述符中,块地址有 48 位。对于较旧的磁盘格式,例如 Ext3,最大块数确实适合 32 位。请参阅Ext4 数据结构和算法,第4.2 节 inode.i_block 的内容。