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)类型分区 。
【FreeBSD磁盘标签实例分析】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 分区表信息
表项分区大小扇区数分区起始扇区号分区类型(十六进制)01,048,576
(0x00100000)63
(0x0000003F)07―4.2BSD fast file system(FFS)1 997,008
(0x000F3690)1,048,639
(0x0010003F)01-交换分区216,776,522
(0x00FFFD4A)63
(0x0000003F)整个FreeBSD类型DOS分区32,594,816
(0x00279800)2,045,647
(0x001F36CF)07―4.2BSD fast file system(FFS)41,048,576
(0x00100000)4,640,463

推荐阅读