图2.31为一个FreeBSD的磁盘标签,这个FreeBSD类型DOS分区起始于磁盘的63号扇区,该磁盘标签位于该FreeBSD类型DOS分区的1号扇区,也就是磁盘的64号扇区。
图2.31 FreeBSD磁盘标签
(1)具体分析
1) 0x00~0x03:4个字节,BSD磁盘标签签名“57455682”,可以通过搜索扇区内偏移0字节处的此十六进制值寻找磁盘标签在磁盘上的位置。另外,我们还可以看到,扇区偏移0x84~0x87字节处也有一个同样的签名标志,也可以通过搜索扇区偏移122字节处的此值定位磁盘标签。
2) 0x08~0x17:16个字节,用来存放驱动器类型名,也就是该BSD类型DOS分区的片名,此处的名字是“ad0s1”,通过这个名字我们可以得知这是一个FreeBSD类型的DOS分区,它是磁盘上的第一个分区(片)。
3) 0x84~0x87:签名“57455682”,与0x00字节处的值相同。
4) 0x8A~0x8B:2个字节,该磁盘标签的分区表可容纳的分区表项个数,此处的值为8(0x0008),即分区表最多可以容纳8个分区表项,我们可以看到分区表的前6个表项已经被使用。由于2号表项通常用于描述整个BSD类型DOS分区,所以真正的BSD分区只有5个。
5) 0x8C~0x8F:4个字节,引导区域最大字节数,此处的值为8192(0x2000),即16个扇区。
6) 0x94~0x113:分区表区域,可以容纳8个分区表项,每个表项大小为16个字节,共128个字节。
现在,我们来分析一下第一个表项(0号表项),以该表项的起始位置为相对偏移0:
u 0x00~0x03:4个字节,第一个分区大小扇区数,此处的值为1048576(0x100000)。
u 0x04~0x07:4个字节,第一个分区起始扇区号,此处的值为63(0x3F)。
u 注意,这个位置是相对于整个磁盘的0号扇区而言的,而并不是相对于FreeBSD类型DOS分区的起始扇区而言的。
u 0x08~0x0B:4个字节,片段大小字节数,此处的值为2048(0x0800),即4 个扇区。
u 0x0C~0x0C:1个字节,分区类型,此处的值为7(0x07),说明第一个分区是一个4.2BSD fast file system(FFS)类型分区。
u 0x0D~0x0D:1个字节,每块片段数,此处的值为8(0x08),即每个块由8个片段组成,因为片段大小为4个扇区,所以块大小为32个扇区。
(2)其它几个分区表项的分析结果
1) 由1号表项可以得知,第二个分区大小为997008个扇区,起始于1048639号扇区,这是一个交换分区(类型值为1)。
2) 2号表项用来描述整个FreeBSD类型DOS分区,大小为16776522个扇区,起始于63号扇区。
3) 由3号表项得知,第3个分区大小为2594816个扇区,起始于2045647号扇区,是一个4.2BSD fast file system(FFS)类型分区。
4) 由4号表项得知,第4个分区大小为1048576个扇区,起始于4640463号扇区,是一个4.2BSD fast file system(FFS)类型分区。
5) 由5号表项得知,第5个分区大小为11087546个扇区,起始于5689039号扇区,是一个4.2BSD fast file system(FFS)类型分区。
为了查看方便,我们将分区表信息进行列表,如表2.11所示。
表2.11 分区表信息
表项
分区大小扇区数
分区起始扇区号
分区类型(十六进制)
1,048,576
(0x00100000)
63
(0x0000003F)
07―4.2BSD fast file system(FFS)
1
997,008
(0x000F3690)
1,048,639
(0x0010003F)
01-交换分区
2
16,776,522
(0x00FFFD4A)
整个FreeBSD类型DOS分区
3
2,594,816
(0x00279800)
2,045,647
(0x001F36CF)
4
4,640,463
(0x0046CECF)
5
11,087,546
(0x00A92EBA)
5,689,039
(0x0056CECF)
6
0(0x00000000)
00
7
本文转自老骥伏枥51CTO博客,原文链接:http://blog.51cto.com/sjhfml/129138 ,如需转载请自行联系原作者