硬盤主引導(dǎo)扇區(qū)詳解_第1頁
硬盤主引導(dǎo)扇區(qū)詳解_第2頁
硬盤主引導(dǎo)扇區(qū)詳解_第3頁
硬盤主引導(dǎo)扇區(qū)詳解_第4頁
硬盤主引導(dǎo)扇區(qū)詳解_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、硬盤主引導(dǎo)扇區(qū)(MBR、DPT、DBR、BPB)詳解.txt “戀”是個很強悍的字。它的上半部取自“變 態(tài),的“變,下半部取自“變態(tài)”的“態(tài)”。硬盤主引導(dǎo)扇區(qū)(MBR、DPT、DBR、BPB)詳解引用:網(wǎng)上收集的資料,放到這里來學(xué)習(xí),這方面登山人大哥是高手,有空指點一下嘍硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導(dǎo)扇區(qū)(也叫主引導(dǎo)記錄MBR),該記錄占用512個 字節(jié),它用于硬盤啟動時將系統(tǒng)控制權(quán)轉(zhuǎn)給用戶指定的、在分區(qū)表中登記了某個操作系統(tǒng)分 區(qū)。MBR的內(nèi)容是在硬盤分區(qū)時由分區(qū)軟件(如FDISK)寫入該扇區(qū)的,MBR不屬于任何一個 操作系統(tǒng),不隨操作系統(tǒng)的不同而不同,即使不同,MBR也不會夾帶操作

2、系統(tǒng)的性質(zhì),具有 公共引導(dǎo)的特性。但安裝某些多重引導(dǎo)功能的軟件或LINUX的LILO時有可能改寫它;它先于 所有的操作系統(tǒng)被調(diào)入內(nèi)存并發(fā)揮作用,然后才將控制權(quán)交給活動主分區(qū)內(nèi)的操作系統(tǒng)(圖 一)。MBR由三部分構(gòu)成:主引導(dǎo)程序代碼,占446字節(jié)硬盤分區(qū)表DPT,占64字節(jié)主引導(dǎo)扇區(qū)結(jié)束標志AA55H一、硬盤的主引導(dǎo)程序代碼是從偏移0000H開始到偏移01BDH結(jié)束的446字節(jié);主引導(dǎo) 程序代碼包括一小段執(zhí)行代碼。啟動PC機時,系統(tǒng)首先對硬件設(shè)備進行測試,成功后進入 自舉程序INT 19H;然后讀系統(tǒng)磁盤0柱面、0磁頭、1扇區(qū)的主引導(dǎo)扇區(qū)MBR的內(nèi)容到內(nèi)存 指定單元0: 7C00首地址開始的區(qū)域

3、,并執(zhí)行MBR程序段。主引導(dǎo)代碼實現(xiàn)下列功能:1 .掃描分區(qū)表查找活動分區(qū);尋找活動分區(qū)的起始扇區(qū);將活動分區(qū)的引導(dǎo)扇區(qū)讀到內(nèi)存;執(zhí)行引導(dǎo)扇區(qū)的運行代碼。如果主引導(dǎo)代碼未完成這些功能,系統(tǒng)顯示下列錯誤信息:Invalid partition tableError loading operating systemMissing operating system二、硬盤分區(qū)表DPT是從偏移01BEH開始到偏移01FDH結(jié)束的64字節(jié)(圖二); 硬盤分區(qū)表分為四小部分,每一小部分表示一個分區(qū)的信息,占16字節(jié)。在這里我們可以看 出,硬盤的總分區(qū)數(shù)為什么不能大于4。其中可激活分區(qū)數(shù)不得大于3,擴展分區(qū)

