詞條簡介
MBR(Master Boot Record),是硬盤的主引導(dǎo)記錄,在主引導(dǎo)扇區(qū),位于硬盤的cylinder 0, head 0, sector 1 (Sector是從1開始的)。MBR可以通過FDISK創(chuàng)建,通過INT 13h的fun 2來讀取。 引導(dǎo)扇區(qū)是每個分區(qū)(Partition)的第一扇區(qū),而主引導(dǎo)扇區(qū)是硬盤的第一扇區(qū)。它由三個部分組成,主引導(dǎo)記錄MBR、硬盤分區(qū)表DPT和硬盤有效標(biāo)志。在總共512字節(jié)的主引導(dǎo)扇區(qū)里MBR占446個字節(jié)(偏移0--偏移1BDH),DPT占64個字節(jié)(偏移1BEH--偏移1FDH),最后兩個字節(jié)“55AA”(偏移1FEH--偏移1FFH)是硬盤有效標(biāo)志。
MBR功能
檢查分區(qū)表
搜索可引導(dǎo)分區(qū)
加載活動分區(qū)的第一扇區(qū)(DOS Boot Record)
搜索可引導(dǎo)分區(qū)
加載活動分區(qū)的第一扇區(qū)(DOS Boot Record)
MBR組成
一個扇區(qū)的硬盤主引導(dǎo)記錄MBR由4個部分組成:
•主引導(dǎo)程序:偏移地址0000H--0088H,它負(fù)責(zé)從活動分區(qū)中裝載,并運行系統(tǒng)引導(dǎo)程序。
•出錯信息數(shù)據(jù)區(qū):偏移地址0089H--00E1H為出錯信息,00E2H--01BDH全為0字節(jié)。
•分區(qū)表(DPT,DiskPartitionTable):含4個分區(qū)項,偏移地址01BEH--01FDH,每個分區(qū)表項長16個字節(jié),共64字節(jié)為分區(qū)項1、分區(qū)項2、分區(qū)項3、分區(qū)項4。
•結(jié)束標(biāo)志字:偏移地址01FE--01FF的2個字節(jié)值為結(jié)束標(biāo)志55AA,如果該標(biāo)志錯誤系統(tǒng)就不能啟動。
•主引導(dǎo)程序:偏移地址0000H--0088H,它負(fù)責(zé)從活動分區(qū)中裝載,并運行系統(tǒng)引導(dǎo)程序。
•出錯信息數(shù)據(jù)區(qū):偏移地址0089H--00E1H為出錯信息,00E2H--01BDH全為0字節(jié)。
•分區(qū)表(DPT,DiskPartitionTable):含4個分區(qū)項,偏移地址01BEH--01FDH,每個分區(qū)表項長16個字節(jié),共64字節(jié)為分區(qū)項1、分區(qū)項2、分區(qū)項3、分區(qū)項4。
•結(jié)束標(biāo)志字:偏移地址01FE--01FF的2個字節(jié)值為結(jié)束標(biāo)志55AA,如果該標(biāo)志錯誤系統(tǒng)就不能啟動。
MBR結(jié)構(gòu)
0 字節(jié) 分區(qū)狀態(tài): 如0-->非活動分區(qū),80--> 活動分區(qū)
1 字節(jié) 該分區(qū)起始頭(HEAD)
2 字節(jié) 該分區(qū)起始扇區(qū)和起始柱面
4 字節(jié) 該分區(qū)類型,如82--> Linux Native分區(qū),83--> Linux Swap 分區(qū)
5 字節(jié) 該分區(qū)終止頭(HEAD)
6 字節(jié) 該分區(qū)終止扇區(qū)和終止柱面
8 雙字節(jié) 該分區(qū)起始絕對分區(qū)
C 雙字節(jié) 該分區(qū)扇區(qū)數(shù)
最后的兩個標(biāo)志“55 AA”是分區(qū)表的結(jié)束標(biāo)志,如果這兩個標(biāo)志被修改(有些病毒就會修改這兩個標(biāo)志),則系統(tǒng)引導(dǎo)時將報告找不到有效的分區(qū)表。
1 字節(jié) 該分區(qū)起始頭(HEAD)
2 字節(jié) 該分區(qū)起始扇區(qū)和起始柱面
4 字節(jié) 該分區(qū)類型,如82--> Linux Native分區(qū),83--> Linux Swap 分區(qū)
5 字節(jié) 該分區(qū)終止頭(HEAD)
6 字節(jié) 該分區(qū)終止扇區(qū)和終止柱面
8 雙字節(jié) 該分區(qū)起始絕對分區(qū)
C 雙字節(jié) 該分區(qū)扇區(qū)數(shù)
最后的兩個標(biāo)志“55 AA”是分區(qū)表的結(jié)束標(biāo)志,如果這兩個標(biāo)志被修改(有些病毒就會修改這兩個標(biāo)志),則系統(tǒng)引導(dǎo)時將報告找不到有效的分區(qū)表。
讀取MBR
入口參數(shù):AH=2 (指定功能號)
AL=要讀取的扇區(qū)數(shù)
DL=磁盤號(0、1-軟盤;80、81-硬盤)
DH=磁頭號
CL高2位+CH=柱面號
CL低6位=扇區(qū)號
CS:BX=存放讀取數(shù)據(jù)的內(nèi)存緩沖地址
出口參數(shù):CS:BX=讀取數(shù)據(jù)存放地址
錯誤信息:如果出錯CF=1 AH=錯誤代碼
AL=要讀取的扇區(qū)數(shù)
DL=磁盤號(0、1-軟盤;80、81-硬盤)
DH=磁頭號
CL高2位+CH=柱面號
CL低6位=扇區(qū)號
CS:BX=存放讀取數(shù)據(jù)的內(nèi)存緩沖地址
出口參數(shù):CS:BX=讀取數(shù)據(jù)存放地址
錯誤信息:如果出錯CF=1 AH=錯誤代碼
修復(fù)MBR
fdisk /mbr :重寫硬盤主引導(dǎo)區(qū),注意中間有個空格。
命令適用于:
1. 主引導(dǎo)程序受損
常見故障,硬盤不能自舉,微機(jī)死鎖,或顯示 boot failure-insert system diskette; 經(jīng)由軟盤引導(dǎo), fdisk命令能列出分區(qū)信息。取硬盤同版本 dos 軟盤或應(yīng)急盤引導(dǎo), 運行 a>fdisk /mbr命令,僅向主引導(dǎo)扇區(qū)寫入當(dāng)前系統(tǒng)固有的主引導(dǎo)程序, 硬盤即恢復(fù)自舉能力, dos 引導(dǎo)信息及系統(tǒng)文件等均正常。
2. 清除嵌入式主引導(dǎo)型病毒
此類病毒常見, 它們僅以先導(dǎo)模塊嵌入主引導(dǎo)程序, 不觸動分區(qū)表及檢驗標(biāo)志。首選以檢出此類病毒的軟件清除。
遇殺毒軟件不效, 簡潔高效的對策是以硬盤同版本 dos 軟盤引導(dǎo), 運行 a>fdisk /mbr 命令, 向硬盤單一地寫入當(dāng)前系統(tǒng)固有的主引導(dǎo)程序, 病毒“先導(dǎo)”模塊被覆蓋, 分藏它處的殘部隨之喪失作用。
以常規(guī) fdisk 命令進(jìn)行分區(qū), 難能清除此類病毒, 原因是當(dāng)它讀得檢驗標(biāo)志完好, 自動逾越主引導(dǎo)程序?qū)懖僮鳎?僅登錄分區(qū)表。硬盤格式化后不能自舉。行之有效的措施是運行 a>fdisk /mbr命令。
3. 僅設(shè)基本 dos 分區(qū)硬盤的主引導(dǎo)信息全損
前述表現(xiàn)之外, 執(zhí)行 a>c:, 顯示 invalid drive specification,分區(qū)表遭毀; fdisk 命令不能列出分區(qū)信息。
分別運行原用的 ms dos 7.0 及 7.1 fdisk /mbr命令, 常規(guī)重寫全套完全適用的主引導(dǎo)信息, 由于其 dos 引導(dǎo)信息、文件分配表、根目錄及用戶數(shù)據(jù)完好, c 盤均迅即康復(fù)。
4. 清除 lilo 信息
在以系統(tǒng)自帶的 linux load 過程中, 每修改主引導(dǎo)信息, 籍以引導(dǎo) linux。
需要時, 刪除 linux 分區(qū)后, 可用 fdisk /mbr 命令恢復(fù)系統(tǒng)固有的主引導(dǎo)程序。
5. 清除主引導(dǎo)程序“空閑”字節(jié)中的外加信息
既往所見各版本 dos 登錄的主引導(dǎo)程序基本相同, 其末段均為大于200 字節(jié)的“空閑”(00h); ms dos 7.1 / 8.0 使用新版主引息程序, “空閑”字節(jié)數(shù)大減。
上述“空閑”字節(jié)有被利用登錄開機(jī)密碼、軟件鑒別信息之類。若有需要, 也可用 fdisk /mbr 命令復(fù)原, 即予清除。
命令適用于:
1. 主引導(dǎo)程序受損
常見故障,硬盤不能自舉,微機(jī)死鎖,或顯示 boot failure-insert system diskette; 經(jīng)由軟盤引導(dǎo), fdisk命令能列出分區(qū)信息。取硬盤同版本 dos 軟盤或應(yīng)急盤引導(dǎo), 運行 a>fdisk /mbr命令,僅向主引導(dǎo)扇區(qū)寫入當(dāng)前系統(tǒng)固有的主引導(dǎo)程序, 硬盤即恢復(fù)自舉能力, dos 引導(dǎo)信息及系統(tǒng)文件等均正常。
2. 清除嵌入式主引導(dǎo)型病毒
此類病毒常見, 它們僅以先導(dǎo)模塊嵌入主引導(dǎo)程序, 不觸動分區(qū)表及檢驗標(biāo)志。首選以檢出此類病毒的軟件清除。
遇殺毒軟件不效, 簡潔高效的對策是以硬盤同版本 dos 軟盤引導(dǎo), 運行 a>fdisk /mbr 命令, 向硬盤單一地寫入當(dāng)前系統(tǒng)固有的主引導(dǎo)程序, 病毒“先導(dǎo)”模塊被覆蓋, 分藏它處的殘部隨之喪失作用。
以常規(guī) fdisk 命令進(jìn)行分區(qū), 難能清除此類病毒, 原因是當(dāng)它讀得檢驗標(biāo)志完好, 自動逾越主引導(dǎo)程序?qū)懖僮鳎?僅登錄分區(qū)表。硬盤格式化后不能自舉。行之有效的措施是運行 a>fdisk /mbr命令。
3. 僅設(shè)基本 dos 分區(qū)硬盤的主引導(dǎo)信息全損
前述表現(xiàn)之外, 執(zhí)行 a>c:, 顯示 invalid drive specification,分區(qū)表遭毀; fdisk 命令不能列出分區(qū)信息。
分別運行原用的 ms dos 7.0 及 7.1 fdisk /mbr命令, 常規(guī)重寫全套完全適用的主引導(dǎo)信息, 由于其 dos 引導(dǎo)信息、文件分配表、根目錄及用戶數(shù)據(jù)完好, c 盤均迅即康復(fù)。
4. 清除 lilo 信息
在以系統(tǒng)自帶的 linux load 過程中, 每修改主引導(dǎo)信息, 籍以引導(dǎo) linux。
需要時, 刪除 linux 分區(qū)后, 可用 fdisk /mbr 命令恢復(fù)系統(tǒng)固有的主引導(dǎo)程序。
5. 清除主引導(dǎo)程序“空閑”字節(jié)中的外加信息
既往所見各版本 dos 登錄的主引導(dǎo)程序基本相同, 其末段均為大于200 字節(jié)的“空閑”(00h); ms dos 7.1 / 8.0 使用新版主引息程序, “空閑”字節(jié)數(shù)大減。
上述“空閑”字節(jié)有被利用登錄開機(jī)密碼、軟件鑒別信息之類。若有需要, 也可用 fdisk /mbr 命令復(fù)原, 即予清除。