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

主引導區

鎖定
硬盤的第一個扇區被保留為主引導扇區,它位於整個硬盤的0磁頭0柱面1扇區,包括硬盤主引導記錄MBR(Main Boot Record)和分區表DPT(Disk Partition Table)。其中主引導記錄的作用就是檢查分區表是否正確以及確定哪個分區為引導分區,並在程序結束時把該分區的啓動程序(也就是操作系統引導扇區)調入內存加以執行。至於分區表,很多人都知道,以80H或00H為開始標誌,以55AAH為結束標誌,共64字節,位於本扇區的最末端。
中文名
主引導區
硬盤分區表
(DPT)
包    括
硬盤主引導記錄MBR
位    置
0磁頭0柱面1扇區

主引導區硬盤主引導扇區

= 硬盤主引導記錄(MBR) + 硬盤分區表(DPT)
用FDISK 進行硬盤分區時產生的,它屬於整個硬盤而不屬於某個獨立的DOS 分區,是硬盤正確引導和使用的必要條件.
物理位置:0柱面0磁頭1扇區(Cylinder 0,Head 0,Sector 1)
系統扇區(System Sectors):0C-0H-2S,0C-0H-63S,共 62 Sectors
大小:512字節
其中:MBR 446字節(0000--01BD),DPT 64字節(01BE--01FD),結束標誌2字節(55 AA)
功能:MBR通過檢查DPT分區信息引導系統跳轉至DBR
詳解: (DEBUG -A: MOV AX,0201 MOV BX,0200 MOV CX,0001 MOV DX,0080 INT 13)
000H--08AH MBR啓動程序(尋找開機分區)
08BH--0D9H MBR啓動字符串
0DAH--1BCH 保留("0 ")
1BEH--1FDH 硬盤分區表
1FEH--1FFH 結束標誌(55AA)

主引導區硬盤分區表

字節數 1
含義分析 分區類型:00表示非活動分區;80表示活動分區;其他為無效分區
偏移地址 01BF ~ 01C1
字節數 3
含義分析 分區的起始地址(磁頭/扇區/柱面):通常第一分區的起始地址開始於1磁頭0柱面1扇區,因此這三個字節應為010100
偏移地址 01C2
字節數 1
含義分析 常見的分區操作系統的類型:00 [none-use] 04 [DOS FAT16 <32M] 05 [EXTEND] 06 [DOS FAT16 >32M] 07 [NTFS (OS/2)] 0B [ FAT32] 83 [LINUX >64M]
偏移地址01C3 ~ 01C5
字節數 3
含義分析 該分區的結束地址(磁頭/扇區/柱面)
偏移地址 01C6 ~ 01C9
字節數 4
含義分析 該分區起始邏輯扇區[在線性尋址方式下的分區相對扇區地址]
偏移地址 01CA ~ 01CD
字節數 4
含義分析 該分區佔用的總扇區數
註釋: 注意分區的起始地址 (磁頭/扇區/柱面) 和結束地址 (磁頭/扇區/柱面) 中字節分配:
00000000 01000001 00010101 (第一字節為磁頭,第二字節2~7位為扇區,第二字節0~1位和第三字節為柱面)
DPT 總共64字節(01BE--01FD),如上所示每個分區佔16個字節,所以可以表示四個分區,這也就是為什麼一個磁盤的主分區和擴展分區之和總共只能有四個的原因.

主引導區邏輯驅動器

擴展分區的信息位於以上所示的硬盤分區表(DPT)中,而邏輯驅動器的信息則位於擴展分區的起始扇區,即該分區的起始地址(柱面/扇區/磁道)所對應的扇區,該扇區中的信息與硬盤主引導扇區的區別是不包含MBR,而16字節的分區信息則表示的是邏輯驅動器的起始和結束地址等.
所以,在磁盤僅含有一個主分區,一個擴展分區(包含多個邏輯驅動器)的情況下,即使由於病毒或其他原因導致硬盤主引導扇區的數據丟失(包括DPT),也可以通過邏輯驅動器的數據來恢復整個硬盤.
絕對扇區=磁頭號*每道扇區數[3F] + 柱面號*最大磁頭數[一般是FF]*每道扇區數 + 扇區號 - 1
最大磁頭數=(((總扇區數 + 起始邏輯扇 - 扇區止) / 每道扇區數[3F])-磁頭號止) / 柱面號止
或 最大磁頭數=(((起始邏輯扇 +1 - 扇區起) / 每道扇區數[3F])-磁頭號起) / 柱面號起
例如: 以下是一個硬盤的分區情況.
磁頭 柱面 扇區 磁頭 柱面 扇區 起始扇(邏輯) 結束扇 總共扇區
MBR 0 1 0
C 1 0 1 239 276 63 63 4,188,239 4,188,177
擴 0 277 1 239 554 63 4,188,240 8,391,599 4,203,360
D 1 277 1 239 554 63 4,188,303 8,391,599 4,203,297
如果主分區表損壞,則可以通過手工查找擴展分區表中所包含的邏輯驅動器數據,在本例中就是D盤所對應的數據,然後將其起始扇(邏輯)減去63就是所對應的擴展分區的起始扇(邏輯),將其起始地址(磁頭/扇區/柱面)改為0柱面就是擴展分區的起始地址. 然後通過擴展分區就可以得到主分區C的信息,然後就可以使用FDISK/MBR命令和手工填寫分區表恢復整個硬盤.

