主引導記錄(MBR,Master Boot Record)是裝有Linux系統(tǒng)的硬盤的第一個扇區(qū),即C/H/S地址的0柱面0磁頭1扇區(qū),也叫做MBR扇區(qū)。1
簡介主引導記錄(MBR),也被稱為主引導扇區(qū),是計算機開機以后訪問硬盤時所必須要讀取的第一個扇區(qū)。在深入討論主引導扇區(qū)內部結構的時候,有時也將其開頭的446字節(jié)內容特指為“主引導記錄”(MBR),其后是4個16字節(jié)的“磁盤分區(qū)表”(DPT),以及2字節(jié)的結束標志(55AA)。因此,在使用“主引導記錄”(MBR)這個術語的時候,需要根據(jù)具體情況判斷其到底是指整個主引導扇區(qū),還是主引導扇區(qū)的前446字節(jié)。3
主引導扇區(qū)記錄著硬盤本身的相關信息以及硬盤各個分區(qū)的大小及位置信息。如果它受到破壞,硬盤上的基本數(shù)據(jù)結構信息將會丟失,需要用繁瑣的方式試探性地重建數(shù)據(jù)結構信息后,才可能重新訪問原先的數(shù)據(jù)。主引導扇區(qū)內的信息可以通過任何一種基于某種操作系統(tǒng)的分區(qū)軟件寫入,但和某種操作系統(tǒng)沒有特定的關系,即只要創(chuàng)建了有效的主引導記錄就可以引導任意一種操作系統(tǒng)。3
如果要備份主引導扇區(qū),可以通過使用dd命令來實現(xiàn)。3
主引導記錄(master boot record,MBR)位于硬盤的第一物理扇區(qū)。由于歷史原因,硬盤的一個扇區(qū)大小是512字節(jié),包含最多446字節(jié)的啟動代碼、4個硬盤分區(qū)表項(每個表項16字節(jié),共64字節(jié))、2個簽名字節(jié)(0x55,0xAA),如圖所示。分區(qū)表項的結構見表。2
圖 經(jīng)典主引導記錄布局2
表 主引導記錄中的硬盤分區(qū)表項2
組成主引導記錄由三個部分組成:引導程序占用其中的前446字節(jié)(偏移0~1BDH),隨后的64字節(jié)(偏移1BEH~1FDH)為DPT(Disk Partition Table,硬盤分區(qū)表),最后的兩個字節(jié)“55 AA”(偏移1FEH~1FFH)是結束標志。1
結構硬盤主引導記錄 (MBR) , 位于硬盤的0柱面0磁頭l扇區(qū)處。其包括硬盤主引導記錄MBR和分區(qū)表DPT以及結束標志“55AA”[1], 這部分數(shù)據(jù)總共占512字節(jié), 其中MBR占其中的446個字節(jié),另外的64個字節(jié)交給了分區(qū)表DPT, 最后2個字節(jié)“55AA”是分區(qū)的結束標志。值得一提的是, MBR是由分區(qū)程序 (例如DOS的Fdisk.exe) 產(chǎn)生。具體結構如表1。4
(1) 硬盤主引導程序, 位于該扇區(qū)的0-1BDH處。4
(2) 硬盤分區(qū)表, 位于1BEH-1FDH處, 每個分區(qū)表占用16個字節(jié), 4個分區(qū)表 (共64字節(jié)) , 16個字節(jié)各字節(jié)意義如表2。4
分區(qū)狀態(tài)標記為活動狀態(tài)時, 表示當前分區(qū)可以引導操作系統(tǒng), 而非活動狀態(tài)表示不能引導操作系統(tǒng)。分區(qū)從起始到結束地址部分均以 (H/S/C) 記錄分區(qū)邊界。分區(qū)起始邏輯扇區(qū)及占用總扇區(qū)數(shù)均以LBA方式表示分區(qū)范圍。4
(3) 主引導記錄正常狀態(tài)下的標志為“AA55”, 位于1FEH-1FFH處, 如該標志改變系統(tǒng)將不能正常啟動。4
主要功能及工作流程計算機系統(tǒng)啟動首先對本機的硬件設備進行測試, 測試成功之后進入自舉程序INT l9H, 然后將磁盤的0柱面、0磁頭、1扇區(qū)的主引導記錄內容讀入內存指定單元, 其首址為0:7C00開始的區(qū)域, 并執(zhí)行MBR程序段。主引導記錄優(yōu)先于所有操作系統(tǒng)被調入內存的指令, 并發(fā)揮主導作用。最后把控制權交給主分區(qū) (活動分區(qū)) 內操作系統(tǒng), 并讓主分區(qū)信息來管理硬盤??梢? 主引導記錄不依賴任何操作系統(tǒng), 且硬盤引導程序為可變的, 因此完全可以實現(xiàn)多系統(tǒng)共存 (但最多4個系統(tǒng)) 。MBR主要功能如下:4
(1) 首先檢查硬盤中分區(qū)表是否完好。4
(2) 從分區(qū)表查找可引導的“活動”分區(qū)。4
(3) 將活動分區(qū)中第一邏輯扇區(qū)數(shù)據(jù)加載到內存中。在DOS分區(qū)中, 該扇區(qū)內容被稱為DOS引導記錄, 簡稱DBR。4
MBR引導部分的程序段執(zhí)行程序流程, 如圖1。4
根據(jù)上述的MBR的工作流程, 可以在系統(tǒng)引導時加入或改變計算機系統(tǒng)正常的引導過程。比如, 優(yōu)先執(zhí)行用戶程序段, 再引導操作系統(tǒng)。因此, 可以利用這一特點來實現(xiàn)數(shù)據(jù)保護和數(shù)據(jù)恢復功能。例如, 當前流行使用的硬盤保護卡、還原軟件等均為改寫0柱0頭1扇區(qū)的代碼部分, 在系統(tǒng)啟動時搶奪中斷INT 13H的控制權, 先將原中斷INT 13H的入口地址保存起來, 然后將入口地址指向自己的INT 13H處理程序, 并通過自已的監(jiān)控部分的程序來確保該入口地址始終指向自己的INT 13H, 同時攔截所有的其他INT 13H中對硬盤0柱0頭1扇區(qū)的操作, 把所有對0柱0頭1扇區(qū)的讀寫操作改為對虛擬主引導記錄的操作。在攔截所有INT 13H寫硬盤操作后, 將把所這些寫操作在虛擬內存中進行, 并做好完整的記錄, 等系統(tǒng)重新啟動后還原這些記錄[5], 實現(xiàn)數(shù)據(jù)保護與數(shù)據(jù)恢復功能。4
軟件層面上的MBR數(shù)據(jù)恢復方法硬盤是計算機的主要外部存儲設備, 大多數(shù)用戶的數(shù)據(jù)都存儲在硬盤上, 如果硬盤出現(xiàn)故障, 不僅需要維修硬盤, 而且還需要搶救硬盤數(shù)據(jù)。硬盤的故障常見有兩類:一類是硬盤的硬件發(fā)生故障, 稱為硬故障。硬件故障一般為磁盤劃傷、磁組變形、芯片組或其它元器件損壞等。表現(xiàn)為系統(tǒng)一般不認硬盤, 常有一種“咔嚓咔嚓”的磁組撞擊聲或電機不轉、通電后無任何聲音、磁頭錯位造成讀寫錯誤等。另一類是寫在硬盤上的軟件發(fā)生故障, 稱為軟故障, 一般是病毒感染、誤操作、操作時斷電等引起的。本文僅討論軟故障中MBR數(shù)據(jù)恢復的軟件層面上的解決辦法。4
Fdisk/MBR命令修復MBR用Win98的引導盤或DOS引導盤引導系統(tǒng)到純DOS命令提示符下執(zhí)行“Fdisk/MBR”命令進行無條件重寫, 主引導記錄一般都能成功, 且保留原有數(shù)據(jù)。Fdisk命令行格式語法為:“Fdisk/參數(shù)開關”, 其中/MBR參數(shù)功能:重新建立主磁盤的主引導記錄。其它的一些隱藏參數(shù), 其功能對于有病毒感染主引導扇區(qū)時, 用來清除病毒時用。需要提醒的是, 隱藏參數(shù)危險系數(shù)比較大, 使用時需謹慎。4
FIXMBR修復MBRFixmbr是DOS下的一個專門針對MBR的修復程序工具, 它通過全盤搜索來確定硬盤分區(qū), 并重新構造主引導記錄。操作方法是將Fixmbr下載并保存在軟盤, 在軟盤上運行FIXMBR, 由FIXMBR負責檢查MBR結構, 如發(fā)現(xiàn)系統(tǒng)有錯誤, 則將出現(xiàn)是否進行硬盤主引導記錄修復的提示?;卮稹癥ES”, FIXMBR將對整個硬盤進行分區(qū)搜索, 當搜索到相應的分區(qū)后, 系統(tǒng)將提示是否修改MBR, 回答“YES”則開始自動修復。如搜索的結果不正確, 可使用/Z開關符, 重新啟動系統(tǒng)后將恢復到原來狀態(tài)。值得注意的是, 如果使用Fixmbr修復的過程中出現(xiàn)死機等現(xiàn)象, 則需要進入BIOS修改參數(shù),即到“Advance BIOS Features”選項, 將“Anti-Virus Protection”中的參數(shù)設置為“Disabled”即可。4
編制匯編程序結合FDISK重建硬盤的MBR4
用匯編語言編制一個內存駐留程序, 其控制中斷為INT13H, 目的是實現(xiàn)阻止對硬盤格式化和硬盤主引導區(qū)以外的寫操作, 該方法既可解決不丟失硬盤原數(shù)據(jù)文件, 又可修復MBR。4
作用主引導記錄是非常重要的一個扇區(qū),其中引導代碼用來告訴計算機如何處理分區(qū)表,如何定位操作系統(tǒng)等;分區(qū)表用來管理硬盤的分區(qū)情況;標志表明該扇區(qū)是一個有效的引導記錄扇區(qū)。1
本詞條內容貢獻者為:
尚軼倫 - 副教授 - 同濟大學數(shù)學科學學院