首先分享一个比较优秀的ext2博客介绍,鸟哥的私房菜官网对ext2文件系统的介绍
http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem.php
其中的 认识 EXT2 文件系统 章节很详细的介绍了该文件系统的内容
现在让我们动手实验整个过程
dd if=/dev/zero of=img.1440 bs=1k count=1440
mkfs -t ext2 img.1440
mount -t ext2 -o loop=/dev/loop0 img.1440 /mnt/
dump整个文件用hxd 查看16进制文件,并且查找ext2的魔数
如下
注意这个硬盘的前1k的地址数据全为0x00,原因是由于一个分区的开头必须有1k的boot block,这1k是PC标准规定的,任何文件系统不能使用这块内容,启动块之后才是文件系统。
让我们来分析分析1k以后的第一个block group, block group 0的数据分布以及定义过程
2 第二部分,组描述符
3 第三部分 块位图
4 第四部分 inode块
5 第五部分 如何从bitmap找到第一个inode的完整过程
6 第六部分 每个 inode 大小均固定为 128 bytes,查看inode信息的时候注意一下 一个1k的block是否可以容纳8个inode
inode 记录 block 号码的区域定义为12个直接,一个间接, 一个双间接与一个三间接记录区