簡介併發
主引導記錄(MBR,Master Boot Record)是位於磁盤最前邊的一段引導(Loader)代碼。它負責磁盤操做系統(DOS)對磁盤進行讀寫時分區合法性的判別、分區引導信息的定位,它由磁盤操做系統(DOS)在對硬盤進行初始化時產生的。
一般,咱們將包含MBR引導代碼的扇區稱爲主引導扇區。因這一扇區中,引導代碼佔有絕大部分的空間,故而將習慣將該扇區稱爲MBR扇區(簡稱MBR)。因爲這一扇區承擔有不一樣於磁盤上其餘普通存儲空間的特殊管理職能,做爲管理整個磁盤空間的一個特殊空間,它不屬於磁盤上的任何分區,於是分區空間內的格式化命令FORMAT. COM不能清除主引導記錄的任何信息。 MBR結構圖[1] 主引導扇區由三個部分組成(共佔用512個字節):
1.主引導程序即主引導記錄(MBR)(佔446個字節)
可在FDISK程序中找到,它用於硬盤啓動時將系統控制轉給用戶指定的並在分區表中登記了的某個操做系統。
2.磁盤分區表項(DPT,Disk Partition Table)
由四個分區表項構成(每一個16個字節)。
負責說明磁盤上的分區狀況,其內容由磁盤介質及用戶在使用FDISK定義分區時決定。(具體內容略)
3.結束標誌(佔2個字節)
其值爲AA55,存儲時低位在前,高位在後,即看上去是55AA(十六進制)。
編輯本段
詳解
1.MBR的讀取
硬盤的引導記錄(MBR)是不屬於任何一個操做系統,也不能用操做系統提供的磁盤操做命令來讀取它。但咱們能夠用ROM-BIOS中提供的INT13H的2號功能來讀出該扇區的內容,也可用軟件工具Norton8.0中的DISKEDIT.EXE來讀取。
用INT13H的讀磁盤扇區功能的調用參數以下:
入口參數:AH=2 (指定功能號)
AL=要讀取的扇區數
DL=磁盤號(0、1-軟盤;80、81-硬盤)
DH=磁頭號
CL高2位+CH=柱面號
CL低6位=扇區號
CS:BX=存放讀取數據的內存緩衝地址
出口參數:CS:BX=讀取數據存放地址
錯誤信息:若是出錯CF=1 AH=錯誤代碼
用DEBUG讀取位於硬盤0柱面、0磁頭、1扇區的操做以下:
A>DEBUG
-A 100
XXXX:XXXX MOV AX,0201 (用功能號2讀1個扇區)
XXXX:XXXX MOV BX,1000 (把讀出的數據放入緩衝區的地址爲CS:1000)
XXXX:XXXX MOV CX,0001 (讀0柱面,1扇區)
XXXX:XXXX MOV DX,0080 (指定第一物理盤的0磁頭)
XXXX:XXXX INT 13
XXXX:XXXX INT 3
XXXX:XXXX (按回車鍵)
-G=100 (執行以上程序段)
-D 1000 11FF (顯示512字節的MBR內容)
2.MBR的組成
一個扇區的硬盤主引導記錄MBR由如圖6-15所示的4個部分組成。
·主引導程序(偏移地址0000H--0088H),它負責從活動分區中裝載,並運行系統引導程序。
·出錯信息數據區,偏移地址0089H--00E1H爲出錯信息,00E2H--01BDH全爲0字節。
·分區表(DPT,Disk Partition Table)含4個分區項,偏移地址01BEH--01FDH,每一個分區表項長16個字節,共64字節爲分區項一、分區項二、分區項三、分區項4。
·結束標誌字,偏移地址01FE--01FF的2個字節值爲結束標誌55AA,若是該標誌錯誤系統就不能啓動。
0000-0088
Master Boot Record
主引導程序
主引導
程序
0089-01BD
出錯信息數據區
數據區
01BE-01CD
分區項1(16字節)
分區表
01CE-01DD
分區項2(16字節)
01DE-01ED
分區項3(16字節)
01EE-01FD
分區項4(16字節)
01FE
55
結束標誌
01FF
AA
圖6-15 MBR的組成結構圖
3.MBR中的分區信息結構
佔用512個字節的MBR中,偏移地址01BEH--01FDH的64個字節,爲4個分區項內容(分區信息表)。它是由磁盤介質類型及用戶在使用 FDISK定義分區說肯定的。在實際應用中,FDISK對一個磁盤劃分的主分區可少於4個,但最多不超過4個。每一個分區表的項目是16個字節,其內容含義如表6-19所示。
表6-19 分區項表(16字節)內容及含義
存貯字節位
內容及含義
第1字節
引導標誌。若值爲80H表示活動分區,若值爲00H表示非活動分區。
第二、三、4字節
本分區的起始磁頭號、扇區號、柱面號。其中:
磁頭號——第2字節;
扇區號——第3字節的低6位;
柱面號——爲第3字節高2位+第4字節8位。
第5字節
分區類型符。
00H——表示該分區未用(即沒有指定);
06H——FAT16基本分區;
0BH——FAT32基本分區;
05H——擴展分區;
07H——NTFS分區;
0FH——(LBA模式)擴展分區(83H爲Linux分區等)。
第六、七、8字節
本分區的結束磁頭號、扇區號、柱面號。其中:
磁頭號——第6字節;
扇區號——第7字節的低6位;
柱面號——第7字節的高2位+第8字節。
第九、十、十一、12字節
本分區以前已用了的扇區數。
第1三、1四、1五、16字節
本分區的總扇區數。
4.MBR的主要功能及工做流程
啓動PC機時,系統首先對硬件設備進行測試,測試成功後進入自舉程序INT 19H,而後讀系統磁盤0柱面、0磁頭、1扇區的主引導記錄(MBR)內容到內存指定單元0:7C00地址開始的區域,並執行MBR程序段。
硬盤的主引導記錄(MBR)是不屬於任何一個操做系統的,它先於全部的操做系統而被調入內存,併發揮做用,而後纔將控制權交給主分區(活動分區)內的操做系統,並用主分區信息表來管理硬盤。
MBR程序段的主要功能以下:
·檢查硬盤分區表是否無缺。
·在分區表中尋找可引導的「活動」分區。
·將活動分區的第一邏輯扇區內容裝入內存。在DOS分區中,此扇區內容稱爲DOS引導記錄(DBR)。
硬盤邏輯驅動器的分區錶鏈結構
硬盤是由不少個512字節的扇區組成,而這些扇區會被組織成一個個的「分區」。
硬盤的分區規則是:一個分區的全部扇區必須連續,硬盤能夠有最多4個物理上的分區,這4個物理分區能夠是4個主分區或者3個主分區加一個擴展分區。在DOS/Windows管理下的擴展分區裏,能夠並且必須再繼續劃分邏輯分區(邏輯盤)。
從MS-DOS3.2問世之後,用戶就能夠在一個物理硬盤驅動器上劃分一個主分區和一個擴展分區,並在擴展分區上建立多個邏輯驅動器,也即咱們常說的一個物理盤上多個邏輯盤。
舉一個例子,一個10G的硬盤,安裝Windows,有C:、D:、E:三個邏輯盤,那麼它的分區狀況能夠是以下的方式:
分區一:主分區2GB,格式化爲C:盤。
分區二:擴展分區8GB。它被再劃分爲兩個各4GB的邏輯盤,格式化爲以D:和E:盤。
在一個劃分有多個主分區的硬盤上,則可安裝多個不一樣的操做系統。如Windows、Linux、Solaris等。每一個操做系統本身去管理分配給本身的分區。可是,每一個操做系統對分區的操做方式是不一樣的。對於DOS/Windows來講,它可以把它所能管轄的一個主分區和一個擴展分區格式化,而後按照 C:、D:、E:邏輯盤的方式來管理。而Linux則不一樣,它是把「分區」看做一個設備,既沒有「擴展分區」的概念,也沒有「邏輯盤」的概念。
1.邏輯盤的連接關係
在FAT 文件系統中,硬盤的邏輯盤字符用字符C:、D:、E:、...、Z:來表示。主分區通常被格式化成C:盤,從D:盤開始的邏輯盤是創建在擴展分區之上的。在系統進行讀寫操做時,DOS首先查看主引導記錄(MBR)中的分區信息表,分區項將指向活動主分區的DOS引導記錄(DBR)。
MBR中的分區表位於0柱面、0磁頭、1扇區內,以位移1BEH開始的第一分區表做爲鏈首,有表內的連接表項指示下一分區表的物理位置(xx柱面、0磁頭、1扇區),在該位置的扇區內一樣位移1BEH處,保存着第2張分區表,依次類推,直至指向最後一張分區表的物理位置(yy柱面、0磁頭、1扇區)。因該分區表內不存在連接表項,即做爲分區錶鏈的鏈尾。如圖6-17所示。
硬盤 第一個虛擬 第二個虛擬 第三個虛擬
MBR分區表 MBR分區表 MBR分區表 MBR分區表
定義C:盤
------------>
定義D:盤
----------->
定義E:盤
------------>
定義F:盤
描述剩餘空間
描述剩餘空間
描述剩餘空間
描述剩餘空間
未用
未用
未用
未用
未用
未用
未用
未用
55AA
55AA
55AA
55AA
圖6-17 具備4個邏輯盤的分區鏈表示意圖
舉例來講,原本位於柱面0、磁頭0、扇區1上的分區表的每一項記錄和主分區的DBR之間有一對應的關係,可是,若是在擴展分區中創建了多個邏輯盤,例如D:、E:、F:,該分區表中的分區項可指向第一個邏輯盤:,但對於其它的邏輯盤,則就沒有這種對應關係了。爲可以查找擴展分區中的多個邏輯盤,DOS系統可作以下安排:
·若是硬盤只有一個主分區,便是將整個硬盤做爲一個邏輯盤C:,則分區命令FDISK只在硬盤的柱面0、磁頭0、扇區1上創建一個MBR。
·若是硬盤被劃分紅2--4個分區,則FDISK除了在柱面0、磁頭0、扇區1上創建一個MBR以外,還在擴展分區的每一個邏輯盤的起始扇區上都創建一個虛擬MBR,每個虛擬MBR用於擴展分區上的一個邏輯盤。
·擴展分區的第一個扇區不是用於一個邏輯盤的DBR,而是指向一個「擴展的」分區表,即第一個虛擬的MBR。該邏輯盤DBR扇區的起點應爲虛擬MBR的下一個磁道1扇區。
這些MBR中的各個分區表連接成一個如圖6-17所示的分區錶鏈。這是一個硬盤具備4個表項所描述的內容。
DOS就是用這種方法來使一個擴展分區看起來象是有多個硬盤。
從圖6-17中能夠看到,位於磁盤柱面0、磁頭0、扇區1上MBR的分區表指向基本分區及擴展分區中的第一個邏輯盤。