MBR 硬盤 內存.doc_第1頁
MBR 硬盤 內存.doc_第2頁
MBR 硬盤 內存.doc_第3頁
MBR 硬盤 內存.doc_第4頁
MBR 硬盤 內存.doc_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、mbr、dpt、dbr、bpb 詳解   硬盤主引導扇區(qū) = 硬盤主引導記錄(mbr)+ 硬盤分區(qū)表(dpt)  物理位置:0面 0道 1扇區(qū)(clindyer 0, side 0, sector 1)  大小: 512字節(jié) 0  mbr 446字節(jié)(0000-01bd)  dpt 64字節(jié)(01be-01fd)  結束標志 2字節(jié)(55 aa)  功能:mbr通過檢查dpt分區(qū)信息來引導系統(tǒng)跳轉至dbr;  讀取: 使用norton diskedit,在object菜單中選擇drive >phys

2、ical disk >hard disk,然后在object菜單中選擇disk partition table即可讀取,并使用tools菜單中的write object to選項存入指定文件備份;  寫入: 使用norton diskedit,在object菜單中選擇drive >floopy disk,選擇備份的dpt文件,然后使用tools菜單中的write object to >physical sector選項寫入001 (clindyer 0, side 0, sector 1);  詳解:  000h-08ah mbr啟動程序(尋找開

3、機分區(qū))  08bh-0d9h mbr啟動字符串  0dah-1bch 保留("0")  1beh-1fdh 硬盤分區(qū)表  1feh-1ffh 結束標志(55aa)    活動分區(qū)主引導扇區(qū)(dbr)  物理位置:1面 0道 1扇區(qū)(clindyer 0, side 1, sector 1)  大?。?#160; fat16 1扇區(qū) 512字節(jié)  fat32 3扇區(qū) 1536字節(jié)  功能:包含機器cmos等信息(0000-0059),核對該信息并引導指定的系統(tǒng)文件,

