Ext4

ext4 inode 結構中的 32 位塊地址

  • November 21, 2019

在 Linux 核心原始碼中,磁碟 inode 結構中的塊號是 32 位的。為什麼?當然 Linux 可以支持超過 2^32 個塊…

與以前的磁碟文件系統格式相比inode.i_block ,Ext4中對數組的解釋是不同的。在 Ext4 中,當 inode 具有此數組中的EXT4_EXTENT_FL集合時,i_flags將儲存擴展樹的根和最多四個擴展描述符(struct ext4_extentstruct ext4_extent_idx)。您會注意到,在擴展描述符中,塊地址有 48 位。對於較舊的磁碟格式,例如 Ext3,最大塊數確實適合 32 位。

請參閱Ext4 資料結構和算法,第4.2 節 inode.i_block 的內容

引用自:https://unix.stackexchange.com/questions/552687