Ext3文件系统介绍

本文详细介绍了Ext3文件系统的格式分析,包括其由多个group组成,每个group包含的组件如sb、group descriptor table等。此外,还探讨了Ext3的数据组织格式,包括inode、data block的存储方式和三级映射机制。最后提到了Ext3的日志系统,用于确保数据的完整性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一.

Ext3格式分析







二.

Ext3数据组织格式


...
三.

Ext3日志系统分析


一. Ext3 格式分析

Ext3 的存储格式以及一个每个 group 的格式如下图所示:


由图可知, ext3 fs N group 组成,每个 group 又由 1 sb, 1 group descriptor table, 1 data block bitmap, 1 inode bitmap, 1 inode table 以及剩余的 data block 组成。

 

Group descriptor 用于描述该 group inode 以及 block 的使用状态及位置,结构体是 ext3_group_desc

Data block bitmap 表示某一块已用还是未用。

Inode bitmap 表示某一个 inode 已用还是未用。

Inode table 用来存储 inode 信息表。每个 inode 表项的结构构是 ext3_inode .

Data block 用来存储数据,不同的文件类型存储的数据格式不一样,后面有介绍。

 

Group 个数 = disk total blocks/ ( 8*block size);

每个 group 最多容纳 block size * 8 blocks, data block bitmap 都可以用一个 block 来描述。

 

假设 block size 1k ,对于 512M disk ,其 group 的个数为 64.

mkfs.ext3 格式化时,会设置 inode 的个数为 2048/ group, data block 的个数为 8K/group 。这样也就可以算出整个 ext3 最多容纳的文件或者目录个数。

Ext3 Inode no 是从 1 开始的,因此 1~2048 存储在第 0 group ,其是否有效通过该 group inode bitmap 0 ~ 2047 来表示,依此类推: inode 2049~4096 存储在第 1 group.

因为 Ext3 使用的数据块也是 1 开始的 (es->s_first_data_block=1) ,因此第 1 group block bitmap 0 到位 8191 实际表示的 block 范围是 1~8192

通过 dumpe2fs /dev/wsmda 可以查看到 ext3 的详细信息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值