这两天看鸟哥的网络文章,特别是对ext2文件系统的描述,写的非常好,很快就了解大概的数据结构:
1。super block 存放整个file system information,占1024Byte,可以使用dumpe2fs -h /dev/sda1来查看信息。
2。group description,存储data group信息,主要是BB,IB,IT的指针。占32Byte
3。inode 结构存放文件/目录 的权限信息和指向block数据的指针数组,这数组长度为15,前12存放的指针直接指向block,第13和第14位为间接指针,第15位为三间接指针。inode的长度一般为128Byte
4。接在group desription后面的是GDT,是留给扩展文件系统用的。
5。super block 和group description存在于block group 0 中,备份存在于block group 的3,5,7及其他们的幕数中。
IBM上有篇文章中的有句话自己推敲了很久才发现作者写错了,“硬盘分区上的所有这些 group descriptors 要能塞在一个 block 里面。也就是说 groups_count * descriptor_size 必须小于等于 block_size。”其实当group的size很大的时候,group descriptor size是会大于block size的。计算公式是:
G = ((group descriptor size * group count) +(block size -1)) & -block size
如果block size = 4k时,那group count >128,G就会大于block size。
阅读(343) | 评论(0) | 转发(0) |