主引導扇區:硬盤的0柱面、0磁頭、1扇區(也叫主引導記錄MBR),大小為512Byte。
分區表(DPT):位於主引導分區,從偏移01BEH開始到偏移01FDH結束的64字節。
活動分區DBR:DBR(DOS BOOT RECORD,原意為DOS引導記錄),位於柱面0,磁頭1,扇區1(操作系統可以訪問的第一個扇區),即邏輯扇區0。DBR分為兩部分:DOS引導程序和BPB(BIOS參數塊)
一、硬盤的0柱面、0磁頭、1扇區稱為主引導扇區(也叫主引導記錄MBR),該記錄占用512個字節,它用於硬盤啟動時將系統控制權轉給用戶指定的、在分區表中登記了某個操作系統分區。MBR的內容是在硬盤分區時由分區軟件(如FDISK)寫入該扇區的,MBR不屬於任何一個操作系統,不隨操作系統的不同而不同,即使不同,MBR也不會夾帶操作系統的性質,具有公共引導的特性。但安裝某些多重引導功能的軟件或LINUX的LILO時有可能改寫它;它先於所有的操作系統被調入內存並發揮作用,然后才將控制權交給活動主分區內的操作系統。
MBR由三部分構成:
1.主引導程序代碼,占446字節
2.硬盤分區表DPT,占64字節
3.主引導扇區結束標志AA55H
標准 MBR 結構
地址 描述 長度
(字節)
Hex Oct Dec
0000 0000 0 代碼區 440
(最大 446)
01B8 0670 440 選用軟盤標志 4
01BC 0674 444 一般為空值; 0x0000 2
01BE 0676 446 標准 MBR 分區表規划
(四個16 byte的主分區表入口) 64
01FE 0776 510 55h MBR 有效標志:
0xAA55 2
01FF 0777 511 AAh
MBR, 總大小: 446 + 64 + 2 = 512
二、硬盤的主引導程序代碼是從偏移0000H開始到偏移01BDH結束的446字節;主引導程序代碼包括一小段執行代碼。啟動PC 機時,系統首先對硬件設備進行測試,成功后進入自舉程序INT 19H;然后讀系統磁盤0柱面、0磁頭、1扇區的主引導扇區MBR的內容到內存指定單元0:7C00 首地址開始的區域,並執行MBR程序段。
主引導代碼實現下列功能:
1.掃描分區表查找活動分區;
2.尋找活動分區的起始扇區;
3.將活動分區的引導扇區讀到內存;
4.執行引導扇區的運行代碼。
如果主引導代碼未完成這些功能,系統顯示下列錯誤信息:
Invalid partition table
Error loading operating system
Missing operating system
三、硬盤分區表DPT是從偏移01BEH開始到偏移01FDH結束的64字節;硬盤分區表分為四小部分,每一小部分表示一個分區的信息,占16字節。在這里我們可以看出,硬盤的總分區數*(主分區+擴展分區)為什么不能大於4。擴展分區數不得大於1,當前活動分區數必須小於等於 1。這里有下面幾點需要注意:
1.Windows系統默認情況下,一般都是只划分一個主分區給系統,剩余的部分全部划入擴展分區。如果存在多個主分區,那么除活動主分區外,其余分區均不可見。(2000/NT之后,在磁盤管理器中可見)
2.在MBR分區表中最多4個主分區或者3個主分區+1個擴展分區,也就是說擴展分區只能有一個,然后可以再細分為多個邏輯分區。
3.在Linux系統中,硬盤分區命名為sda1-sda4或者hda1-hda4(其中a表示硬盤編號可能是a、b、c等等)。在MBR硬盤中,分區號1-4是主分區(或者擴展分區),邏輯分區號只能從5開始。
4.在MBR分區表中,一個分區最大的容量為2T,且每個分區的起始柱面必須在這個disk的前2T內。你有一個3T的硬盤,根據要求你至少要把它划分為2個分區,且最后一個分區的起始扇區要位於硬盤的前2T空間內。如果硬盤太大則必須改用GPT。
硬盤分區結構信息
偏移 長度(字節) 意義
00H 1 分區狀態:00-->非活動分區;80--> 活動分區;
其它數值沒有意義
01H 1 分區起始磁頭號(HEAD),用到全部8位
02H 2 分區起始扇區號(SECTOR),占據02H的位0-5;
該分區的起始磁柱號(CYLINDER),占據
02H的位6-7和03H的全部8位
04H 1 文件系統標志位,如82--> Linux Native分區 83--> Linux Swap 分區
05H 1 分區結束磁頭號(HEAD),用到全部8位
06H 2 分區結束扇區號(SECTOR),占據06H的位0-5;
該分區的起始磁柱號(CYLINDER),占據
06H的位6-7和07H的全部8位
08H 4 分區起始絕對扇區
0CH 4 分區總的扇區數
四、主引導扇區的最后兩個字節(偏移1FEH和偏移1FFH),其值為AA55H,如果這兩個標志被修改(有些病毒就會修改這兩個標志),則系統引導時將報告找不到有效的分區表。
五、活動分區DBR
DBR(Dos Boot Record)原意為DOS引導記錄,通常位於磁盤0磁道1柱面1扇區(操作系統可以訪問的第一個扇區),其邏輯扇區號為0。
DBR分為兩個部分:
1) DOS引導程序
DOS引導程序的主要任務是當MBR將系統控制權交給它時,判斷本分區根目錄前兩個文件是不是操作系統的引導文件(即IO.SYS和MSDOS.SYS),如果確定存在,就把它讀入內存,並把控制權交給它。
2) BPB(BIOS Parameter Block ,BIOS參數塊)
BPB用來描述本DOS分區的磁盤信息,它位於DBR偏移0BH處,共13字節。
它的記錄包括本分區的起始扇區、結束扇區、文件存儲格式、硬盤介質描述符、根目錄大小、FAT個數,分配單元的大小等重要參數。
以上僅以DOS(FAT16)分區為例,目前DOS已如他日黃花,現在的引導程序已經被更新更先進的引導程序所代替,但不管怎樣的引導程序,仍與DOS引導程序處於相同位置。
所以現在的0磁道1柱面1扇區這個位置,准確地說不能叫作DBR,而應該改稱為 OBR(OS Boot Record),即操作系統引導扇區, OBR(DBR)是高級格式化程序產生的,如FORMAT、PM、、DISKPART以及Windows的磁盤管理器等。
注:使用WinHex可以讀取磁盤的引導扇區數據。
參考資料:
硬盤主引導扇區、分區表和分區引導扇區(MBR、DPT、DBR、BPB)詳解(一):
http://hi.baidu.com/hell74111/blog/item/c604ca83128b0099f603a6cd.html/cmtid/6eee1267a74a5128ab184c19
主引導扇區:http://zh.wikipedia.org/zh-cn/主引導扇區
什么是MBR/DPT/DBR/BPB?:http://timjs.blog.hexun.com/28664122_d.html
————————————————
版權聲明:本文為CSDN博主「廖子鴻」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lanxinju/article/details/5714124