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