4、數(shù)不得大于 1,當前活動分區(qū)數(shù)必須小于等于1。分區(qū)表的每一分區(qū)的第0個字節(jié)是自舉標志,其值為80H時,表示該分區(qū)是當前活動分 區(qū),可引導(dǎo),其值為00H時,表示該分區(qū)不可引導(dǎo)。第4字節(jié)是分區(qū)類型(圖三)。每一分區(qū)的第1至第3字節(jié)是該分區(qū)起始地址。其中第1字節(jié)為起始磁頭號(面號);第 2字節(jié)的低6位為起始扇區(qū)號,高2位則為起始柱面號的高2位;第3字節(jié)為起始柱面號的 低8位。因此,分區(qū)的起始柱面號是用10位二進制數(shù)表示的,最大值為210 = 1024,因邏 輯柱面號從0開始計,故柱面號的顯示最大值為1023。同理,用6位二進制數(shù)表示的扇區(qū)號 不會超過26 - 1 = 63;用8位二進制數(shù)表示的磁頭號

5、不會超過28 - 1 = 255。每一分區(qū) 的第5至第7字節(jié)表示分區(qū)的終止地址,各字節(jié)的釋義與第1至第3字節(jié)相同。這里我們假 設(shè)一種極端的情況:如果讓第5至第7字節(jié)的所有二進制位都取1,就獲得了柱面號、磁頭 號和扇區(qū)號所能表示的最大值,從而得到最大絕對扇區(qū)號為:1024 X 256 X 63 = 16,515,072這個扇區(qū)之前的所有物理扇區(qū)所包含的字節(jié)數(shù)為:16,515,072 X 512Bytes 8.46X 109Bytes = 8.46GB。由此可知硬盤的容量設(shè)計為什么會有8.4GB這一檔,分區(qū)表每一分區(qū)的第1至第3字節(jié) 以及第5至第7字節(jié)的數(shù)據(jù)結(jié)構(gòu)已經(jīng)不能滿足大于8.46GB的大容量

6、硬盤的需要??紤]到向下 兼容的需要,業(yè)界并未對從DOS時代就如此定義的硬盤分區(qū)表提出更改意見,否則改動所牽 涉的面太廣,會造成硬件和軟件發(fā)展上的一個斷層,幾乎無法被業(yè)界和用戶所接受。硬盤廠 商解決這一問題的方法是定義了新的INT 13服務(wù)擴展標準。新的INT 13服務(wù)擴展標準不再 使用操作系統(tǒng)的寄存器傳遞硬盤的尋址參數(shù),而使用存儲在操作系統(tǒng)內(nèi)存里的地址包。地址 包里保存的是64位LBA地址,如果硬盤支持LBA尋址,就把低28位直接傳遞給ATA接口, 如果不支持,操作系統(tǒng)就先把LBA地址轉(zhuǎn)換為CHS地址,再傳遞給ATA接口。通過這種方式, 能實現(xiàn)在ATA總線基礎(chǔ)上CHS尋址的最大容量是136.9

7、 GB,而LBA尋址的最大容量是137.4GB。 新的硬盤傳輸規(guī)范ATA 133規(guī)范又把28位可用的寄存器空間提高到48位,從而支持更大的 硬盤。分區(qū)表每一分區(qū)的第8至第11字節(jié)表示該分區(qū)的起始相對扇區(qū)數(shù)(即該扇區(qū)之前的絕對扇區(qū) 個數(shù)),高位在右,低位在左;第12至第15字節(jié)表示該分區(qū)實際占用的扇區(qū)數(shù),也是高位在 右,低位在左;分區(qū)表這類數(shù)據(jù)結(jié)構(gòu)的表達方式與機器中數(shù)據(jù)的實際存儲方式在順序上是一 致的,即低位在前,高位在后。因此,在從16進制向十進制作數(shù)值轉(zhuǎn)換時,需將字段中的 16進制數(shù)以字節(jié)為單位翻轉(zhuǎn)調(diào)位,用4個字節(jié)可以表示最大232個扇區(qū),即2TB=2048GB。系統(tǒng)在分區(qū)時,各分區(qū)都不允許