4、如 ntldr等;  讀取: 使用norton diskedit,在object菜單中選擇drive > logical disk > disk c,然后,在object菜單中選擇boot record即可讀取,并使用tools菜單中的write object to選項存入指定文件備份;  寫入: 使用norton diskedit,在object菜單中選擇drive > floopy disk,選擇備份的dbr文件,然后使用tools菜單中的write object to > physical sector選項寫入 011 (clindyer 0,

5、 side 1, sector 1);  詳解:  000h-002h 3 byte的跳轉指令(去啟動程序, 跳到03eh)  003h-03dh bios參數區(qū)  03eh-19dh dos啟動程序  19eh-1e5h 開機字符串  1e6h-1fdh 文件名(io.sys, msdos.sys)  1feh-1ffh 結束標記(55aa)    硬盤的數據結構  初買來的硬盤是沒有辦法使用的,還要將它分區(qū),格式化(我們這里所說的格式化是高級格式化,格式化分為高級格式化和

6、低級格式化,低級格式的目的是在將磁盤格式化分成磁道、扇區(qū)、柱面),然后再安裝上操作系統(tǒng)才可以使用。就拿windows9x/me 來說,我們一般要將硬盤格式化成mbr(主引導扇區(qū))、dbr(分區(qū)引導記錄)、fat(分區(qū)表)、dir(目錄區(qū))、和data(數據區(qū))等五部分(其中只有主引導扇區(qū)是唯一的,其它的隨分區(qū)數增加而增加)。  當我們刪除一個文件(無論是從回收站里刪除還是按下shift+delete),其實文件并未真正的從磁盤里刪除,只是在文件上做一個標記而已(在目錄區(qū)里將第一個字符改成“e5”,在數據區(qū)里,把文件首字節(jié)改為“0e”,標記這個文件占的空間已釋放, 就算格式化也是只是重

7、寫文件分配表(fat)而已,只有當寫入一個文件到硬盤上,并且把這個空間占用覆蓋時,這個文件才真正的刪除了,如果沒有補占用,還是有很大希望恢復的。 首先有必要說一下一些專業(yè)名詞: 磁頭:一張硬盤有兩個盤面,每一個盤面都有一個讀寫磁頭。將盤面進行編號,起始號為0,磁頭號的編號和盤面的編號相同。 磁道:當磁頭停在一個位置,盤片旋轉一周,磁頭就在盤的表面畫出一個圓形軌跡,這個圓形軌跡就稱為磁道,隨著磁頭的移動,磁盤就被畫出許多個封閉的同心圓磁道。磁道從盤片的外緣開始編號,起始號為0。 柱面:硬盤一般由很多個盤面構成,每個盤面都補劃分成相等的磁道,每個盤面的相同磁道就形成一個圓柱,這就是硬盤的柱面。硬盤

8、有多少個磁道就有多少個柱面,柱面編號和磁道編號相同。 扇區(qū):磁盤上每個磁道被劃分成很多個弧段,弧段之間有間隔,這些弧段稱為扇區(qū)。扇區(qū)也進行編號,起始號為1,每個磁道被除分成63個扇區(qū),每個扇區(qū)可存儲的數據是512個字節(jié)。實際現(xiàn)在的大容量硬盤,為了提高磁介質的利用率,使用了等密度的存儲方式,也就是說外圈磁道扇區(qū)數比內圈的多,為了與老的硬盤制式相兼容,由硬盤控制器的驅動程序將參數進行轉換。 簇:扇區(qū)是磁盤最小的物理存儲單元,但由于操作系統(tǒng)無法對數目眾多的扇區(qū)進行尋址,所以操作系統(tǒng)就將相鄰的扇區(qū)組合在一起,形成一個簇,然后再對簇進行管理。每個簇可以包括2、4、8、16、32或64個扇區(qū)(到底多少個扇

9、區(qū),根據具體文件分配格式而定)。顯然,簇是操作系統(tǒng)所使用的邏輯概念,而非磁盤的物理特性。  為了更好地管理磁盤空間和更高效地從硬盤讀取數據,操作系統(tǒng)規(guī)定一個簇中只能放置一個文件的內容,因此文件所占用的空間,只能是簇的整數倍;而如果文件實際大小小于一簇,它也要占一簇的空間。所以,一般情況下文件所占空間要略大于文件的實際大小,只有在少數情況下,即文件的實際大小恰好是簇的整數倍時,文件的實際大小才會與所占空間完全一致。 注意:磁頭(head),柱面(cylinder)的編號都是從0開始的,而扇區(qū)(sector)編號是從1開始的。 chs:在對扇區(qū)進行編號計算的過程中,是沿著柱面(cylin

10、der)->磁頭(head)->扇區(qū)(sector)進行的,這就是物理扇區(qū)的chs(柱面數、磁頭數、扇區(qū)數)尋址方式。有了chs參數,就可以很容易的計算出硬盤的容量,只要將這三個想乘得到總的扇區(qū)數,再乘上512就是硬盤容量。 mbr(主引導記錄) mbr(main boot recore)既主引導記錄 扇區(qū),它位于磁盤的0柱面0磁頭1扇區(qū) 。它總共512字節(jié),前446字節(jié)為一段引導程序,主要任務是檢查分區(qū)表是否正確,以及確定哪一個分區(qū)是操作系統(tǒng)可引導,并且在程序結束時把該分區(qū)的啟動程序(例如ms-dos的io.sys)調入內存,交予控制權。后面的64字節(jié)為分區(qū)表(disk part

11、ition table,dpt)分區(qū)表大多以80h或00h為開始標志,以“55aa”為結束標志,共四個,每個16字節(jié),結束標志位與本扇區(qū)的最末端。 注意:主引導記錄(mbr)不依賴于任何操作系統(tǒng),也就是與操作系統(tǒng)無關。 以下是mbr的具體圖解: dbr(分區(qū)引導記錄)  dbr(分區(qū)引導記錄)硬盤引導記錄只有一個,而分區(qū)引導(dos boot record)記錄不只一個,每一個邏輯驅動器都有一個分區(qū)引導記錄(存儲在邏輯驅動器的 開始處的第一個扇區(qū))分區(qū)引導記錄主要由以下四部分組成:  1、 bios參數記錄塊bpb(bios parameter block)表,它的主要作用

12、是:記錄了硬盤容量的大小、fat(文件分配表)的位置和大小、fdt(文件目錄表)的位置和大小。  2、 磁盤標志記錄表。 3、 分區(qū)引導記錄代碼區(qū)(引導程序):引導程序的作用是判斷本分區(qū)根目錄下的前兩個文件是否為操作系統(tǒng)的引導文件(例如dos的io.sys msdos.sys),如果是就把它讀入內存并交予控制權 4、 結束標志“55aa”:對扇區(qū)進行搜索,用于尋找分區(qū)引導記錄所在扇區(qū)地址的依據。 下面例舉目前常用的fat32分區(qū)格式的bpb表,共53字節(jié):  fat(文件分配表)   文件分配表(file allocation table),記

13、錄的是磁盤中每個簇的的使用情況,其大小由本分區(qū)的大小及文件分配單元的大小決定,由于fat對于文件管理非常重要,所以一開始設計者們就為它做了一個備份,所以有兩個fat,一直廷續(xù)到現(xiàn)在。  當操作系統(tǒng)或應用程序,將數據寫入磁盤時,必須在磁盤上找到相應的可以利用的扇區(qū);反過來,要將數據從磁盤中讀出時,也要在磁盤上找到已經存儲了相應數據的扇區(qū)的地址,文件分配表fat就是記錄扇區(qū)地址的。  因為磁盤的扇區(qū)非常多,如果將每個扇區(qū)都記錄在fat中必然會導致fat體積的龐大,查找時的效率會低下,為了解決這個問題,采用的將扇區(qū)分組的方法,這個分組的過程稱為扇區(qū)的分簇。  當使用了一

14、個新格式化的邏輯驅動器時,文件數據存放的簇號是連續(xù)的,使用一段時間后,由于經常對文件進行刪除、復制和修改等重要操作,每個文件的簇號就不一定連續(xù)了,為了確保取文件時,能夠檢索到所以連續(xù)或不連續(xù)的扇區(qū)地址,文件分配表采用了“簇鏈”的記錄方式。  、當需要從磁盤上讀取一個文件時,首先從文件目錄表(fdt)中找到該文件的目錄登記項。繼而從目錄登記項的有關字段,查到分配給該文件的第一個簇號(在fat里查),根據第一個簇號,可以計算出兩組數據。  1、一組數據記錄了文件在數據區(qū)(data)里的第一簇扇區(qū)的首地址,第一簇扇區(qū)的首地址是開始數據是連續(xù)存放的,連續(xù)存放多少個扇區(qū)由分區(qū)格式,和

15、分區(qū)大小決定。下表列它們的對應關系: fat16 fat32  分區(qū)大小/mb 簇大小/kb 扇區(qū)數 分區(qū)大小/mb 簇大小/kb 扇區(qū)數  256-511 8 16 0.512-8 4 8  512-1023 16 32 8-16 8 16  1024-2047 32 64 16-32 16 32  2、另外一組數據指出了fat表內簇登記項的地址,如果其值是結束標志“ffffh"(fat16格式)或ffffff0fh(fat32格式),說明文件至此結束。如果不是結束標志,則該登記項的值為第二個簇號,據此又可以計算出兩組數據,繼而確定

16、文件在第數據區(qū)里第二簇扇區(qū)的首地址和fat內第二個簇登記項的地址.  繼續(xù)重復上面的過程,就可以得到data區(qū)里全部數據,以及文件在fat表里所有簇登記項的地址。 、當需要在硬盤上建立文件時,首先順序檢索fat表,找到第一個可用簇,可用簇登記項的地址為0000h(fat16格式)或00000000h(fat32格式),將該簇作為起始簇,寫入文件目錄表(fdt)的相關登記項的起始簇字段中,然后繼續(xù)檢索后面的可用簇,找到后將其寫入第一個可用簇項內。  按照上過程進行下去,將滿足文件長度所需的簇全部找到。使每一個簇項的值指向下一個所需簇項,在最后的簇登記項內寫入結束標志ffffh

17、或ffffff0fh,于是一條能夠檢索整個文件的“簇鏈”就形成了。  當需要對一個文件進行擴展時,先檢索fat表,找到一個可用簇。將簇項的內容置為結束標志,并將文件原來的最后簇項改為指向此可用簇,依次類推,直到滿足文件擴展要求。  、當刪除文件時,除了將目錄登記項的第一個字節(jié)改為“e5h”,還要在fat表的“簇鏈”中對應的簇項全部清零,這些被清零的簇項又可以供給其它的文件使用,不過在刪除文件結束以后目錄登記項的其它字段仍然保存完好,只是文件名的第一個字節(jié)變成了“e5h",并且文件存儲在扇區(qū)中的所有數據依然存在。這時,只要fat表中被清零的簇項沒有被新的文件使用,就

18、可以運行相關的軟件來恢復被刪除的文件。 硬盤的系統(tǒng)信息被破壞時,一般情況下fat被破壞的可能性較小,特別是第二個fat表一般能夠保存完好,因為第二個fat表很少受到應用程序的訪問。 每個fat表的前兩個字節(jié)都是:"f8ff" 文件目錄表(fdt)   操作系統(tǒng)為了管理磁盤上的目錄和文件,在特定的扇區(qū)上建立了一個文件目錄表。 fat16格式的fdt表占用32個扇區(qū),扇區(qū)地址緊跟在第二個fat后,fat32分區(qū)格式沒有固定的fdt表,在第二個fdt表之后就是數據區(qū)data  兩種分區(qū)格式都使用一個長32b的“目錄登記項”來說明目錄或文件的有關特性,

19、fat16的目錄登記項放在fdt里,fat32的目錄登記項放在數據區(qū)里,下表列出了目錄登記項的有關內容: 位移 字節(jié) 內容說明  00h 8 文件名  08h 3 擴展名  0bh 2 屬性  0ch 10 系統(tǒng)保留  16h 2 建立或最后修改的時間  18h 2 建立或最后修改的日期  1ah 2 起始簇號  1ch 4 文件長度  若文件名不足8個字節(jié)則用空格補充。 數據區(qū)(data)  數據區(qū)里所有的扇區(qū)都劃分為以簇為單位的邏輯結構,每一個簇在fat里都有相應的簇登記項與之對應。

20、0;  硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導扇區(qū)(也叫主引導記錄mbr),該記錄占用512個字節(jié),它用于硬盤啟動時將系統(tǒng)控制權轉給用戶指定的、在分區(qū)表中登記了某個操作系統(tǒng)分區(qū)。mbr的內容是在硬盤分區(qū)時由分區(qū)軟件(如fdisk)寫入該扇區(qū)的,mbr不屬于任何一個操作系統(tǒng),不隨操作系統(tǒng)的不同而不同,即使不同,mbr也不會夾帶操作系統(tǒng)的性質,具有公共引導的特性。但安裝某些多重引導功能的軟件或linux的lilo時有可能改寫它;它先于所有的操作系統(tǒng)被調入內存并發(fā)揮作用,然后才將控制權交給活動主分區(qū)內的操作系統(tǒng)(圖一)。 圖一.jpg (194.55 kb) 硬盤mbr圖 200

21、6-11-13 03:42 mbr由三部分構成: 1主引導程序代碼,占446字節(jié) 2硬盤分區(qū)表dpt,占64字節(jié) 3主引導扇區(qū)結束標志aa55h  一、硬盤的主引導程序代碼是從偏移0000h開始到偏移01bdh結束的446字節(jié);主引導程序代碼包括一小段執(zhí)行代碼。啟動pc 機時,系統(tǒng)首先對硬件設備進行測試,成功后進入自舉程序int 19h;然后讀系統(tǒng)磁盤0柱面、0磁頭、1扇區(qū)的主引導扇區(qū)mbr的內容到內存指定單元0:7c00 首地址開始的區(qū)域,并執(zhí)行mbr程序段。 主引導代碼實現(xiàn)下列功能: 1掃描分區(qū)表查找活動分區(qū); 2尋找活動分區(qū)的起始扇區(qū); 3將活動分區(qū)的引導扇區(qū)讀到內存; 4執(zhí)行

22、引導扇區(qū)的運行代碼。 如果主引導代碼未完成這些功能,系統(tǒng)顯示下列錯誤信息: invalid partition table error loading operating system missing operating system二、硬盤分區(qū)表dpt是從偏移01beh開始到偏移01fdh結束的64字節(jié)(圖二);硬盤分區(qū)表分為四小部分,每一小部分表示一個分區(qū)的信息,占16字節(jié)。在這里我們可以看出,硬盤的總分區(qū)數為什么不能大于4。其中可激活分區(qū)數不得大于3,擴展分區(qū)數不得大于1,當前活動分區(qū)數必須小于等于1。 圖二.jpg (26.13 kb) 硬盤分區(qū)表dpt 2006-11-13 03:4

23、6 分區(qū)表的每一分區(qū)的第0個字節(jié)是自舉標志,其值為80h時,表示該分區(qū)是當前活動分區(qū),可引導,其值為00h時,表示該分區(qū)不可引導。 第4字節(jié)是分區(qū)類型(圖三)。 圖三.jpg (70.05 kb) 分區(qū)類型標志 2006-11-13 03:46 每一分區(qū)的第1至第3字節(jié)是該分區(qū)起始地址。其中第1字節(jié)為起始磁頭號(面號);第2字節(jié)的低6位為起始扇區(qū)號,高2位則為起始柱面號的高2位;第3字節(jié)為起始柱面號的低8位。因此,分區(qū)的起始柱面號是用10位二進制數表示的,最大值為210 = 1024,因邏輯柱面號從0開始計,故柱面號的顯示最大值為1023。同理,用6位二進制數表示的扇區(qū)號不會超過26 - 1

24、= 63;用8位二進制數表示的磁頭號不會超過28 - 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é)數為: 16,515,072 × 512bytes 8.46gb。 由此可知硬盤的容量設計為什么會有8.4gb這一檔,分區(qū)表每一分區(qū)的第1至第3字節(jié)以及第5至第7字節(jié)的數據結構已經

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

