Ext类文件系统的块组来源于UFS文件系统的柱面组,所以Ext3文件系统的块组描述符相当于UFS文件系统的柱面组概要项。每个块组都对应一个块组描述符,用来描述块组的相关信息,所有的块组描述符组成了一个列表,称为块组描述符表。
Ext3文件系统的块组描述符表相当于UFS文件系统的柱面组概要。
块组描述符结构分析
Ext3文件系统的每个块组描述符占用32字节,用以描述块组中的位图起始地址、i-节点表起始地址、空闲块数、空闲i-节点数等信息,每个块组都有这样的一个块组描述符,所有的块组描述符集中存放,组成块组描述符表。
块组描述符表的起始地址位于超级块所在块的下一个块,在整个文件系统中有很多块组描述符表的备份,备份的方式具体分为两种:
(1)文件系统不具备稀疏超级块特性
如果文件系统不具备稀疏超级块特性,那么在每个块组中都会有一个超级块的备份,同时也有块组描述符表的备份。
(2)文件系统具备稀疏超级块特性
如果文件系统具备稀疏超级块特性,那么只在块组号是3、5、7的幂的块组(如1、3、5、7、9、25、49等)内才对超级块和块组描述符表做备份,其他块组内则没有备份。
块组描述符表中的每个块组描述符大小为32字节,具体结构见表7-10。
表7-10 块组描述符的结构
块组描述符实例讲解
一个Ext3的分区,超级块中描述了块大小为4096字节,即每块8个扇区,所以超级块位于0号块,块组描述符表则位于1号块,也就是分区的8号扇区。
另外,在该超级块中还描述了文件系统的总块数为978 114,每块组包含的块数为32 768,用这两个值可以算出该文件系统一共有30个块组,也就是说块组描述符表中有30个块组描述符,而每个块组描述符占32字节,所以当前文件系统的块组描述符表的实际大小为960字节。
用WinHex跳转到8号扇区,就可以看到0号块组中的块组描述符表了,其部分内容如图7-33所示。
图7-33 块组描述符实例
在图7-33的块组描述符表中,每32字节是一个块组描述符,用来描述一个块组的信息,0号块组描述符项描述0号块组的信息,1号块组描述符描述1号块组的信息,以此类推。
其中0号块组描述符的具体数值及其含义如图7-34所示。
图7-34 0号块组描述符的参数模板