硬碟主引導記錄 MBR 及其結構

2021-04-29 13:59:10 字數 4542 閱讀 9494

硬碟的0柱面、0磁頭、1扇區稱為主引導扇區,fdisk程式寫到該扇區的內容稱為主引導記錄(mbr)。該記錄占用512個位元組,它用語硬碟啟動時將系統控制權交給使用者指定的,並在分割槽表中登記了的某個作業系統區。

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

***x:***x mov ax,0201 (用功能號2讀1個扇區)

***x:***x mov bx,1000 (把讀出的資料放入緩衝區的位址為cs:1000)

***x:***x mov cx,0001 (讀0柱面,1扇區)

***x:***x mov dx,0080 (指定第一物理盤的0磁頭)

***x:***x int 13

***x:***x int 3

***x:***x (按回車鍵)

-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)。

mbr引導程式段的執行流程如圖6-16所示。

圖6-16 mbr引導程式段執行流程

硬碟邏輯驅動器的分割槽表鏈結構

硬碟是由很多個512位元組的扇區組成,而這些扇區會被組織成乙個個的「分割槽」。

硬碟的分割槽規則是:乙個分割槽的所有扇區必須連續,硬碟可以有最多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的分割槽表指向基本分割槽及擴充套件分割槽中的第乙個邏輯盤。

硬碟主引導記錄 MBR 及其結構

硬碟的0柱面 0磁頭 1扇區稱為主引導扇區,fdisk程式寫到該扇區的內容稱為主引導記錄 mbr 該記錄占用512個位元組,它用語硬碟啟動時將系統控制權交給使用者指定的,並在分割槽表中登記了的某個作業系統區。1.mbr的讀取 硬碟的引導記錄 mbr 是不屬於任何乙個作業系統,也不能用作業系統提供的磁...

硬碟主引導記錄 MBR 及其結構

硬碟的0柱面 0磁頭 1扇區稱為主引導扇區,fdisk程式寫到該扇區的內容稱為主引導記錄 mbr 該記錄占用512個位元組,它用語硬碟啟動時將系統控制權交給使用者指定的,並在分割槽表中登記了的某個作業系統區。1.mbr的讀取 硬碟的引導記錄 mbr 是不屬於任何乙個作業系統,也不能用作業系統提供的磁...

硬碟主引導記錄 MBR 及其結構

硬碟的0柱面 0磁頭 1扇區稱為主引導扇區,fdisk程式寫到該扇區的內容稱為主引導記錄 mbr 該記錄占用512個位元組,它用語硬碟啟動時將系統控制權交給使用者指定的,並在分割槽表中登記了的某個作業系統區。1.mbr的讀取 硬碟的引導記錄 mbr 是不屬於任何乙個作業系統,也不能用作業系統提供的磁...