26、大容量是136.9 gb,而lba尋址的最大容量是137.4gb。新的硬盤傳輸規(guī)范ata 133規(guī)范又把28位可用的寄存器空間提高到48位,從而支持更大的硬盤。  分區(qū)表每一分區(qū)的第8至第11字節(jié)表示該分區(qū)的起始相對扇區(qū)數(即該扇區(qū)之前的絕對扇區(qū)個數),高位在右,低位在左;第12至第15字節(jié)表示該分區(qū)實際占用的扇區(qū)數,也是高位在右,低位在左;分區(qū)表這類數據結構的表達方式與機器中數據的實際存儲方式在順序上是一致的,即低位在前,高位在后。因此,在從16進制向十進制作數值轉換時,需將字段中的16進制數以字節(jié)為單位翻轉調位,用4個字節(jié)可以表示最大232個扇區(qū),即2tb=2048gb

27、。 系統(tǒng)在分區(qū)時,各分區(qū)都不允許跨柱面,即均以柱面為單位,這就是通常所說的分區(qū)粒度。在未超過8.4gb的分區(qū)上,c/h/s的表示方法和扇區(qū)數的表示方法所表示的分區(qū)大小是一致的。超過8.4gb的/h/s/c一般填充為feh/ffh/ffh,即c/h/s所能表示的最大值;有時候也會用柱面對1024的模來填充。不過這幾個字節(jié)是什么其實都無關緊要了。 擴展分區(qū)中的每個邏輯驅動器都存在一個類似于mbr的擴展引導記錄(extended boot record,ebr)(圖四)。 圖四.jpg (25.05 kb) 擴展分區(qū)引導記錄ebr 2006-11-13 03:48 擴展引導記錄包括一個擴展分區(qū)表和扇