8、跨柱面,即均以柱面為單位,這就是通常所說的分區(qū)粒 度。在未超過8.4GB的分區(qū)上,C/H/S的表示方法和扇區(qū)數(shù)的表示方法所表示的分區(qū)大小是 一致的。超過8.4GB的/H/S/C 一般填充為FEH/FFH/FFH,即C/H/S所能表示的最大值;有時 候也會用柱面對1024的模來填充。不過這幾個字節(jié)是什么其實都無關(guān)緊要了。擴展分區(qū)中的每個邏輯驅(qū)動器都存在一個類似于MBR的擴展引導(dǎo)記錄(Extended Boot Record,EBR)(圖四)。擴展引導(dǎo)記錄包括一個擴展分區(qū)表和扇區(qū)結(jié)束標志55AA。一個邏輯驅(qū)動器中的引導(dǎo)扇區(qū) 一般位于相對扇區(qū)32或63。如果磁盤上沒有擴展分區(qū),那么就不會有擴展引導(dǎo)記

9、錄和邏輯 驅(qū)動器。第一個邏輯驅(qū)動器的擴展分區(qū)表中的第一項指向它自身的引導(dǎo)扇區(qū);第二項指向下 一個邏輯驅(qū)動器的EBR,如果不存在進一步的邏輯驅(qū)動器,第二項就不會使用,而被記錄成 一系列零。如果有附加的邏輯驅(qū)動器,那么第二個邏輯驅(qū)動器的擴展分區(qū)表的第一項會指向 它本身的引導(dǎo)扇區(qū),第二個邏輯驅(qū)動器的擴展分區(qū)表的第二項指向下一個邏輯驅(qū)動器的EBR。 擴展分區(qū)表的第三項和第四項永遠都不會被使用。擴展分區(qū)表項中的相對扇區(qū)數(shù)是從擴展分區(qū)開始的扇區(qū)到該邏輯驅(qū)動器中第一個扇區(qū)的 扇區(qū)數(shù);占用的扇區(qū)數(shù)是指組成該邏輯驅(qū)動器的扇區(qū)數(shù)目。有時候在磁盤的末尾會有剩余空間,由于分區(qū)是以1柱面的容量為分區(qū)粒度的,那么 如果磁

10、盤總空間不是整數(shù)個柱面的話,不夠一個柱面的剩下的空間就是剩余空間了,這部分 空間并不參與分區(qū),所以一般無法利用。三、主引導(dǎo)扇區(qū)的最后兩個字節(jié)(偏移1FEH和偏移1FFH),其值為AA55H,它表示該扇區(qū)是 個有效的引導(dǎo)扇區(qū),可用來引導(dǎo)硬磁盤系統(tǒng)。分區(qū)引導(dǎo)扇區(qū)DBR(DOS BOOT RECORD)是由FORMAT高級格式化命令寫到該扇區(qū)的內(nèi)容;DBR 是由硬盤的MBR裝載的程序段。DBR裝入內(nèi)存后,即開始執(zhí)行該引導(dǎo)程序段,其主要功能是 完成操作系統(tǒng)的自舉并將控制權(quán)交給操作系統(tǒng)。每個分區(qū)都有引導(dǎo)扇區(qū),但只有被設(shè)為活動 分區(qū)的DBR才會被MBR裝入內(nèi)存運行。DBR主要由下列幾個部分組成:跳轉(zhuǎn)指令,

