主引導記錄(MBR,Master Boot Record)是位于磁盤最前邊的一段引導(Loader)代碼。它負責磁盤操作系統對磁盤進行讀寫時分區合法性的差別、分區引導信息的定位,它由磁盤操作系統在對硬盤進行初始化時產生的。
通常,我們將包含MBR引導代碼的扇區稱為主引導扇區。因這一扇區中,引導代碼占有絕大部分的空間,故而將習慣將該扇區稱為MBR扇區(簡稱MBR)。由于這一扇區承擔有不同于磁盤上其他普通存儲空間的特殊管理職能,作為管理整個磁盤空間的一個特殊空間,它不屬于磁盤上的任何分區,因而分區空間內的格式化命令FORMAT. COM不能清除主引導記錄的任何信息。
主引導扇區由三個部分組成(共占用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字節為分區項1、分區項2、分區項3、分區項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表示非活動分區。 |
第2、3、4字節 |
本分區的起始磁頭號、扇區號、柱面號。其中:
磁頭號——第2字節; 扇區號——第3字節的低6位; 柱面號——為第3字節高2位+第4字節8位。 |
第5字節 |
分區類型符。
00H——表示該分區未用(即沒有指定); 06H——FAT16基本分區; 0BH——FAT32基本分區; 05H——擴展分區; 07H——NTFS分區; 0FH——(LBA模式)擴展分區(83H為Linux分區等)。 |
第6、7、8字節 |
本分區的結束磁頭號、扇區號、柱面號。其中:
磁頭號——第6字節; 扇區號——第7字節的低6位; 柱面號——第7字節的高2位+第8字節。 |
第9、10、11、12字節 | 本分區之前已用了的扇區數。 |
第13、14、15、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的分區表指向基本分區及擴展分區中的第一個邏輯盤。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