28、區(qū)結束標志55aa。一個邏輯驅動器中的引導扇區(qū)一般位于相對扇區(qū)32或63。如果磁盤上沒有擴展分區(qū),那么就不會有擴展引導記錄和邏輯驅動器。第一個邏輯驅動器的擴展分區(qū)表中的第一項指向它自身的引導扇區(qū);第二項指向下一個邏輯驅動器的ebr,如果不存在進一步的邏輯驅動器,第二項就不會使用,而被記錄成一系列零。如果有附加的邏輯驅動器,那么第二個邏輯驅動器的擴展分區(qū)表的第一項會指向它本身的引導扇區(qū),第二個邏輯驅動器的擴展分區(qū)表的第二項指向下一個邏輯驅動器的ebr。擴展分區(qū)表的第三項和第四項永遠都不會被使用。 擴展分區(qū)表項中的相對扇區(qū)數是從擴展分區(qū)開始的扇區(qū)到該邏輯驅動器中第一個扇區(qū)的扇區(qū)數;占用的扇區(qū)數是指

29、組成該邏輯驅動器的扇區(qū)數目。  有時候在磁盤的末尾會有剩余空間,由于分區(qū)是以1柱面的容量為分區(qū)粒度的,那么如果磁盤總空間不是整數個柱面的話,不夠一個柱面的剩下的空間就是剩余空間了,這部分空間并不參與分區(qū),所以一般無法利用。 三、主引導扇區(qū)的最后兩個字節(jié)(偏移1feh和偏移1ffh),其值為aa55h,它表示該扇區(qū)是個有效的引導扇區(qū),可用來引導硬磁盤系統(tǒng)。分區(qū)引導扇區(qū)dbr(dos boot record)是由format高級格式化命令寫到該扇區(qū)的內容;dbr是由硬盤的mbr裝載的程序段。dbr裝入內存后,即開始執(zhí)行該引導程序段,其主要功能是完成操作系統(tǒng)的自舉并將控制權交給操作系統(tǒng)。每

30、個分區(qū)都有引導扇區(qū),但只有被設為活動分區(qū)的dbr才會被mbr裝入內存運行。 dbr主要由下列幾個部分組成: 1跳轉指令,占用3個字節(jié)的跳轉指令將跳轉至引導代碼。 2廠商標識和dos版本號,該部分總共占用8個字節(jié)。 3bpb(bios parameter block, bios 參數塊)。 4操作系統(tǒng)引導程序。 5結束標志字,結束標志占用2個字節(jié),其值為aa55 dbr中的內容除了第5部分結束標志字固定不變之外,其余4個部分都是不確定的,其內容將隨格式化所用的操作系統(tǒng)版本及硬盤的邏輯盤參數的變化而變化。    一、fat32的分區(qū)引導扇區(qū) 為了使加載文件的

