資源描述:
《硬盤主引導扇區(qū)(mbr、dpt、dbr、bpb)詳解》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、硬盤主引導扇區(qū)(MBR、DPT、DBR、BPB)詳解.txt“戀”是個很強悍的字。它的上半部取自“變態(tài)”的“變”,下半部取自“變態(tài)”的“態(tài)”。硬盤主引導扇區(qū)(MBR、DPT、DBR、BPB)詳解引用:網(wǎng)上收集的資料,放到這里來學習,這方面登山人大哥是高手,有空指點一下嘍硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導扇區(qū)(也叫主引導記錄MBR),該記錄占用512個字節(jié),它用于硬盤啟動時將系統(tǒng)控制權轉(zhuǎn)給用戶指定的、在分區(qū)表中登記了某個操作系統(tǒng)分區(qū)。MBR的內(nèi)容是在硬盤分區(qū)時由分區(qū)軟件(如FDISK)寫入該扇區(qū)的,MBR不屬于任何一個操作系統(tǒng),不隨操作系統(tǒng)的不同而不同,即
2、使不同,MBR也不會夾帶操作系統(tǒng)的性質(zhì),具有公共引導的特性。但安裝某些多重引導功能的軟件或LINUX的LILO時有可能改寫它;它先于所有的操作系統(tǒng)被調(diào)入內(nèi)存并發(fā)揮作用,然后才將控制權交給活動主分區(qū)內(nèi)的操作系統(tǒng)(圖一)。 MBR由三部分構成: 1.主引導程序代碼,占446字節(jié) 2.硬盤分區(qū)表DPT,占64字節(jié) 3.主引導扇區(qū)結束標志AA55H 一、硬盤的主引導程序代碼是從偏移0000H開始到偏移01BDH結束的446字節(jié);主引導程序代碼包括一小段執(zhí)行代碼。啟動PC機時,系統(tǒng)首先對硬件設備進行測試,成功后進入自舉程序INT19H;然后讀系統(tǒng)磁盤0柱面、0
3、磁頭、1扇區(qū)的主引導扇區(qū)MBR的內(nèi)容到內(nèi)存指定單元0:7C00首地址開始的區(qū)域,并執(zhí)行MBR程序段。 主引導代碼實現(xiàn)下列功能: 1.掃描分區(qū)表查找活動分區(qū); 2.尋找活動分區(qū)的起始扇區(qū); 3.將活動分區(qū)的引導扇區(qū)讀到內(nèi)存; 4.執(zhí)行引導扇區(qū)的運行代碼?! ∪绻饕龑Тa未完成這些功能,系統(tǒng)顯示下列錯誤信息: Invalidpartitiontable Errorloadingoperatingsystem Missingoperatingsystem二、硬盤分區(qū)表DPT是從偏移01BEH開始到偏移01FDH結束的64字節(jié)(圖二);硬盤分區(qū)表分
4、為四小部分,每一小部分表示一個分區(qū)的信息,占16字節(jié)。在這里我們可以看出,硬盤的總分區(qū)數(shù)為什么不能大于4。其中可激活分區(qū)數(shù)不得大于3,擴展分區(qū)數(shù)不得大于1,當前活動分區(qū)數(shù)必須小于等于1。 分區(qū)表的每一分區(qū)的第0個字節(jié)是自舉標志,其值為80H時,表示該分區(qū)是當前活動分區(qū),可引導,其值為00H時,表示該分區(qū)不可引導?! 〉?字節(jié)是分區(qū)類型(圖三)?! ∶恳环謪^(qū)的第1至第3字節(jié)是該分區(qū)起始地址。其中第1字節(jié)為起始磁頭號(面號);第2字節(jié)的低6位為起始扇區(qū)號,高2位則為起始柱面號的高2位;第3字節(jié)為起始柱面號的低8位。因此,分區(qū)的起始柱面號是用10位二進制數(shù)表示的
5、,最大值為2^10=1024,因邏輯柱面號從0開始計,故柱面號的顯示最大值為1023。同理,用6位二進制數(shù)表示的扇區(qū)號不會超過2^6-1=63;用8位二進制數(shù)表示的磁頭號不會超過2^8-1=255。每一分區(qū)的第5至第7字節(jié)表示分區(qū)的終止地址,各字節(jié)的釋義與第1至第3字節(jié)相同。這里我們假設一種極端的情況:如果讓第5至第7字節(jié)的所有二進制位都取1,就獲得了柱面號、磁頭號和扇區(qū)號所能表示的最大值,從而得到最大絕對扇區(qū)號為: 1024×256×63=16,515,072 這個扇區(qū)之前的所有物理扇區(qū)所包含的字節(jié)數(shù)為: 16,515,072×512Bytes≈8.
6、46×109Bytes=8.46GB?! ∮纱丝芍脖P的容量設計為什么會有8.4GB這一檔,分區(qū)表每一分區(qū)的第1至第3字節(jié)以及第5至第7字節(jié)的數(shù)據(jù)結構已經(jīng)不能滿足大于8.46GB的大容量硬盤的需要??紤]到向下兼容的需要,業(yè)界并未對從DOS時代就如此定義的硬盤分區(qū)表提出更改意見,否則改動所牽涉的面太廣,會造成硬件和軟件發(fā)展上的一個斷層,幾乎無法被業(yè)界和用戶所接受。硬盤廠商解決這一問題的方法是定義了新的INT13服務擴展標準。新的INT13服務擴展標準不再使用操作系統(tǒng)的寄存器傳遞硬盤的尋址參數(shù),而使用存儲在操作系統(tǒng)內(nèi)存里的地址包。地址包里保存的是64位LBA地址
7、,如果硬盤支持LBA尋址,就把低28位直接傳遞給ATA接口,如果不支持,操作系統(tǒng)就先把LBA地址轉(zhuǎn)換為CHS地址,再傳遞給ATA接口。通過這種方式,能實現(xiàn)在ATA總線基礎上CHS尋址的最大容量是136.9GB,而LBA尋址的最大容量是137.4GB。新的硬盤傳輸規(guī)范ATA133規(guī)范又把28位可用的寄存器空間提高到48位,從而支持更大的硬盤。分區(qū)表每一分區(qū)的第8至第11字節(jié)表示該分區(qū)的起始相對扇區(qū)數(shù)(即該扇區(qū)之前的絕對扇區(qū)個數(shù)),高位在右,低位在左;第12至第15字節(jié)表示該分區(qū)實際占用的扇區(qū)數(shù),也是高位在右,低位在左;分區(qū)表這類數(shù)據(jù)結構的表達方式與機器中數(shù)據(jù)的
8、實際存儲方式在順序上是一致的,即低位在前,高位在后。