複製鏈接
請複製以下鏈接發送給好友

主引導記錄

鎖定
主引導記錄(MBR,Master Boot Record)是採用MBR分區表的硬盤的第一個扇區,即C/H/S地址的0柱面0磁頭1扇區,也叫做MBR扇區。 [1] 
中文名
主引導記錄
外文名
MBR,Master Boot Record [2] 
學    科
計算機 [2] 

主引導記錄簡介

主引導記錄(MBR),也被稱為主引導扇區,是計算機開機以後訪問硬盤時所必須要讀取的第一個扇區。在深入討論主引導扇區內部結構的時候,有時也將其開頭的446字節內容特指為“主引導記錄”(MBR),其後是4個16字節的“磁盤分區表”(DPT),以及2字節的結束標誌(55AA)。因此,在使用“主引導記錄”(MBR)這個術語的時候,需要根據具體情況判斷其到底是指整個主引導扇區,還是主引導扇區的前446字節。 [3] 
主引導扇區記錄着硬盤本身的相關信息以及硬盤各個分區的大小及位置信息。如果它受到破壞,硬盤上的基本數據結構信息將會丟失,需要用繁瑣的方式試探性地重建數據結構信息後,才可能重新訪問原先的數據。主引導扇區內的信息可以通過任何一種基於某種操作系統的分區軟件寫入,但和某種操作系統沒有特定的關係,即只要創建了有效的主引導記錄就可以引導任意一種操作系統。 [3] 
如果要備份主引導扇區,可以通過使用dd命令來實現。 [3] 
主引導記錄(master boot record,MBR)位於硬盤的第一物理扇區。由於歷史原因,硬盤的一個扇區大小是512字節,包含最多446字節的啓動代碼、4個硬盤分區表項(每個表項16字節,共64字節)、2個簽名字節(0x55,0xAA),如圖1所示。分區表項的結構見表。 [2] 
圖1 圖1 [2]
圖 1經典主引導記錄佈局 [2] 
圖2 圖2 [2]
如圖2主引導記錄中的硬盤分區表項 [2] 

主引導記錄組成

主引導記錄由三個部分組成:引導程序佔用其中的前446字節(偏移0~1BDH),隨後的64字節(偏移1BEH~1FDH)為DPT(Disk Partition Table,硬盤分區表),最後的兩個字節“55 AA”(偏移1FEH~1FFH)是結束標誌。 [1] 

主引導記錄結構

硬盤主引導記錄 (MBR) , 位於硬盤的0柱面0磁頭1扇區處。其包括硬盤主引導記錄MBR和分區表DPT以及結束標誌“55AA”[1], 這部分數據總共佔512字節, 其中MBR佔其中的446個字節,另外的64個字節交給了分區表DPT, 最後2個字節“55AA”是分區的結束標誌。值得一提的是, MBR是由分區程序 (例如DOS的Fdisk.exe) 產生。具體結構如表1。 [4] 
圖3 圖3 [4]
(1) 硬盤主引導程序, 位於該扇區的0-1BDH處。 [4] 
(2) 硬盤分區表, 位於1BEH-1FDH處, 每個分區表佔用16個字節, 4個分區表 (共64字節) , 16個字節各字節意義如表2。 [4] 
圖4 圖4 [4]
分區狀態標記為活動狀態時, 表示當前分區可以引導操作系統, 而非活動狀態表示不能引導操作系統。分區從起始到結束地址部分均以 (H/S/C) 記錄分區邊界。分區起始邏輯扇區及佔用總扇區數均以LBA方式表示分區範圍。 [4] 
(3) 主引導記錄正常狀態下的標誌為“55 AA”, 位於1FEH-1FFH處, 如該標誌改變系統將不能正常啓動。 [4] 

主引導記錄主要功能及工作流程