31、操作更加靈活,加上fat32文件系統(tǒng)采用"活動"的fdt表,同時考慮到引導程序的代碼量和為今后發(fā)展保留適當的余量,fat32文件系統(tǒng)分區(qū)引導扇區(qū)占據了6個扇區(qū),只有前3個扇區(qū)作為系統(tǒng)的分區(qū)引導扇區(qū),其余3個扇區(qū)保留暫未使用。分區(qū)引導扇區(qū)對于操作系統(tǒng)的啟動和磁盤文件的訪問具有至關重要的作用;引導程序代碼的損壞將導致操作系統(tǒng)不能正常啟動,磁盤讀寫參數的破壞將造成存儲在磁盤上的文件不能正常讀寫。 由于分區(qū)引導扇區(qū)的重要性,fat32文件系統(tǒng)在在第一個分區(qū)引導扇區(qū)的6個扇區(qū)后的6個扇區(qū)里保留了分區(qū)引導扇區(qū)的備份,在啟動時操作系統(tǒng)可以對兩份引導扇區(qū)進行比較,以便選擇正確的引導扇區(qū)來引

32、導系統(tǒng)。由于在磁盤正常工作過程中系統(tǒng)不再對引導扇區(qū)的程序和數據進行修改,因此備份的分區(qū)引導扇區(qū)損壞的可能性非常小。 分區(qū)引導扇區(qū)的第一個扇區(qū)(圖六)的前三個字節(jié)是一條跳轉指令,然后是8個字節(jié)長的oem id(廠家標識)和版本號,其后是簡稱為bpb的bios參數塊(bios parameter block)。對于fat32其各部分的意義如下表: 偏移地址  長度(字節(jié))  意義   0bh  2  每個扇區(qū)的字節(jié)數,常取512。  0dh  1  每簇扇區(qū)數;可以是1, 2, 4, 8, 16, 32, 64, 12

33、8,取決于文件系統(tǒng)格式及分區(qū)大小。  0eh  2  為操作系統(tǒng)保留的扇區(qū)數;fat32時多為十進制的32,fat16時為1,有的格式化工具可能將它設為36或63。  10h  1  fat表的個數;常取2。  11h  2  在fat16中存放系統(tǒng)根目錄中允許登記的目錄項個數,fat32中用于標注系統(tǒng)采用的是否為fat32文件系統(tǒng)。其值為0000h表示磁盤使用fat32文件系統(tǒng)。  13h  2  值為00h,為保持兼容性而保留,未使用。  15h  1

34、  磁盤介質標志,硬盤為f8。  16h  2  未使用,值為00h。  18h  2  每個磁道的扇區(qū)數。  1ah  2  磁盤的磁頭數。  1ch  4  分區(qū)前隱藏扇區(qū)的個數。  20h  4  邏輯磁盤中的扇區(qū)總數。  24h  4  每個fat表所占的扇區(qū)數。  28h  2  fat表鏡像標志,值為0表示系統(tǒng)保存2份互為備份的fat表,值為1表示系統(tǒng)僅保存1份fa

35、t表。  2ah  2  文件系統(tǒng)的主次版本(保留)。  2ch  4  磁盤根目錄的起始簇號。  30h  2  文件系統(tǒng)參數的扇區(qū)號,通常位于引導扇區(qū)的下一個扇區(qū)。  32h  2  備份分區(qū)引導扇區(qū)的邏輯扇區(qū)號。  34h  12  保留,未使用。  40h  1  中斷13呼叫的預設值,指明訪問的設備;軟盤為00h,硬盤為80h。  41h  1  用于中斷13呼叫。 

36、 42h  1  磁盤讀寫參數擴展標志,其值為29h。  43h  4  格式化時隨機產生的磁盤卷的序列號。  47h  11  格式化時人工輸入的磁盤卷標號。  52h  8  文件系統(tǒng)的標識號(fat32)。  從偏移0x5a開始的數據為操作系統(tǒng)引導代碼。這是由偏移0x00開始的跳轉指令所指向的,此段指令在不同的操作系統(tǒng)上和不同的引導方式上,其內容也是不同的。 扇區(qū)的最后兩個字節(jié)存儲值為0x55aa的dbr有效標志,對于其他的取值,系統(tǒng)將不會執(zhí)行dbr相關指令。 附件20

