很多朋友對于硬碟的主引導扇區裡的MBR(Main Boot Record)和DPT
(Disk Partition Table)的差別有些分不太清。于是我想把它寫個簡短的
介紹,希望能對這些朋友有點幫助。
引導扇區在每個分區裡都存在,但是我們常說的*主引導扇區*是硬碟的
第一實體扇區。它由兩個部分組成:即主引導記錄MBR和硬碟分區表DPT。在
總共512位元組的主引導分區裡其中MBR占446個位元組(偏移0--偏移1BDH),DPT
占64個位元組(偏移1BEH--偏移1FDH),最後兩個位元組“55,AA”(偏移1FEH
偏移1FFH)是分區的結束标志。大緻的結構如下圖:
0000 |------------------------------------------------|
| |
| Main Boot Record |
| 主引導記錄(446位元組) |
01BD | |
01BE |------------------------------------------------|
01CD | 分區資訊 1(16位元組) |
01CE |------------------------------------------------|
01DD | 分區資訊 2(16位元組) |
01DE |------------------------------------------------|
01ED | 分區資訊 3(16位元組) |
01EE |------------------------------------------------|
01FD | 分區資訊 4(16位元組) |
|------------------------------------------------|
| 01FE | 01FF |
| 55 | AA |
圖一:主引導扇區結構圖
主引導記錄中包含了硬碟的一系列參數和一段引導程式。引導程式主要
是用來在系統硬體自檢完後引導具有激活标志的分區上的作業系統。它執行
到最後的是一條JMP指令跳到作業系統的引導程式去。這裡往往是引導型病
毒的注入點,也是各種多系統引導程式的注入點。但是由于引導程式本身完
成的功能比較簡單,是以我們可以完全地判斷該引導程式的合法性(看JMP
指令的合法性),因而也易于修複。象指令fdisk/mbr可以修複MBR和KV300
這類軟體可以清除任意類型的引導型病毒,就是這個原因。
往下來是硬碟的分區表,由4個16位元組的分區資訊表組成。每個資訊表的
結構如下:
偏移 長度 所表達的意義
0 位元組 分區狀态: 如0-->非活動分區
80--> 活動分區
1 位元組 該分區起始頭(HEAD)
2 字 該分區起始扇區和起始柱面
4 位元組 該分區類型:如82--> Linux Native分區
83--> Linux Swap 分區
5 位元組 該分區終止頭(HEAD)
6 字 該分區終止扇區和終止柱面
8 雙字 該分區起始絕對分區
C 雙字 該分區扇區數
最後的兩個标志“55 AA”是分區表的結束标志,如果這兩個标志被修改
(有些病毒就會修改這兩個标志),則系統引導時将報告找不到有效的分區表。
由上面的所列出的結構可以大緻地了解主引導扇區的結構和用途。下面,
有一些關于主引導扇區的常見問題:
Q1、fdisk/mbr 會不會把硬碟的分區表破壞呀?
A: 從上面的土一我們可以看到fdisk/mbr是不會影響到DPT的。fdisk/
mbr隻是把主引導分區裡的MBR部分重新寫過,而不會對DPT有任何破壞。