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 分区的片名,此处的名字是“ ad0s 1 ” ,通过这个名字我们可以得知这是一个FreeBSD 类型的 DOS 分区,它是磁盘上的第一个分区(片)。
3)    0x84 ~ 0x87 :签名“ 57455682 ” ,与 0x00 字节处的值相同。
4)    0x 8A ~ 0x8B : 2 个字节,该磁盘标签的分区表可容纳的分区表项个数,此处的值为 8 ( 0x0008 ),即分区表最多可以容纳 8 个分区表项,我们可以看到分区表的前 6 个表项已经被使用。由于 2 号表项通常用于描述整个 BSD 类型 DOS 分区,所以真正的 BSD 分区只有 5 个。
5)    0x 8C ~ 0x 8F : 4 个字节,引导区域最大字节数,此处的值为 8192 ( 0x2000 ),即 16 个扇区。
6)    0x94 ~ 0x113 :分区表区域,可以容纳 8 个分区表项,每个表项大小为 16 个字节,共 128 个字节。
现在,我们来分析一下第一个表项( 0 号表项),以该表项的起始位置为相对偏移 0 :
u         0x00~0x03:4个字节,第一个分区大小扇区数,此处的值为1048576(0x100000)。
u         0x04~0x07:4个字节,第一个分区起始扇区号,此处的值为63(0x 3F )。
u         注意,这个位置是相对于整个磁盘的0号扇区而言的,而并不是相对于FreeBSD类型DOS分区的起始扇区而言的。
u         0x08~0x0B:4个字节,片段大小字节数,此处的值为2048(0x0800),即4 个扇区。
u         0x 0C ~0x 0C :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  分区表信息
表项
分区大小扇区数
分区起始扇区号
分区类型(十六进制)
0
1,048,576
(0x00100000)
63
(0x 0000003F )
07 ― 4.2BSD fast file system ( FFS )
1
997,008
(0x 000F 3690)
1,048,639
(0x 0010003F )
01 -交换分区
2
16,776,522
(0x00FFFD 4A )
63
(0x 0000003F )
整个FreeBSD类型DOS分区
3
2,594,816
(0x00279800)
2,045,647
(0x 001F 36CF)
07 ― 4.2BSD fast file system ( FFS )
4
1,048,576
(0x00100000)
4,640,463
(0x0046CECF)
07 ― 4.2BSD fast file system ( FFS )
5
11,087,546
(0x 00A 92EBA)
5,689,039
(0x0056CECF)
07 ― 4.2BSD fast file system ( FFS )
6
0 (0x00000000)
0 (0x00000000)
00
7
0 (0x00000000)
0 (0x00000000)
00




















本文转自老骥伏枥51CTO博客,原文链接:http://blog.51cto.com/sjhfml/129138  ,如需转载请自行联系原作者
 
相关文章
|
Unix
FreeBSD 11.4 系统磁盘管理
freeBSD系统没有fdisk等命令,是使用 gpart 命令管理磁盘信息
996 0
FreeBSD 11.4 系统磁盘管理
|
Unix Linux
Linux/FreeBSD 安装
在Linux/FreeBSD上安装Julia 1.7.2的步骤:从[官方](https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.2-linux-x86_64.tar.gz)或[Tsinghua镜像](https://mirrors.tuna.tsinghua.edu.cn/julia-releases/bin/linux/x86/1.7/julia-1.7.2-linux-i686.tar.gz)下载二进制包,然后使用`tar`解压。
|
Unix 网络安全 C语言
|
Shell Unix 域名解析
|
数据安全/隐私保护 网络协议 Unix
|
关系型数据库 测试技术 PHP