天天看點

硬碟主引導記錄

硬碟上的資料由五大部分組成,它們分别是:MBR區、DBR區,FAT區,DIR區和DATA區。MBR(Main Boot Record)區,即主引導記錄區,位于整個硬碟的0磁道0柱面1扇區。主引導記錄(Master Boot Record,簡稱MBR)是硬碟的“命根子”,它處在硬碟最最關鍵的位置,記錄着硬碟中各個分區的大小及位置資訊,是我們資料資訊的重要入口。如果它受到破壞,硬碟上的所有資料将會蕩然無存! 硬碟主引導記錄(MBR)及其結構硬碟的0柱面、0磁頭、1扇區稱為主引導扇區,FDISK程式寫到該扇區的内容稱為主引導記錄(MBR)。該記錄占用512個位元組,它用語硬碟啟動時将系統控制權交給使用者指定的,并在分區表中登記了的某個作業系統區。

MBR的讀取硬碟的引導記錄(MBR)是不屬于任何一個作業系統,也不能用作業系統提供的磁盤操作指令來讀取它。但我們可以用ROM-BIOS中提供的INT13H的2号功能來讀出該扇區的内容,也可用軟體工具Norton8.0中的DISKEDIT.EXE來讀取。)

MBR的組成一個扇區的硬碟主引導記錄MBR由如圖6-15所示的4個部分組成。 ·主引導程式(偏移位址0000H--0088H),它負責從活動分區中裝載,并運作系統引導程式。 ·出錯資訊資料區,偏移位址0089H--00E1H為出錯資訊,00E2H--01BDH全為0位元組。 ·分區表(DPT,Disk Partition Table)含4個分區項,偏移位址01BEH--01FDH,每個分區表項長16個位元組,共64位元組為分區項1、分區項2、分區項3、分區項4。 ·結束标志字,偏移位址01FE--01FF的2個位元組值為結束标志55AA,如果該标志錯誤系統就不能啟動。

MBR中的分區資訊結構占用512個位元組的MBR中,偏移位址01BEH--01FDH的64個位元組,為4個分區項内容(分區資訊表)。它是由磁盤媒體類型及使用者在使用FDISK定義分區說确定的。在實際應用中,FDISK對一個磁盤劃分的主分區可少于4個,但最多不超過4個。每個分區表的項目是16個位元組。

MBR的主要功能及工作流程啟動PC機時,系統首先對硬體裝置進行測試,測試成功後進入自舉程式INT 19H,然後讀系統磁盤0柱面、0磁頭、1扇區的主引導記錄(MBR)内容到記憶體指定單元0:7C00位址開始的區域,并執行MBR程式段。

硬碟的主引導記錄(MBR)是不屬于任何一個作業系統的,它先于所有的作業系統而被調入記憶體,并發揮作用,然後才将控制權交給主分區(活動分區)内的作業系統,并用主分區資訊表來管理硬碟。 MBR程式段的主要功能如下: ·檢查硬碟分區表是否完好。 ·在分區表中尋找可引導的“活動”分區。 ·将活動分區的第一邏輯扇區内容裝入記憶體。在DOS分區中,此扇區内容稱為DOS引導記錄(DBR)。

硬碟主引導記錄結構

硬碟的主引導記錄在硬碟的0磁頭0柱面1扇區。主引導記錄由三部分組成:(1)主引導程式;(2)四個分區表;(3)主引導記錄有效标志字。詳見表1。

表1:主引導記錄結構位置内容

0000H-00D9H 主引導記錄代碼區00DAH-01BDH 空閑區
01BEH-01CDH 分區1結構資訊01CEH-01DDH 分區2結構資訊
01DEH-01EDH 分區3結構資訊01EEH-01FDH 分區4結構資訊
01FEH-01FFH 55AAH主引導記錄有效标志

分區表自偏移1BEH處開始,分區表共64個位元組,表中可填入四個分區資訊,每十六個位元組為一個分區說明項,這16個位元組含義詳見表2。必須注意:扇區号的高二位占用柱面号所在位元組的最高二位,即柱面号為10位,扇區号6位。

表2:分區結構資訊偏移長度含義

偏移 長度 含義
00H 1 活動分區訓示符,該值為80H表示為可自舉分區(僅有一個),該值為00H表示其餘分區
01H 分區起始磁頭号
02H 低6位是分區開始的扇區,高2位是分區開始的柱面的頭兩位
03H 分區開始的起始柱面号的低8位
04H 系統标志,該值為01H表示采用12位FAT格式的DOS分區,該值04H表示采用16位FAT格式的DOS分區,該值為05H表示為擴充DOS分區,為06H表示為DOS系統
05H 分區終止頭号
06H 低6位為分區結束的扇區号,頭2位為結束柱面号的前2位
07H 分區結束柱面号的低8位。  
08H 4 本分區前的扇區數,低位位元組在前
0CH 本分區總的扇區數,低位位元組在前

下表是一個例子:

表3:一個分區表執行個體:

80 01 01 00 06 1F 3F 98 3F 00 00 00 A1 B4 04 00

00 00 01 99 05 1F BF 0E E0 B1 04 00 40 81 0B 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

此例中,每行十六個位元組,為一個分區說明,資料為十六進制。

第一個分區(第一行):活動分區訓示符為80H,表示該分區為可自舉分區。系統标志為06H表示是DOS系統,即C:盤。

第二個分區(第二行):系統标志為05H,說明該分區是擴充Dos分區。

第三、四個分區資料均為00H,沒有定義。

從擴充DOS分區說明項(即第二個分區)知下一個分區表位于:起始磁頭為0頭,起始柱面為99H=153D,起始扇區為1扇區。

表4:第二個分區表

00 01 01 99 06 1F 7F C9 3F 00 00 00 A1 61 09 00

00 00 01 CA 05 1F BF 0E E0 61 09 00 60 1F 02 00

該分區表的格式和含義同第一個分區表。

第一個分區(第一行):該分區訓示符為00H,說明為不可引導分區。系統标志位元組為06H說明為DOS分區,即邏輯D盤。

第二個分區(第二行):系統标志位元組為05H,說明是擴充DOS分區

第三,四個分區說明項資料均為00H沒有定義。

由第一個分區說明項知D盤開始于153簇0為1扇區。

由擴充分區說明項知,擴充分區表起始簇号為01CAH=458D,起始磁頭為0頭,1扇區。

表5:第三個分區表

00 01 41 CA 06 1F BF 0E 3F 00 00 00 21 1F 02 00

第一個分區(第一行)表明,本分區是DOS分區,不可引導。

自第二個分區說明項開始,全為00H說明後面不再有分區表。

綜上所述:

1、每一個分區表中擴充分區說明項實際上訓示下一個分區表的位置(簇,磁頭号,扇區号)。最後一個分區表沒有擴充分區說明項。

2、每一個分區表都會有一個實際分區說明項,也就是對邏輯盤的實際起始、終止位置進行說明。

3、除邏輯盤C主引導記錄及分區表共占用一個扇區,其它分區表則各占一個扇區,自該扇區01BEH處開始,以55AAH結束。