11、占用3個字節(jié)的跳轉(zhuǎn)指令將跳轉(zhuǎn)至引導(dǎo)代碼。廠商標識和DOS版本號,該部分總共占用8個字節(jié)。BPB (BIOS Parameter Block, BIOS 參數(shù)塊)。操作系統(tǒng)引導(dǎo)程序。結(jié)束標志字,結(jié)束標志占用2個字節(jié),其值為AA55DBR中的內(nèi)容除了第5部分結(jié)束標志字固定不變之外,其余4個部分都是不確定的,其 內(nèi)容將隨格式化所用的操作系統(tǒng)版本及硬盤的邏輯盤參數(shù)的變化而變化。一、FAT32的分區(qū)引導(dǎo)扇區(qū)為了使加載文件的操作更加靈活,加上FAT32文件系統(tǒng)采用活動的FDT表,同時考慮 到引導(dǎo)程序的代碼量和為今后發(fā)展保留適當?shù)挠嗔?,F(xiàn)AT32文件系統(tǒng)分區(qū)引導(dǎo)扇區(qū)占據(jù)了 6 個扇區(qū),只有前3個扇區(qū)作為系統(tǒng)

12、的分區(qū)引導(dǎo)扇區(qū),其余3個扇區(qū)保留暫未使用。分區(qū)引導(dǎo) 扇區(qū)對于操作系統(tǒng)的啟動和磁盤文件的訪問具有至關(guān)重要的作用;引導(dǎo)程序代碼的損壞將導(dǎo) 致操作系統(tǒng)不能正常啟動,磁盤讀寫參數(shù)的破壞將造成存儲在磁盤上的文件不能正常讀寫。由于分區(qū)引導(dǎo)扇區(qū)的重要性,F(xiàn)AT32文件系統(tǒng)在在第一個分區(qū)引導(dǎo)扇區(qū)的6個扇區(qū)后的6 個扇區(qū)里保留了分區(qū)引導(dǎo)扇區(qū)的備份,在啟動時操作系統(tǒng)可以對兩份引導(dǎo)扇區(qū)進行比較,以 便選擇正確的引導(dǎo)扇區(qū)來引導(dǎo)系統(tǒng)。由于在磁盤正常工作過程中系統(tǒng)不再對引導(dǎo)扇區(qū)的程序 和數(shù)據(jù)進行修改,因此備份的分區(qū)引導(dǎo)扇區(qū)損壞的可能性非常小。分區(qū)引導(dǎo)扇區(qū)的第一個扇區(qū)(圖六)的前三個字節(jié)是一條跳轉(zhuǎn)指令,然后是8個字節(jié)長的O

13、EM ID (廠家標識)和版本號,其后是 簡稱為BPB的BIOS參數(shù)塊(BIOS Parameter Block)。對于FAT32其各部分的意義如下表: 偏移地址長度(字節(jié))意 義0BH2每個扇區(qū)的字節(jié)數(shù),常取512。0DH1每簇扇區(qū)數(shù);可以是1, 2, 4, 8, 16, 32, 64, 128,取決于文件系統(tǒng)格式及分區(qū)大小。0EH2為操作系統(tǒng)保留的扇區(qū)數(shù);FAT32時多為十進制的32, FAT16時為1,有的格式化工具可能 將它設(shè)為36或63。10H1FAT表的個數(shù);常取2。11H2在FAT16中存放系統(tǒng)根目錄中允許登記的目錄項個數(shù),F(xiàn)AT32中用于標注系統(tǒng)采用的是否為 FAT32文件系統(tǒng)

14、。其值為0000H表示磁盤使用FAT32文件系統(tǒng)。13H2值為00H,為保持兼容性而保留,未使用。15H1磁盤介質(zhì)標志,硬盤為F8。16H2未使用,值為00H。18H2每個磁道的扇區(qū)數(shù)。1AH2磁盤的磁頭數(shù)。1CH4分區(qū)前隱藏扇區(qū)的個數(shù)。20H4邏輯磁盤中的扇區(qū)總數(shù)。24H4每個FAT表所占的扇區(qū)數(shù)。28H2FAT表鏡像標志,值為0表示系統(tǒng)保存2份互為備份的FAT表,值為1表示系統(tǒng)僅保存1份FAT 表。2AH2文件系統(tǒng)的主次版本(保留)。2CH4磁盤根目錄的起始簇號。30H2文件系統(tǒng)參數(shù)的扇區(qū)號,通常位于引導(dǎo)扇區(qū)的下一個扇區(qū)。32H2備份分區(qū)引導(dǎo)扇區(qū)的邏輯扇區(qū)號。34H12保留,未使用。40H

