圖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 ,如需轉載請自行聯系原作者