在Linux系统的RIAD中,分析条带大小有两种基本方法,下面分别说明。

利用文件系统结构分析

在Linux的Ext3文件系统中,以块组为单位组织数据,重要的数据结构包括超级块、块组描述符表、i-节点表、目录项等。超级块和块组描述符表在很多块组内有备份,而i-节点表和目录项则在每个块组中都有。分析的时候我们可以利用0号块组中的这些重要数据结构的存储位置判断条带的大小。

举例来说,假设RAID起始扇区就是物理盘的0号扇区,那么就会有一块成员盘的第一个扇区是MBR,MBR的分区表中会定义每一个分区的起始扇区,对于第一个分区来说,大多起始于63号扇区;而分区内的第三个扇区Ext3文件系统的超级块,即物理盘的65号扇区,超级块内会描述每个块的大小,比如每个块大小为8扇区,则块组描述符表8号扇区,即物理盘的71号扇区;块组描述符表内的0号块组描述符会记录块位图的起始块号、i-节点位图的起始块号、i-节点表的起始块号。这些特殊结构都比较靠前,分别跳转到这些结构所对应的扇区加以验证,再加上条带大小都是2N扇区这一规律,很容易判断出条带大小。

利用校验条带分析

如果对文件系统结构非常熟悉,那么就很容易在RAID成员盘中找到校验条带。通过找一个校验条带的起始扇区和结束扇区,就能够轻易判断这个校验条带的大小,这个大小也就是该RAID的条带大小。