計算機系統啓動首先對本機的硬件設備進行測試, 測試成功之後進入自舉程序INT l9H, 然後將磁盤的0柱面、0磁頭、1扇區的主引導記錄內容讀入內存指定單元, 其首址為0:7C00開始的區域, 並執行MBR程序段。主引導記錄優先於所有操作系統被調入內存的指令, 併發揮主導作用。最後把控制權交給主分區 (活動分區) 內操作系統, 並讓主分區信息來管理硬盤。可見, 主引導記錄不依賴任何操作系統, 且硬盤引導程序為可變的, 因此完全可以實現多系統共存 (但最多4個系統) 。MBR主要功能如下: [4] 
(1) 首先檢查硬盤中分區表是否完好。 [4] 
(2) 從分區表查找可引導的“活動”分區。 [4] 
(3) 將活動分區中第一邏輯扇區數據加載到內存中。在DOS分區中, 該扇區內容被稱為DOS引導記錄, 簡稱DBR。 [4] 
MBR引導部分的程序段執行程序流程, 如圖5。 [4] 
圖5 圖5 [4]
根據上述的MBR的工作流程, 可以在系統引導時加入或改變計算機系統正常的引導過程。比如, 優先執行用户程序段, 再引導操作系統。因此, 可以利用這一特點來實現數據保護和數據恢復功能。例如, 當前流行使用的硬盤保護卡、還原軟件等均為改寫0柱0頭1扇區的代碼部分, 在系統啓動時搶奪中斷INT 13H的控制權, 先將原中斷INT 13H的入口地址保存起來, 然後將入口地址指向自己的INT 13H處理程序, 並通過自已的監控部分的程序來確保該入口地址始終指向自己的INT 13H, 同時攔截所有的其他INT 13H中對硬盤0柱0頭1扇區的操作, 把所有對0柱0頭1扇區的讀寫操作改為對虛擬主引導記錄的操作。在攔截所有INT 13H寫硬盤操作後, 將把所這些寫操作在虛擬內存中進行, 並做好完整的記錄, 等系統重新啓動後還原這些記錄[5], 實現數據保護與數據恢復功能。 [4] 

主引導記錄軟件層面上的MBR數據恢復方法

硬盤是計算機的主要外部存儲設備, 大多數用户的數據都存儲在硬盤上, 如果硬盤出現故障, 不僅需要維修硬盤, 而且還需要搶救硬盤數據。硬盤的故障常見有兩類:一類是硬盤的硬件發生故障, 稱為硬故障。硬件故障一般為磁盤劃傷、磁組變形、芯片組或其它元器件損壞等。表現為系統一般不認硬盤, 常有一種“咔嚓咔嚓”的磁組撞擊聲或電機不轉、通電後無任何聲音、磁頭錯位造成讀寫錯誤等。另一類是寫在硬盤上的軟件發生故障, 稱為軟故障, 一般是病毒感染、誤操作、操作時斷電等引起的。本文僅討論軟故障中MBR數據恢復的軟件層面上的解決辦法。 [4] 

主引導記錄Fdisk/MBR命令修復MBR

用Win98的引導盤或DOS引導盤引導系統到純DOS命令提示符下執行“Fdisk/MBR”命令進行無條件重寫, 主引導記錄一般都能成功, 且保留原有數據。Fdisk命令行格式語法為:“Fdisk/參數開關”, 其中/MBR參數功能:重新建立主磁盤的主引導記錄。其它的一些隱藏參數, 其功能對於有病毒感染主引導扇區時, 用來清除病毒時用。需要提醒的是, 隱藏參數危險係數比較大, 使用時需謹慎。 [4] 

主引導記錄FIXMBR修復MBR

Fixmbr是DOS下的一個專門針對MBR的修復程序工具, 它通過全盤搜索來確定硬盤分區, 並重新構造主引導記錄。操作方法是將Fixmbr下載並保存在軟盤, 在軟盤上運行FIXMBR, 由FIXMBR負責檢查MBR結構, 如發現系統有錯誤, 則將出現是否進行硬盤主引導記錄修復的提示。回答“YES”, FIXMBR將對整個硬盤進行分區搜索, 當搜索到相應的分區後, 系統將提示是否修改MBR, 回答“YES”則開始自動修復。如搜索的結果不正確, 可使用/Z開關符, 重新啓動系統後將恢復到原來狀態。值得注意的是, 如果使用Fixmbr修復的過程中出現死機等現象, 則需要進入BIOS修改參數,即到“Advance BIOS Features”選項, 將“Anti-Virus Protection”中的參數設置為“Disabled”即可。 [4] 
編制彙編程序結合FDISK重建硬盤的MBR [4] 
用匯編語言編制一個內存駐留程序, 其控制中斷為INT13H, 目的是實現阻止對硬盤格式化和硬盤主引導區以外的寫操作, 該方法既可解決不丟失硬盤原數據文件, 又可修復MBR。 [4] 

主引導記錄作用

主引導記錄是非常重要的一個扇區,其中引導代碼用來告訴計算機如何處理分區表,如何定位操作系統等;分區表用來管理硬盤的分區情況;標誌表明該扇區是一個有效的引導記錄扇區。 [1] 
參考資料