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

2021-05-13 10:22:14 字數 3494 閱讀 5106

硬碟的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 (顯示節的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,如果該標誌錯誤系統就不能啟動。

圖6-15 mbr的組成結構圖

3.mbr中的分割槽資訊結構

占用512個位元組的mbr中,偏移位址01beh--01fdh的64個位元組,為4個分割槽項內容(分割槽資訊表)。它是由磁碟介質型別及使用者在使用 fdisk定義分割槽說確定的。在實際應用中,fdisk對乙個磁碟劃分的主分割槽可少於4個,但最多不超過4個。

每個分割槽表的專案是16個位元組,其內容含義如表6-19所示。

表6-19 分割槽項表(16位元組)內容及含義

4.mbr的主要功能及工作流程

啟動pc機時,系統首先對硬體裝置進行測試,測試成功後進入自舉程式int 19h,然後讀系統磁碟0柱面、0磁頭、1扇區的主引導記錄(mbr)內容到記憶體指定單元0:7c00位址開始的區域,並執行mbr程式段。

硬碟的主引導記錄(mbr)是不屬於任何乙個作業系統的,它先於所有的作業系統而被調入記憶體,並發揮作用,然後才將控制權交給主分割槽(活動分割槽)內的作業系統,並用主分割槽資訊表來管理硬碟。

mbr程式段的主要功能如下:

·檢查硬碟分割槽表是否完好。

·在分割槽表中尋找可引導的「活動」分割槽。

·將活動分割槽的第一邏輯扇區內容裝入記憶體。在dos分割槽中,此扇區內容稱為dos引導記錄(dbr)。

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

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

硬碟的分割槽規則是:乙個分割槽的所有扇區必須連續,硬碟可以有最多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分割槽表

圖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的分割槽表指向基本分割槽及擴充套件分割槽中的第乙個邏輯盤。

對某位北京格主訪談的記錄

您的位置 首頁 格仔鋪資訊 格主訪談 對某位北京格主訪談的記錄 2009 2 3 提問者 格仔店鋪聯盟 受訪者 格主 rita 問 給你做個訪談,隨便 一些話題,可以不?答 可以 問 因為增加了乙個店主和格主訪談的板塊,希望能通過訪談記錄,給別的人以參考和幫助 你在哪個城市?答 北京 問 北京的格仔...

主通風機月倒機記錄及安全技術措施

2015主通風機倒機記錄 回歸煤礦 2015年度 回歸煤礦煤礦主通風機 月倒機記錄及安全技術措施 1號風機倒2號風機 根據 煤礦安全規程 確保井下生產正常通風,每月進行一次轉換主通風機 以下稱倒機 工作,為確保安全,特制定本安全技術措施。一 倒機時間 地點 參加人員 1 倒機時間 2015年2月26...

主通風機月倒機記錄及安全技術措施

鐵東煤業有限責任公司 2014年主通風機倒機記錄 鐵東煤業有限責任公司 2014年度 三分公司主通風機 月倒機記錄及安全技術措施 1號風機倒2號風機 根據 煤礦安全規程 確保井下生產正常通風,每月進行一次轉換主通風機 以下稱倒機 工作,為確保安全,特制定本安全技術措施。一 倒機時間 地點 參加人員 ...