37、06-11-15 02:54  圖六.jpg (195.24 kb)     分區(qū)引導扇區(qū)的第2個扇區(qū)作為文件系統(tǒng)相關參數存儲標識扇區(qū)(圖七),除了保存扇區(qū)的標識信息(rraa(00h)和rraa(1e4h)外,還可能在偏移地址1e8h處存儲了文件系統(tǒng)有關的信息。其中扇區(qū)偏移地址1e8h1ebh的4個字節(jié)存儲了邏輯磁盤中未使用的簇數,通常用于快速計算邏輯磁盤的剩余空間(典型的操作是在資源管理器狀態(tài)欄上列出的"可用磁盤空間"參數),而1ech1efh 4個字節(jié)給出了邏輯盤中下一個可以分配給文件使用的空閑簇的簇號,這樣操作系統(tǒng)可以不訪問f

38、at表就直接獲得磁盤剩余空間和可以分配的簇號。 圖七.jpg (176.64 kb) 2006-11-15 02:59 分區(qū)引導扇區(qū)的第3個扇區(qū)則存儲了引導扇區(qū)的后一部分引導系統(tǒng)的程序代碼(圖八)。 附件2006-11-15 03:07  圖八.jpg (194.33 kb)    二、ntfs的分區(qū)引導扇區(qū) 對于ntfs分區(qū)來說,分區(qū)引導扇區(qū)dbr只占用一個扇區(qū)(圖五),并且在該分區(qū)的最后一個扇區(qū)做了備份;ntfs的引導扇區(qū)也是完成引導和定義分區(qū)參數,ntfs分區(qū)的引導扇區(qū)不是分區(qū)的充分條件,它要求必須mft中的系統(tǒng)記錄如$mft等正常該分區(qū)才能正常訪問。其bp

39、b參數如下表所示: 偏移地址  長度(字節(jié))  常用值  意義   0x0b  2  0x0002  每扇區(qū)字節(jié)數  0x0d  1  0x08  每簇扇區(qū)數  0x0e  2  0x0000  保留扇區(qū)  0x10  3  0x000000  總為0  0x13  2  0x0000  ntfs未使用,為0  0x15  1  0xf8

40、   介質描述  0x16  2  0x0000  總為0  0x18  2  0x3f00  每磁道扇區(qū)數  0x1a  2  0xff00  磁頭數  0x1c  4  0x3f000000  隱藏扇區(qū)數  0x20  4  0x00000000  ntfs未使用,為0  0x28  8  0x4af57f0000000000  扇區(qū)

41、總數   0x30  8  0x0400000000000000   $mft的邏輯簇號  0x38  8  0x54ff070000000000  $mft mirr的邏輯簇號  0x40  4  0xf6000000  每mft記錄簇數  0x44   4  0x01000000  每索引簇數  0x48  8  0x14a51b74c91b741c  卷標  0

42、x50  4  0x00000000  檢驗和   mbr、dpt、dbr、bpb 詳解   硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導扇區(qū)(也叫主引導記錄mbr),該記錄占用512個字節(jié),它用于硬盤啟動時將系統(tǒng)控制權轉給用戶指定的、在分區(qū)表中登記了某個操作系統(tǒng)分區(qū)。mbr的內容是在硬盤分區(qū)時由分區(qū)軟件(如fdisk)寫入該扇區(qū)的,mbr不屬于任何一個操作系統(tǒng),不隨操作系統(tǒng)的不同而不同,即使不同,mbr也不會夾帶操作系統(tǒng)的性質,具有公共引導的特性。但安裝某些多重引導功能的軟件或linux的lilo時有可能改寫它;它先于所有的操作

43、系統(tǒng)被調入內存并發(fā)揮作用,然后才將控制權交給活動主分區(qū)內的操作系統(tǒng)(圖一)。 圖一.jpg (194.55 kb) 硬盤mbr圖 2006-11-13 03:42 mbr由三部分構成: 1主引導程序代碼,占446字節(jié) 2硬盤分區(qū)表dpt,占64字節(jié) 3主引導扇區(qū)結束標志aa55h  一、硬盤的主引導程序代碼是從偏移0000h開始到偏移01bdh結束的446字節(jié);主引導程序代碼包括一小段執(zhí)行代碼。啟動pc 機時,系統(tǒng)首先對硬件設備進行測試,成功后進入自舉程序int 19h;然后讀系統(tǒng)磁盤0柱面、0磁頭、1扇區(qū)的主引導扇區(qū)mbr的內容到內存指定單元0:7c00 首地址開始的區(qū)域,并執(zhí)行m

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

45、展分區(qū)數不得大于1,當前活動分區(qū)數必須小于等于1。 圖二.jpg (26.13 kb) 硬盤分區(qū)表dpt 2006-11-13 03:46 分區(qū)表的每一分區(qū)的第0個字節(jié)是自舉標志,其值為80h時,表示該分區(qū)是當前活動分區(qū),可引導,其值為00h時,表示該分區(qū)不可引導。 第4字節(jié)是分區(qū)類型(圖三)。 圖三.jpg (70.05 kb) 分區(qū)類型標志 2006-11-13 03:46 每一分區(qū)的第1至第3字節(jié)是該分區(qū)起始地址。其中第1字節(jié)為起始磁頭號(面號);第2字節(jié)的低6位為起始扇區(qū)號,高2位則為起始柱面號的高2位;第3字節(jié)為起始柱面號的低8位。因此,分區(qū)的起始柱面號是用10位二進制數表示的,最大

46、值為210 = 1024,因邏輯柱面號從0開始計,故柱面號的顯示最大值為1023。同理,用6位二進制數表示的扇區(qū)號不會超過26 - 1 = 63;用8位二進制數表示的磁頭號不會超過28 - 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é)數為: 16,515,072 × 512by

47、tes 8.46gb。 由此可知硬盤的容量設計為什么會有8.4gb這一檔,分區(qū)表每一分區(qū)的第1至第3字節(jié)以及第5至第7字節(jié)的數據結構已經不能滿足大于8.46gb的大容量硬盤的需要??紤]到向下兼容的需要,業(yè)界并未對從dos時代就如此定義的硬盤分區(qū)表提出更改意見,否則改動所牽涉的面太廣,會造成硬件和軟件發(fā)展上的一個斷層,幾乎無法被業(yè)界和用戶所接受。硬盤廠商解決這一問題的方法是定義了新的int 13服務擴展標準。新的int 13服務擴展標準不再使用操作系統(tǒng)的寄存器傳遞硬盤的尋址參數,而使用存儲在操作系統(tǒng)內存里的地址包。地址包里保存的是64位lba地址,如果硬盤支持lba尋址,就把低28位直接傳遞給a

48、ta接口,如果不支持,操作系統(tǒng)就先把lba地址轉換為chs地址,再傳遞給ata接口。通過這種方式,能實現(xiàn)在ata總線基礎上chs尋址的最大容量是136.9 gb,而lba尋址的最大容量是137.4gb。新的硬盤傳輸規(guī)范ata 133規(guī)范又把28位可用的寄存器空間提高到48位,從而支持更大的硬盤。  9 回復:mbr、dpt、dbr、bpb 詳解   分區(qū)表每一分區(qū)的第8至第11字節(jié)表示該分區(qū)的起始相對扇區(qū)數(即該扇區(qū)之前的絕對扇區(qū)個數),高位在右,低位在左;第12至第15字節(jié)表示該分區(qū)實際占用的扇區(qū)數,也是高位在右,低位在左;分區(qū)表這類數據結構的表達方式與機器中數

