天天看點

硬碟分區表詳解

人們在使用電腦時,有時由于異常操作,有時由于病毒侵襲,會導緻某個分區消失或硬碟無法啟動。究其原因,就是硬碟分區表受損。硬碟分區表可以說是支援硬碟正常工作的骨架.作業系統正是通過它把硬碟劃分為若幹個分區,然後再在每個分區裡面建立檔案系統,寫入資料檔案.本文主要講述的是分區表的位置,結構以及各個分區表是如何連結起來的.當掌握了這些知識後,即使分區表受到破壞,一樣也可以根據殘存的資料手工修複分區表,進而修複分區。

一.分區表的位置及識别标志

分區表一般位于硬碟某柱面的0磁頭 1扇區.而第1個分區表(也即主分區表)總是位于

(0柱面,1磁頭,1扇區),剩餘的分區表位置可以由主分區表依次推導出來.分區表有64個位元組,占據其所在扇區的[441-509]位元組.要判定是不是分區表,就看其後緊鄰的兩個位元組(也即[510-511])是不是 "55AA",若是,則為分區表.

二.分區表的結構

分區表由4項組成,每項16個位元組.共4×16 = 64個位元組.每項描述一個分區的基本資訊.每個位元組的含義如下:

分區表項含義

位元組 含義

0 Activeflag.活動标志.若為0x80H,則表示該分區為活動分區.若為0x00H,則表示該分區為非活動分區.

1,2,3 該分區的起始磁頭号,扇區号,柱面号磁頭号 -- 1位元組, 扇區号 -- 2位元組低6位,柱面号 -- 2位元組高2位 + 3位元組

4 分區檔案系統标志:

分區未用: 0x00H.

擴充分區: 0x05H, 0x0FH.

FAT16分區: 0x06H.

FAT32分區: 0x0BH, 0x1BH, 0x0CH, 0x1CH.

NTFS檔案系統: 0x07H.

5,6,7 該分區的結束磁頭号,扇區号,柱面号,含義同上.

8,9,10,11 邏輯起始扇區号。表示分區起點之前已用了的扇區數.

12,13,14,15 該分區所占用的扇區數.

分區表項有幾個位元組比較重要,下面分别闡述之:

1、(1,2,3)位元組

磁頭号由(1)位元組8位表示,其範圍為(0 -- 28 - 1),也即(0 磁頭-- 254磁頭)。

扇區号由(2)位元組低6位表示,其範圍為(0 -- 26 - 1),由于扇區号從1開始,是以其範圍是(1扇區-- 63扇區)。

柱面号由(2)位元組高2位 + (3)位元組,共10位表示,其範圍為(0 --2 10 - 1),也即(0 柱面-- 1023柱面)。

當柱面号超過1023時,這10位依然表示成1023,需要注意。

(5,6,7)位元組含義同上。

2、(8, 9, 10, 11)位元組

如果是主分區表,則這4 個位元組表示該分區起始邏輯扇區号與邏輯0扇區(0柱面,0磁頭,1扇區)之差。如果非主分區表,則這4 個位元組要麼表示該分區起始邏輯扇區号與擴充分區起始邏輯扇區号之差,要麼為63。詳細情況在後面有所闡述。---www.bianceng.cn

注意:

1、扇區上的位元組是按左邊低位,右邊高位的順序排列的。是以在取值時,需要把位元組再反一下,讓高位位元組在左邊,低位位元組在右邊,這一點在讀取邏輯起始扇區号和分區大小時需要注意。舉個例子:第一項的邏輯起始扇區為(3F 00 00 00),轉換為十進制前要先反一下位元組順序,為(00 00 00 3F)然後在轉換為十進制,即63 .同理分區大小為(3F 04 7D 00),先反為(00 7D 04 3F)再轉換為十進制,即8193087。

2、邏輯扇區号與(柱面,磁頭,扇區)的互相轉換:

令L = 邏輯扇區号,C = 柱面号,H = 磁頭号,S = 扇區号。

每道扇區數 = 63

每柱面磁頭數 = 255

每柱面扇區數 = 每道扇區數* 每柱面磁頭數

= 63 × 255

= 16065

柱面号下标從0開始。磁頭号[0 -- 254],扇區号[1 -- 63]。

邏輯扇區号下标也從0開始。

(柱面,磁頭,扇區)轉換成邏輯扇區号的公式為:

L = C×16065 + H ×63 + S - 1 ;

比如(1柱面,1磁頭,1扇區),其邏輯扇區号為:

L = 1×16065 + 1×63 + 1 - 1

= 16128

邏輯扇區号轉換成(柱面,磁頭,扇區) 公式為:

C = L / 16065

H = (L % 16065) / 63

S = (L % 16065) % 63 + 1

比如邏輯扇區号 16127:

C = 16127 / 16065 = 1

H = (16127 % 16065) / 63 = 0

S = (16127 % 16065) % 63 + 1 = 63

即(1柱面,0磁頭,63扇區)

3、分區表上有四項,每一項表示一個分區,是以一個分區表最多隻能表示4個分區。主分區表上的4項用來表示主分區和擴充分區的資訊。因為擴充分區最多隻能有一個,是以硬碟最多可以有四個主分區或者三個主分區,一個擴充分區。餘下的分區表是表示邏輯分區的。

這裡有必要闡述一點:邏輯區都是位于擴充分區裡面的,并且邏輯分區的個數沒有限制。

4、分區表所在扇區通常在(0磁頭,1扇區),而該分區的開始扇區通常位于(1磁頭,1扇區),中間隔了63 個隐藏扇區。

繼續閱讀