15、1中斷13呼叫的預(yù)設(shè)值,指明訪問的設(shè)備;軟盤為00H,硬盤為80H。41H1用于中斷13呼叫。42H1磁盤讀寫參數(shù)擴展標志,其值為29H。43H4格式化時隨機產(chǎn)生的磁盤卷的序列號。47H11格式化時人工輸入的磁盤卷標號。52H8文件系統(tǒng)的標識號(FAT32)。從偏移0 x5A開始的數(shù)據(jù)為操作系統(tǒng)引導(dǎo)代碼。這是由偏移0 x00開始的跳轉(zhuǎn)指令所指向 的,此段指令在不同的操作系統(tǒng)上和不同的引導(dǎo)方式上,其內(nèi)容也是不同的。扇區(qū)的最后兩個字節(jié)存儲值為0 x55AA的DBR有效標志,對于其他的取值,系統(tǒng)將不會執(zhí) 行DBR相關(guān)指令。分區(qū)引導(dǎo)扇區(qū)的第2個扇區(qū)作為文件系統(tǒng)相關(guān)參數(shù)存儲標識扇區(qū)(圖七),除了保存扇區(qū)

16、的標識信息(RraA(00H)和rrAa(1E4H)外,還可能在偏移地址1E8H處存 儲了文件系統(tǒng)有關(guān)的信息。其中扇區(qū)偏移地址1E8H1EBH的4個字節(jié)存儲了邏輯磁盤中未使 用的簇數(shù),通常用于快速計算邏輯磁盤的剩余空間(典型的操作是在資源管理器狀態(tài)欄上列 出的可用磁盤空間參數(shù)),而1ECH1EFH 4個字節(jié)給出了邏輯盤中下一個可以分配給文件 使用的空閑簇的簇號,這樣操作系統(tǒng)可以不訪問FAT表就直接獲得磁盤剩余空間和可以分配 的簇號。分區(qū)引導(dǎo)扇區(qū)的第3個扇區(qū)則存儲了引導(dǎo)扇區(qū)的后一部分引導(dǎo)系統(tǒng)的程序代碼(圖八)。二、NTFS的分區(qū)引導(dǎo)扇區(qū)對于NTFS分區(qū)來說,分區(qū)引導(dǎo)扇區(qū)DBR只占用一個扇區(qū)(圖五

17、),并且在該分區(qū)的最后 一個扇區(qū)做了備份;NTFS的引導(dǎo)扇區(qū)也是完成引導(dǎo)和定義分區(qū)參數(shù),NTFS分區(qū)的引導(dǎo)扇區(qū)不 是分區(qū)的充分條件,它要求必須MFT中的系統(tǒng)記錄如$MFT等正常該分區(qū)才能正常訪問。其BPB 參數(shù)如下表所示:偏移地址長度(字節(jié))常用值意 義0 x0B20 x0002每扇區(qū)字節(jié)數(shù)0 x0D10 x08每簇扇區(qū)數(shù)0 x0E20 x0000保留扇區(qū)0 x1030 x000000總為00 x1320 x0000NTFS未使用,為00 x1510 xF8介質(zhì)描述0 x1620 x0000總為00 x1820 x3F00每磁道扇區(qū)數(shù)0 x1A20 xFF00磁頭數(shù)0 x1C40 x3F000

18、000隱藏扇區(qū)數(shù)0 x2040 x00000000NTFS未使用,為00 x2880 x4AF57F0000000000扇區(qū)總數(shù)0 x3080 x0400000000000000$MFT的邏輯簇號0 x3880 x54FF070000000000$MFT Mirr的邏輯簇號0 x4040 xF6000000每MFT記錄簇數(shù)0 x4440 x01000000每索引簇數(shù)0 x4880 x14A51B74C91B741C卷標0 x5040 x00000000檢驗和本帖最后由伐木者于2007-6-19 20:11編輯附件:您所在的用戶組無法下載或查看附件本文來自:創(chuàng)幻論壇 HYPERLINK UID5

19、5456帖子9783精華45積分47222威望0金幣0閱讀權(quán)限18性別男來自有樹砍 的地方 在線時間8494小時 注冊時間2004-5-16最后登錄2010-4-5查看詳細資料TOP【推薦】權(quán)威專家推薦漲停股票請點擊獲取 伐木者魏武王常所用論壇超級版主電腦家園區(qū)總版主積分47222威望0 注冊時間2004-5-16發(fā)短消息加為好友 沙發(fā)大中小發(fā)表于2007-6-17 20:55只看該作者How It WorksMaster Boot Record (主啟動記錄)本文是介紹MBR的反編譯程序的。MBR是放在硬盤的0柱面,0磁頭(head),1扇區(qū)的 那一段區(qū)。MBR是由FDISK程序創(chuàng)建的。所有

20、操作系統(tǒng)的FDISK程序都會創(chuàng)建類似的MBR 記錄。MBR是多個分區(qū)的前提,每個MBR中包括了四個分區(qū)表記錄。在您的計算機加電 之后,INT19被調(diào)用了。一般來說,INT19先從第一個軟盤驅(qū)動器中讀啟動扇區(qū)記錄。如果在軟盤中找到了啟動的扇區(qū),那么這個扇區(qū)的數(shù)據(jù)就被讀入到內(nèi)存的0000:7c00 地址上,INT19也跳到了這個地址上。但是,如果沒有在軟盤中找到這個扇區(qū)的話,INT 19就從第一個硬盤中去讀。同樣,如果成功的話,也會把MBR導(dǎo)入到相同的內(nèi)存地址 0000:7c00,INT19也會跳這個地址。MBR中包括的一段小程序是定出在分區(qū)表中的活動分 區(qū)。這樣的活動分區(qū)找到之,那個分區(qū)的啟動扇

21、區(qū)也被讀入到0000:7c00地址,MBR程序 也轉(zhuǎn)移到了這個地址。每一個操作系統(tǒng)都有固定的啟動扇區(qū)的格式。在啟動扇區(qū)里的程 序要能定出操作系統(tǒng)啟動程序的位置(或是核心本身,或者是一個啟動管理器),然后 將它讀入內(nèi)存。另:在Ctrl-Alt-Del鍵被按下時,INT19也會被調(diào)用。在大多數(shù)系統(tǒng)中,Ctrl-Alt-Del三?nbsp; 鍵同時按下表示熱啟動您的計算機,回到INT19調(diào)用前的狀態(tài)。數(shù)據(jù)存放的位置:MBR程序放在偏移為0000的位置。MBR消息放在偏移為008b的位置。分區(qū)表放在偏移為00be的位置。簽名放在偏移為00fe的位置。關(guān)于誰干什么事的總結(jié):如果一個活動分區(qū)找到了,這個分區(qū)的啟動數(shù)據(jù)被讀入到0000:7c00的位置,MBR程 序也跳到0000:7c00的位置。這段程序找到指向分區(qū)表的入口,入口描述的是這段分區(qū)是 怎樣被啟動的。啟動程序用這些數(shù)據(jù)來決定用來啟動的驅(qū)動器和這個驅(qū)動器分區(qū)在硬盤上 的位置。如果沒有找到這樣的活動分區(qū)入口,ROM BASIC會轉(zhuǎn)入INT 18的調(diào)用。所有其他的錯 誤導(dǎo)致系統(tǒng)的掛起,可以看HANG的標記。注意(非常之重要):1)活動分區(qū)入口的第一個字節(jié)的內(nèi)容是80h。在INT13被調(diào)用之前,這個字節(jié)被導(dǎo) 入到DL寄存器中。當INT13被調(diào)用時,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論