49、據的實際存儲方式在順序上是一致的,即低位在前,高位在后。因此,在從16進制向十進制作數值轉換時,需將字段中的16進制數以字節(jié)為單位翻轉調位,用4個字節(jié)可以表示最大232個扇區(qū),即2tb=2048gb。 系統(tǒng)在分區(qū)時,各分區(qū)都不允許跨柱面,即均以柱面為單位,這就是通常所說的分區(qū)粒度。在未超過8.4gb的分區(qū)上,c/h/s的表示方法和扇區(qū)數的表示方法所表示的分區(qū)大小是一致的。超過8.4gb的/h/s/c一般填充為feh/ffh/ffh,即c/h/s所能表示的最大值;有時候也會用柱面對1024的模來填充。不過這幾個字節(jié)是什么其實都無關緊要了。 擴展分區(qū)中的每個邏輯驅動器都存在一個類似于mbr的擴展引

50、導記錄(extended boot record,ebr)(圖四)。 圖四.jpg (25.05 kb) 擴展分區(qū)引導記錄ebr 2006-11-13 03:48 擴展引導記錄包括一個擴展分區(qū)表和扇區(qū)結束標志55aa。一個邏輯驅動器中的引導扇區(qū)一般位于相對扇區(qū)32或63。如果磁盤上沒有擴展分區(qū),那么就不會有擴展引導記錄和邏輯驅動器。第一個邏輯驅動器的擴展分區(qū)表中的第一項指向它自身的引導扇區(qū);第二項指向下一個邏輯驅動器的ebr,如果不存在進一步的邏輯驅動器,第二項就不會使用,而被記錄成一系列零。如果有附加的邏輯驅動器,那么第二個邏輯驅動器的擴展分區(qū)表的第一項會指向它本身的引導扇區(qū),第二個邏輯驅動

51、器的擴展分區(qū)表的第二項指向下一個邏輯驅動器的ebr。擴展分區(qū)表的第三項和第四項永遠都不會被使用。 擴展分區(qū)表項中的相對扇區(qū)數是從擴展分區(qū)開始的扇區(qū)到該邏輯驅動器中第一個扇區(qū)的扇區(qū)數;占用的扇區(qū)數是指組成該邏輯驅動器的扇區(qū)數目。  有時候在磁盤的末尾會有剩余空間,由于分區(qū)是以1柱面的容量為分區(qū)粒度的,那么如果磁盤總空間不是整數個柱面的話,不夠一個柱面的剩下的空間就是剩余空間了,這部分空間并不參與分區(qū),所以一般無法利用。 三、主引導扇區(qū)的最后兩個字節(jié)(偏移1feh和偏移1ffh),其值為aa55h,它表示該扇區(qū)是個有效的引導扇區(qū),可用來引導硬磁盤系統(tǒng)。分區(qū)引導扇區(qū)dbr(dos boot

52、 record)是由format高級格式化命令寫到該扇區(qū)的內容;dbr是由硬盤的mbr裝載的程序段。dbr裝入內存后,即開始執(zhí)行該引導程序段,其主要功能是完成操作系統(tǒng)的自舉并將控制權交給操作系統(tǒng)。每個分區(qū)都有引導扇區(qū),但只有被設為活動分區(qū)的dbr才會被mbr裝入內存運行。 dbr主要由下列幾個部分組成: 1跳轉指令,占用3個字節(jié)的跳轉指令將跳轉至引導代碼。 2廠商標識和dos版本號,該部分總共占用8個字節(jié)。 3bpb(bios parameter block, bios 參數塊)。 4操作系統(tǒng)引導程序。 5結束標志字,結束標志占用2個字節(jié),其值為aa55 dbr中的內容除了第5部分結束標志字固

53、定不變之外,其余4個部分都是不確定的,其內容將隨格式化所用的操作系統(tǒng)版本及硬盤的邏輯盤參數的變化而變化。 一、fat32的分區(qū)引導扇區(qū) 為了使加載文件的操作更加靈活,加上fat32文件系統(tǒng)采用"活動"的fdt表,同時考慮到引導程序的代碼量和為今后發(fā)展保留適當的余量,fat32文件系統(tǒng)分區(qū)引導扇區(qū)占據了6個扇區(qū),只有前3個扇區(qū)作為系統(tǒng)的分區(qū)引導扇區(qū),其余3個扇區(qū)保留暫未使用。分區(qū)引導扇區(qū)對于操作系統(tǒng)的啟動和磁盤文件的訪問具有至關重要的作用;引導程序代碼的損壞將導致操作系統(tǒng)不能正常啟動,磁盤讀寫參數的破壞將造成存儲在磁盤上的文件不能正常讀寫。 由于分區(qū)引導扇區(qū)的重要性,fat3

54、2文件系統(tǒng)在在第一個分區(qū)引導扇區(qū)的6個扇區(qū)后的6個扇區(qū)里保留了分區(qū)引導扇區(qū)的備份,在啟動時操作系統(tǒng)可以對兩份引導扇區(qū)進行比較,以便選擇正確的引導扇區(qū)來引導系統(tǒng)。由于在磁盤正常工作過程中系統(tǒng)不再對引導扇區(qū)的程序和數據進行修改,因此備份的分區(qū)引導扇區(qū)損壞的可能性非常小。  10 回復:mbr、dpt、dbr、bpb 詳解   分區(qū)引導扇區(qū)的第一個扇區(qū)(圖六)的前三個字節(jié)是一條跳轉指令,然后是8個字節(jié)長的oem id(廠家標識)和版本號,其后是簡稱為bpb的bios參數塊(bios parameter block)。對于fat32其各部分的意義如下表: 偏移地址 

