天天看點

硬碟知識大雜燴(三)

<b>硬碟知識大雜燴(三)</b>

原理篇

原理篇從硬碟的第一個實體扇區(0柱面,0磁頭,1扇區)MBR說起——基本主分區——擴充分區——EBR——DBR——FAT——根目錄——資料區的順序來闡述一個完整的硬碟的工作原理。建立一個明确合理的順序很重要,不然就越看越迷糊。這是我的感受。

<b> </b>

<b>A</b><b>、</b><b>MBR</b><b>主引導記錄即主引導扇區(</b><b>0</b><b>柱面,</b><b>0</b><b>磁頭,</b><b>1</b><b>扇區)</b><b> (Master Boot Record)</b>

是硬碟的第一個實體扇區(0柱面,0磁頭,1扇區),也就是硬碟的絕對"0"扇區。在它的512個位元組中,包括三部分:

1.主引導程式代碼,占446位元組

下圖的紫色區資料是mbr的一段引導代碼,它其實是一個小引導程式。他是在我們對硬碟分區操作時寫進去的。在DOS環境下,用FDISK/mbr也可以将一個小引導程式寫進去。mbr的一段引導代碼幾乎是通用的。

2.硬碟分區表HDPT,占用64位元組

下圖的紅色區資料是硬碟分區表HDPT,表明該硬碟幾個基本分區(也稱為主分區)大小及位置等資訊。下面将詳述。

3.主引導扇區結束标志AA55H ,占用2位元組

下圖的藍色區資料是表示引導扇區的有效結束标志。

計算機在按下power鍵以後,開始執行主機闆bios程式。進行完一系列檢測和

配置以後。開始按bios中設定的系統引導順序引導系統。假定現在是硬碟。Bios執行完自己的程式後如何把執行權交給硬碟呢。交給硬碟後又執行存儲在哪裡的程式呢。其實,稱為mbr的一段代碼起着舉足輕重的作用。MBR(master boot record),即主引導記錄,有時也稱主引導扇區。位于整個硬碟的 0 柱面 0磁頭 1 扇區(可以看作是硬碟的第一個扇區),bios在執行自己固有的程式以後就會jump到mbr中的第一條指令。将系統的控制權交由mbr來執行。在總共512byte的主引導記錄中,MBR的引導程式占了其中的前 446 個位元組(偏移 0H~偏移 1BDH),随後的 64 個位元組(偏移 1BEH~偏移 1FDH)為DPT(Disk PartitionTable,硬碟分區表),最後的兩個位元組“55 AA”(偏移 1FEH~偏移1FFH)是分區<b>有效結束标志</b>。

    MBR不随作業系統的不同而不同,意即不同的作業系統可能會存在相同的

MBR,即使不同,MBR也不會夾帶作業系統的性質。具有公共引導的特性。同時,也不屬于任何分區,在作業系統上是根本看不到的。(當然用專門的磁盤管理軟體還是能)

我們來分析一段mbr。上圖是用winhex檢視的一塊希捷 120GB硬碟的mbr。

(資料表示形式:我們知道,資料在硬碟上是以二進制數“1”和“0”的形式存儲的,8位二進制數就是一個位元組,如“00110110”

但這樣計數表示出來,就會顯得太長,我們常常把四位二進制數用一個一位十六進制數表示,上面“00111110”就變為“3E”,兩者有一一對應關系,并且,書寫也簡便多了。上面最後“55AA”就是兩個位元組。“55”就是“01010101”,為一個位元組。通常一個扇區有512個位元組。偏移表示磁頭在一個扇區中的移動量,以本扇區第一位位元組為基點)

下面重點把紅色區資料是硬碟分區表HDPT做一說明

<b>MBR</b><b>中的硬碟分區表</b><b>DPT (HDPT)</b><b>細解</b>

根據現在的主引導扇區結構,一個硬碟最多有四個主分區,因為上圖(主)分區表項決定的。如果要在硬碟上建立大于四個的分區,我們就采用擴充分區,在擴充分區中可以建立多個分區,這種分區叫做邏輯分區。

硬碟分區表分為四小部分,每一小部分表示一個分區的資訊,占16位元組。

  分區表的每一部分長16位元組。第0個位元組是自舉标志,其值為80H時,表示該分區是目前活動分區,可引導;其值為00H時,表示該分區不可引導。

第4位元組是分區類型。左邊的16進制數(即8個二進制位中的高4位)隻取兩個值:0H或1H,為0H時表示此分區為非隐藏分區,為1H時則表示是隐藏分區。右邊的16進制數(即8個二進制位中的低4位)表示分區的檔案系

統格式、類别(是作業系統所在的基本分區還是擴充分區)等資訊:取6H則表示是FAT16格式,且大于32MB;取5H表示是DOS擴充分區;取7H表示是NTFS檔案格式;取BH表示是FAT32檔案格式;取CH表示是FAT32X檔案格式;取EH表示是FAT16X檔案格式;取FH表示是ExtendedX擴充分區。

每一分區的第1至第3位元組是該分區起始位址(CHS)。其中第1位元組為起始磁頭号(面号);第2位元組的低6位為起始扇區号,高2位則為起始柱面号的高2位;第3位元組為起始柱面号的低8位。

每一分區的第5至第7位元組表示分區的終止位址(CHS)。,各位元組的釋義與第1至第3位元組雷同,故不再贅述。

  分區表每一分區的第8至第11位元組表示該分區的<b>起始相對扇區号</b><b>(即該扇區之前的絕對扇區個數)</b>,第12至第15位元組表示該<b>分區的實際占用扇區數</b><b>。</b>

至此,硬碟的第一個實體扇區(0柱面,0磁頭,1扇區)MBR學習完畢。

本文轉自madin10000 51CTO部落格,原文連結:http://blog.51cto.com/20100823/412878