主引導區該例所對應的分區表數據

80 01
01 00 06 EF 7F 14 3F 00 00 00 11 E8 3F 00 00 00
41 15 05 EF BF 2A 50 E8 3F 00 60 23 40 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA

主引導區算法過程

(以第一個分區為例)
EF 7F 14 對應的磁頭號EFH = 239D,柱面號7F高二位與14H=114H = 276D,扇區號7F低六位= 3FH = 63D
起始邏輯扇= 3F 00 00 00 = 3FH = 63D
分區總扇區數= 11 E8 3F 00 = 3FE811H = 4188177D
最大磁頭數= ((((4188177+63)-63)/63)-239)/276=240D = 0F0H
01 01 00 對應的邏輯扇 = 1*63 + 240*0*63 + 1 - 1 = 63D
EF 7F 14 對應的邏輯扇 = 239*63 + 240*276*63 + 63 - 1 = 4188239D

主引導區擴展分區表數據

00 01
41 15 07 EF BF 2A 8F E8 3F 00 21 23 40 00
注意: 邏輯起始扇區和總共分區數是左邊為低位,如該例的擴展分區的起始地址為8F E8 3F 00轉換十進制時要先變為00 3F E8 8F,總共佔用分區數21 23 40 00要先變為00 40 23 21,同理當手工填寫該值時也要進行高低位轉換.

主引導區擴展邏輯盤尋找説明

1 在主分區的分區表中,尋找擴展分區的物理地址
2 在擴展分區地址所指扇區尾部,查找擴展分區表(擴展卷),結構與主分區表相同
3 擴展分區表的物理地址中,將磁頭數加1,其餘不變,則為第一個邏輯驅動器(如D盤)的BOOT扇區物理地址
4 根據擴展驅動器的系統分類(FAT16/FAT32,以2048MB為界限),查看FAT表與ROOT區
5 如果還有E、F……等盤,則繼續尋找符合要求的BOOT扇區,BOOT扇區規定在每個磁頭的1號扇區

主引導區系統啓動過程主要由以下幾步組成

以硬盤啓動為例
⒈ 開機
⒉ BIOS 加電自檢 (Power On Self Test -- POST) 內存地址為 0FFFF : 0000
⒊ 將硬盤第一個扇區 (0頭0道[柱面]1扇區,也就是Boot Sector) 讀入內存地址0000 : 7C00 處.
⒋ 檢查(WORD) 0000 : 7DFE 是否等於0xAA55,若不等於則轉去嘗試其它啓動介質
如果沒有其它啓動介質則顯示"No ROM BASIC" 然後死機.
⒌ 跳轉到0000 : 7C00 處執行MBR 中的程序.
⒍ MBR 首先將自己複製到 0000 : 0600 處,然後繼續執行.
⒎ 在主分區表中搜索標誌為活動的分區. 如果發現沒有活動分區或有不止一個活動分區,則轉停止.
⒏ 將活動分區的第一個扇區讀入內存地址 0000 : 7C00 處.
⒐ 檢查(WORD) 0000 : 7DFE是否等於0xAA55,若不等於則顯示"Missing Operating System"然後停止,或嘗試軟盤啓動
⒑ 跳轉到0000 : 7C00處繼續執行特定系統的啓動程序.
⒒ 啓動系統 ...
以上步驟中 2,3,4,5 步是由 BIOS 的引導程序完成. 6,7,8,9,10步由MBR中的引導程序完成.