55、60;長度(字節(jié))  意義   0bh  2  每個扇區(qū)的字節(jié)數,常取512。  0dh  1  每簇扇區(qū)數;可以是1, 2, 4, 8, 16, 32, 64, 128,取決于文件系統(tǒng)格式及分區(qū)大小。  0eh  2  為操作系統(tǒng)保留的扇區(qū)數;fat32時多為十進制的32,fat16時為1,有的格式化工具可能將它設為36或63。  10h  1  fat表的個數;常取2。  11h  2  在fat16中存放系統(tǒng)根目錄中允許登記的目錄

56、項個數,fat32中用于標注系統(tǒng)采用的是否為fat32文件系統(tǒng)。其值為0000h表示磁盤使用fat32文件系統(tǒng)。  13h  2  值為00h,為保持兼容性而保留,未使用。  15h  1  磁盤介質標志,硬盤為f8。  16h  2  未使用,值為00h。  18h  2  每個磁道的扇區(qū)數。  1ah  2  磁盤的磁頭數。  1ch  4  分區(qū)前隱藏扇區(qū)的個數。  20h  4  

57、;邏輯磁盤中的扇區(qū)總數。  24h  4  每個fat表所占的扇區(qū)數。  28h  2  fat表鏡像標志,值為0表示系統(tǒng)保存2份互為備份的fat表,值為1表示系統(tǒng)僅保存1份fat表。  2ah  2  文件系統(tǒng)的主次版本(保留)。  2ch  4  磁盤根目錄的起始簇號。  30h  2  文件系統(tǒng)參數的扇區(qū)號,通常位于引導扇區(qū)的下一個扇區(qū)。  32h  2  備份分區(qū)引導扇區(qū)的邏輯扇區(qū)號。  34h &

58、#160;12  保留,未使用。  40h  1  中斷13呼叫的預設值,指明訪問的設備;軟盤為00h,硬盤為80h。  41h  1  用于中斷13呼叫。  42h  1  磁盤讀寫參數擴展標志,其值為29h。  43h  4  格式化時隨機產生的磁盤卷的序列號。  47h  11  格式化時人工輸入的磁盤卷標號。  52h  8  文件系統(tǒng)的標識號(fat32)。  從偏移0x5a開始的數據為

59、操作系統(tǒng)引導代碼。這是由偏移0x00開始的跳轉指令所指向的,此段指令在不同的操作系統(tǒng)上和不同的引導方式上,其內容也是不同的。 扇區(qū)的最后兩個字節(jié)存儲值為0x55aa的dbr有效標志,對于其他的取值,系統(tǒng)將不會執(zhí)行dbr相關指令。 附件2006-11-15 02:54  圖六.jpg (195.24 kb)     分區(qū)引導扇區(qū)的第2個扇區(qū)作為文件系統(tǒng)相關參數存儲標識扇區(qū)(圖七),除了保存扇區(qū)的標識信息(rraa(00h)和rraa(1e4h)外,還可能在偏移地址1e8h處存儲了文件系統(tǒng)有關的信息。其中扇區(qū)偏移地址1e8h1ebh的4個字節(jié)存儲了邏輯磁盤中

60、未使用的簇數,通常用于快速計算邏輯磁盤的剩余空間(典型的操作是在資源管理器狀態(tài)欄上列出的"可用磁盤空間"參數),而1ech1efh 4個字節(jié)給出了邏輯盤中下一個可以分配給文件使用的空閑簇的簇號,這樣操作系統(tǒng)可以不訪問fat表就直接獲得磁盤剩余空間和可以分配的簇號。 圖七.jpg (176.64 kb) 2006-11-15 02:59 分區(qū)引導扇區(qū)的第3個扇區(qū)則存儲了引導扇區(qū)的后一部分引導系統(tǒng)的程序代碼(圖八)。 附件2006-11-15 03:07  圖八.jpg (194.33 kb)    二、ntfs的分區(qū)引導扇區(qū) 對于ntfs分區(qū)來說

61、,分區(qū)引導扇區(qū)dbr只占用一個扇區(qū)(圖五),并且在該分區(qū)的最后一個扇區(qū)做了備份;ntfs的引導扇區(qū)也是完成引導和定義分區(qū)參數,ntfs分區(qū)的引導扇區(qū)不是分區(qū)的充分條件,它要求必須mft中的系統(tǒng)記錄如$mft等正常該分區(qū)才能正常訪問。其bpb參數如下表所示: 偏移地址  長度(字節(jié))  常用值  意義   0x0b  2  0x0002  每扇區(qū)字節(jié)數  0x0d  1  0x08  每簇扇區(qū)數  0x0e  2  0x0000  保留扇區(qū)

62、0; 0x10  3  0x000000  總為0  0x13  2  0x0000  ntfs未使用,為0  0x15  1  0xf8   介質描述  0x16  2  0x0000  總為0  0x18  2  0x3f00  每磁道扇區(qū)數  0x1a  2  0xff00  磁頭數  0x1c  4  0x3f00000

63、0  隱藏扇區(qū)數  0x20  4  0x00000000  ntfs未使用,為0  0x28  8  0x4af57f0000000000  扇區(qū)總數   0x30  8  0x0400000000000000   $mft的邏輯簇號  0x38  8  0x54ff070000000000  $mft mirr的邏輯簇號  0x40  4  0xf6000000  每mft記錄簇數  0x44   4  0x0100000

溫馨提示

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

評論

0/150

提交評論