發(fā)信人: NightOwl (Owlet), 信區(qū): linux 標 題: 主引導扇區(qū)釋疑 發(fā)信站: BBS 水木清華站 (Sat Nov 20 06:50:43 1999) 主引導扇區(qū)釋疑 關鍵詞:引導扇區(qū)、主引導扇區(qū)、主引導記錄、硬盤分區(qū)表。 NightOwl 1999.11 ------------------------------------------------------------------- 本文尚未完備,如有好的意見和建議歡迎與我聯(lián)系. ------------------------------------------------------------------- 很多朋友對于硬盤的主引導扇區(qū)里的MBR(Main Boot Record)和DPT (Disk Partition Table)的區(qū)別有些分不太清。于是我想把它寫個簡短的 介紹,希望能對這些朋友有點幫助。 引導扇區(qū)在每個分區(qū)里都存在,但是我們常說的*主引導扇區(qū)*是硬盤的 第一物理扇區(qū)。它由兩個部分組成:即主引導記錄MBR和硬盤分區(qū)表DPT。在 總共512字節(jié)的主引導分區(qū)里其中MBR占446個字節(jié)(偏移0--偏移1BDH),DPT 占64個字節(jié)(偏移1BEH--偏移1FDH),最后兩個字節(jié)“55,AA”(偏移1FEH 偏移1FFH)是分區(qū)的結束標志。大致的結構如下圖: 0000 |------------------------------------------------| | | | | | Main Boot Record | | | | | | 主引導記錄(446字節(jié)) | | | | | | | 01BD | | 01BE |------------------------------------------------| | | 01CD | 分區(qū)信息 1(16字節(jié)) | 01CE |------------------------------------------------| | | 01DD | 分區(qū)信息 2(16字節(jié)) | 01DE |------------------------------------------------| | | 01ED | 分區(qū)信息 3(16字節(jié)) | 01EE |------------------------------------------------| | | 01FD | 分區(qū)信息 4(16字節(jié)) | |------------------------------------------------| | 01FE | 01FF | | 55 | AA | |------------------------------------------------| 圖一:主引導扇區(qū)結構圖 主引導記錄中包含了硬盤的一系列參數(shù)和一段引導程序。引導程序主要 是用來在系統(tǒng)硬件自檢完后引導具有激活標志的分區(qū)上的操作系統(tǒng)。它執(zhí)行 到最后的是一條JMP指令跳到操作系統(tǒng)的引導程序去。這里往往是引導型病 毒的注入點,也是各種多系統(tǒng)引導程序的注入點。但是由于引導程序本身完 成的功能比較簡單,所以我們可以完全地判斷該引導程序的合法性(看JMP 指令的合法性),因而也易于修復。象命令fdisk/mbr可以修復MBR和KV300 這類軟件可以查殺任意類型的引導型病毒,就是這個原因。 往下來是硬盤的分區(qū)表,由4個16字節(jié)的分區(qū)信息表組成。每個信息表的 結構如下: 偏移 長度 所表達的意義 0 字節(jié) 分區(qū)狀態(tài): 如0-->非活動分區(qū) 80--> 活動分區(qū) 1 字節(jié) 該分區(qū)起始頭(HEAD) 2 字 該分區(qū)起始扇區(qū)和起始柱面 4 字節(jié) 該分區(qū)類型:如82--> Linux Native分區(qū) 83--> Linux Swap 分區(qū) 5 字節(jié) 該分區(qū)終止頭(HEAD) 6 字 該分區(qū)終止扇區(qū)和終止柱面 8 雙字 該分區(qū)起始絕對分區(qū) C 雙字 該分區(qū)扇區(qū)數(shù) 最后的兩個標志“55 AA”是分區(qū)表的結束標志,如果這兩個標志被修改 (有些病毒就會修改這兩個標志),則系統(tǒng)引導時將報告找不到有效的分區(qū)表。 由上面的所列出的結構可以大致地了解主引導扇區(qū)的結構和用途。下面, 有一些關于主引導扇區(qū)的常見問題: Q1、fdisk/mbr 會不會把硬盤的分區(qū)表破壞呀? A: 從上面的土一我們可以看到fdisk/mbr是不會影響到DPT的。fdisk/ mbr只是把主引導分區(qū)里的MBR部分重新寫過,而不會對DPT有任何破壞。 Q2、在Linux里有一種方法可以恢復MBR是用如下的命令: dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1 其中bs(buffer size)是指重寫的字節(jié)數(shù)。為什么不是512 呢?主引導扇區(qū)是一個扇區(qū)(512字節(jié)呀)? A: 答案是因為我們用上面的命令是為了修復可能被病毒修改了的主引導記 錄MBR,或者想把LILO卸載掉,而不是恢復整個主引導扇區(qū)。所以我們 只把主引導扇區(qū)的備份文件boot.NNNN的前446個字節(jié)重寫入主引導扇區(qū)。 boot.NNNN是我們在安裝Linux之前整個主引導分區(qū)的備份。如果我們把 512個字節(jié)全部寫入主引導扇區(qū)就可能會把安裝了Linux后改變了的硬盤 DPT表也破壞掉。那就壞事了。 :-) linuxrat補充一些:=)... MBR-> Main/Master Boot Record, 有些書上是寫成Master的. 我認為可以分成三個部分吧, MBR+DPT+MagicNumber(446+64+2=512) 這也就是為什么進行MBR備份的時候要指定bs=512 或者 bs=1k, count=1的原因. 然后恢復時經常看到HOWTO里面是bs=446 count=1. 這個446就是指令部分的恢復, 不是DPT的恢復. 往往MBR里面的第一個指令是cli... 研究起來是比較有意思的. 有哪位大拿給大家把這446字節(jié)的指令給大家說一說吧. //bow, come on... |
新聞熱點
疑難解答