天天看点

FreeBSD磁盘标签实例分析

图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 ,如需转载请自行联系原作者