硬碟分區表

硬碟分區表

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

基本信息

簡介

硬碟主引導扇區=硬碟主引導記錄(MBR)+硬碟分區表(DPT)
--------------------------------------------------------------
物理位置:0面0道1扇區(clindyer0,side0,sector1)
大小:512位元組
其中:MBR446位元組(0000--01BD),DPT64位元組(01BE--01FD),結束標誌2位元組(55AA)
功能:MBR通過檢查DPT分區信息引導系統跳轉至DBR;
讀取:使用NORTONDISKEDIT,在OBJECT選單中選擇DRIVE——>PHYSICALDISK-—HARDDISK,
然後,在OBJECT選單中選擇DISKPARTITIONTABLE即可讀取,並使用TOOLS選單中的WRITEOBJECTTO選項存入指定檔案備份;
寫入:使用NORTONDISKEDIT,在OBJECT選單中選擇DRIVE——>FLOOPYDISK,選擇備份的DPT
檔案,然後使用TOOLS選單中的WRITEOBJECTTO——>PHYSICALSECTOR選項寫入001
(clindyer0,side0,sector1);
詳解:

000H--08AH MBR啟動程式(尋找開機分區)

08BH--0D9H MBR啟動字元串

0DAH--1BCH 保留("0")

1BEH--1FDH 硬碟分區表

1FEH--1FFH 結束標誌(55AA)
活動分區主引導扇區(DBR)
--------------------------
物理位置:1面0道1扇區(clindyer0,side1,sector1)
大小:FAT161扇區512位元組
FAT323扇區1536位元組
功能:包含機器CMOS等信息(0000--0059),核對該信息並引導指定的系統檔案,如NTLDR等;
讀取:使用NORTONDISKEDIT,在OBJECT選單中選擇DRIVE——>LOGICALDISK-—DISKC,
然後,在OBJECT選單中選擇BOOTRECORD即可讀取,並使用TOOLS選單中的
WRITEOBJECTTO選項存入指定檔案備份;
寫入:使用NORTONDISKEDIT,在OBJECT選單中選擇DRIVE——>FLOOPYDISK,選擇備份的DBR
檔案,然後使用TOOLS選單中的WRITEOBJECTTO——>PHYSICALSECTOR選項寫入011
(clindyer0,side1,sector1);
詳解:
000H--002H3BYTE的跳轉指令(去啟動程式,跳到03EH)
003H--03DHBIOS參數區
03EH--19DHDOS啟動程式
19EH--1E5H開機字元串
1E6H--1FDH檔案名稱(IO.SYS,MSDOS.SYS)
1FEH--1FFH結束標記(55AA)
硬碟分區表(DPT)
---------------------
偏移地址 位元組數 含義分析
01BE 1 分區類型:00表示非活動分區:80表示活動分區;其他為無效分區。
01BF~01C1 3 *分區的起始地址(面/扇區/磁軌),通常第一分區的起始地址開始
於1面0道1扇區,因此這三個位元組應為010100
01C2 1 #分區的作業系統的類型。
01C3~01C5 3 *該分區的結束地址(面/扇/道)
01C6~01C9 4 該分區起始邏輯扇區
01CA~01CD 4 該分區占用的總扇區數
注釋: * 注意分區的起始地址(面/扇區/磁軌)和結束地址(面/扇/道)中位元組分配:
00000000 01000001 00010101
~~~~~~~~ ==^^^^^^ ========
~ 面(磁頭) 8 位

^ 扇區 6 位

= 磁軌 10 位
# 分區的作業系統類型(檔案格式標誌碼)
4---DOS FAT16<32M

5---EXTEND

6---DOS FAT16>32M

7---NTFS(OS/2)

83---LINUX>64M
DPT 總共64位元組(01BE--01FD), 如上所示每個分區占16個位元組, 所以可以表示四個分區, 這也就是為什麼一個磁碟的主分區和擴展分區之和總共只能有四個的原因.
邏輯驅動器
-----------
擴展分區的信息位於以上所示的硬碟分區表(DPT)中, 而邏輯驅動器的信息則位於擴展分區的起始扇區, 即該分區的起始地址(面/扇區/磁軌)所對應的扇區, 該扇區中的信息與硬碟主引導扇區的區別是不包含MBR, 而16位元組的分區信息則表示的是邏輯驅動器的起始和結束地址等.
所以, 在磁碟僅含有一個主分區, 一個擴展分區(包含多個邏輯驅動器)的情況下, 即使由於病毒或其他原因導致硬碟主引導扇區的數據丟失(包括DPT), 也可以通過邏輯驅動器的數據來恢復整個硬碟.
例如: 以下是一個硬碟的分區情況.
道 面 扇 道 面 扇 起始扇(邏輯) 結束扇 總共扇區

MBR 0 0 1 - - - - - -

C 0 1 1 276 239 63 63 4,188,239 4,188,177

擴 277 0 1 554 239 63 4,188,240 8,391,599 4,203,360

D 277 1 1 554 239 63 4,188,303 8,391,599 4,203,297
如果主分區表損壞, 則可以通過手工查找擴展分區表中所包含的邏輯驅動器數據, 在本例中就是D糟所對應的數據, 然後將其起始扇(邏輯)減去63就是所對應的擴展分區的起始扇(邏輯), 將其起始地址(面/扇區/磁軌)改為0面就是擴展分區的起始地址. 然後通過擴展分區就可以得到主分區C的信息, 然後就可以使用FDISK/MBR命令和手工填寫分區表恢復整個硬碟.
實際使用這種方法比較麻煩, 如果知道每個分區的大小, 則可以通過使用PQ MAGIC 5 將磁碟重新分區為原來大小(注意: 千萬不能套用, 我們只是通過它來獲得數據), 並查看INFO來獲得以上數據, 記錄以後取消該分區操作, 然後使用NORTON DISK2000手工修改DPT表, 恢復整個硬碟.

該例所對應的分區表數據:
80 01

01 00 06 EF 7F 14 3F 00 00 00 11 E8 3F 00 00 00

41 15 05 EF BF 2A 50 E8 3F 00 60 23 40 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
擴展分區表數據:

00 01

41 15 07 EF BF 2A 8F E8 3F 00 21 23 40 00
注意: 邏輯起始扇區和總共分區數是左邊為低位, 如該例的擴展分區的起始地址為50 E8 3F 00轉換十進制時要先變為00 3F E8 50, 總共占用分區數60 23 40 00要先變為00 40 23 60, 同理當手工填寫該值時也要進行高低位轉換

識別標誌

分區表一般位於硬碟某柱面的0磁頭1扇區。而第1個分區表(也即主分區表)總是位於(0柱面,0磁頭,1扇區),剩餘的分區表位置可以由主分區表依次推導出來。分區表有64個位元組,占據其所在扇區的[447-510]位元組。要判定是不是分區表,就看其後緊鄰的兩個位元組(也即[511-512])是不是"55AA"(55和AA兩個位元組,其實是兩個16進制:55H和AAH,用四位二進制表示一位16進制),若是,則為分區表。

結構含義

位元組

分區表由4項組成,每項16個位元組(Byte).共4×16=64位元組(Byte)。每項描述一個分區的基本信息。每個位元組的含義如下:
0Activeflag.活動標誌.若為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--2^8-1),也即(0磁頭--255磁頭)。
扇區號由(2)位元組低6位表示,其範圍為(0--2^6-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。詳細情況在後面有所闡述。

注意

1、扇區上的位元組是按左邊低位,右邊高位的順序排列的。所以在取值時,需要把位元組再反一下,讓高位位元組在左邊,低位位元組在右邊,這一點在讀取邏輯起始扇區號和分區大小時需要注意。舉個例子:第一項的邏輯起始扇區為(3F000000),轉換為十進制前要先反一下位元組順序,為(0000003F)然後在轉換為十進制,即63.同理分區大小為(3F047D00),先反為(007D043F)再轉換為十進制,即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個隱藏扇區。

查找

分區表鏈的查找

分區表鏈實際上相當於一個單向鍊表結構。第一個分區表,也即主分區表,可以有一項描述擴展分區。而這一項就相當於指針,指向擴展分區。然後我們根據該指針來到擴展分區起始柱面的0頭1扇區,找到第二個分區表。對於該分區表,通常情況下:第一項描述了擴展分區中第一個分區的信息,第二項描述下一個分區,而這第二項就相當於指向第二個分區的指針,第三項,第四項一般均為0。我們可以根據該指針來到擴展分區中第二個分區起始柱面的0頭1扇區,找到第三個分區表。以此類推,直到最後一個分區表。而最後一個分區表只有第一項有信息,餘下三項均為0.相當於其指針為空.所以只要找到了一個分區表就可以推導找出其後面所有分區表。不過該分區表前面的分區表就不好推導出來了。但令人高興的是這個鍊表的頭節點,也即主分區表的位置是固定的位於(0柱面,0磁頭,1扇區)處,我們可以很輕易的找到它,然後把剩下的所有分區表一一找到。

以筆者的硬碟為例:一個主分區(C糟),一個擴展分區.擴展分區中有兩個邏輯分區(D糟,E盤)其分區表鏈示意圖如下:

C糟的主分區表

圖一分區表鏈示意圖

(一).讀取(0柱面,0磁頭,1扇區)處

[800101000BFE7FFD3F0000003F047D00]

[000041FE0FFEFFFF7E047D001F2CB400]

[這裡都是一串0,兩個0之後一個空格]

[這裡都是一串0,兩個0之後一個空格]

第一項
(80)(010100)(0B)(FE7FFD)(3F000000)(3F047D00)
描述的是C糟的情況。
1.(80):表示C糟為活動分區。即系統會從C糟啟動。
2.(010100):表示C糟的起始扇區為(0柱面,1磁頭,1扇區)。
3.(0B):表示C糟的檔案系統為FAT32。
4.(FE7FFD):
(FE)16=(254)10;(7F)16=(01111111)2;(FD)16=(11111101)2。
磁頭號:(254)10;
扇區號:(111111)2=(63)10.
柱面號:(0111111101)2=(509)10
故C糟結束扇區為(509柱面,254磁頭,63扇區)。
5.(3F000000):
反向,(0000003F)16=(63)10,為C糟起始邏輯扇區號與邏輯0扇區號之差。表示C糟前面已有63個扇區,這63個扇區為系統隱藏扇區。
6.(3F047D00):
反向,(007D043F)16=(8193087)10。表明C糟有8193087個扇區。即(0柱面,1磁頭,1扇區)至(509柱面,254磁頭,63扇區)
共有8193087個扇區。

第二項
(00)(0041FE)(0F)(FEFFFF)(7E047D00)(1F2CB400)
描述的是擴展分區的情況。
1.(00):表示該分區不是活動分區。
2.(0041FE):
(00)16=(0)10 (41)16=(01000001)2(FE)16=(11111110)2
磁頭號:(0)10;
扇區號:(000001)2=(1)10.
柱面號:(0111111110)2=(510)10
所以擴展分區的起始扇區為(510柱面,0磁頭,1扇區)。
3.(0F):表示該分區為擴展分區。
4.(FEFFFF):
(FE)16=(254)10(FF)16=(11111111)2(FF)16=(11111111)2;
磁頭號:(254)10;
扇區號:(111111)2=(63)10.
柱面號:(1111111111)2=(1023)10
但這是不準確的,因為當柱面號的真實值超過1023時,表示柱面號的10位也依然是1023。
5.(7E047D00):
反向,(007D047E)16=(8193150)10.表示擴展分區的起始扇區號為8193150,即(510柱面,0磁頭,1扇區)。這是真實準確的,我一般都用這一項來定位分區起點。
6.(1F2CB400):
反向,(00B42C1F)16=(11807775)10.表示擴展分區共有11807775個扇區。通過上面得到的起點和分區的大小,可以推導出擴展分區的結束位置:8193150+11807775=20000925號扇區,即(1244柱面,254磁頭,63扇區)。

分區

查找D糟分區表

根據上面的信息,第二個分區表,也即D糟分區表在(510柱面,0磁頭,1扇區)處。讀取該扇區,得到分區表如下:

[000141FE0BFEFF7B3F000000BFA35D00]

[0000C17C05FEFFFFFEA35D0021885600]

[這裡都是一串0,兩個0之後一個空格]

[這裡都是一串0,兩個0之後一個空格]

第一項

(00)(0141FE)(0B)(FEFF7B)(3F000000)(BFA35D00)

描述的是D糟的情況。

1.(00):表示D糟不是活動分區。
2.(0141FE):
(01)16=(1)10(41)16=(01000001)2(FE)16=(11111110)2.
磁頭號:(1)10;
扇區號:(000001)2=(1)10.
柱面號:(0111111110)2=(510)10;
故D糟開始扇區為(510柱面,1磁頭,1扇區)。
3.(0B):表示D糟的檔案系統為FAT32。
4.(FEFF7B):
(FE)16=(254)10。(FF)16=(11111111)2(7B)16=(01111011)2.
磁頭號:(254)10;
扇區號:(111111)2=(63)10.
柱面號:(1101111011)2=(891)10
故D糟結束扇區為(891柱面,254磁頭,63扇區)。
5.(3F000000):
反向,(0000003F)16=(63)10,為D糟起始邏輯扇區號(510柱面,1磁頭,1扇區)與擴展分區起始邏輯扇區號
(510柱面,0磁頭,1扇區)之差。表示D糟前面已有63個扇區,這63個扇區為系統隱藏扇區。
6.(BFA35D00):
反向,(005DA3BF)16=(6136767)10。表明D糟有6136767個扇區。
通過上面得到的起點和分區的大小,可以推導出D糟的結束位置:8193150+63+6136767=14329980號扇區。即(891柱面,254磁頭,63扇區)。與上面的正好吻合。第二項

(00)(00C17C)(05)(FEFFFF)(FEA35D00)(21885600)
描述的是E盤的情況。
1.(00):表示E盤不是活動分區。
2.(00C17C):
(00)16=(0)10(C1)16=(11000001)2(7C)16=(01111100)2
磁頭號:(0)10
扇區號:(000001)2=(1)10
柱面號:(1101111100)2=(892)10
所以E盤的起始扇區為(892柱面,0磁頭,1扇區)。
3.(05):表示E盤的在擴展分區裡面。
4.(FEFFFF):
(FE)16=(254)10(FF)16=(11111111)2(FF)16=(11111111)2
磁頭號:(254)10
扇區號:(111111)2=(63)10
柱面號:(1111111111)2=(1023)10
但這是不準確的,原因同上。
5.(FEA35D00):
反向,(005DA3FE)16=(6136830)10.這一項非常重要,它定位了E盤分區表所在扇區。其值為E盤分區表所在扇區號與擴展分區起始扇區號之差。所以,E盤分區表所在扇區號為:
8193150+6136830=14329980。即(892柱面,0磁頭,1扇區)。
6.(21885600):
反向,(00568821)16=(5670945)10.表示E盤共有11807775個扇區。通過上面得到的起點和分區的大小,可以推導出E
盤的結束位置:14329980+5670945=20000925號扇區,即(1244柱面,254磁頭,63扇區)。

查找E盤分區表

根據上面的信息,第三個分區表,也即E盤分區表在(892柱面,0磁頭,1扇區)處。讀取該扇區,得到分區表如下:
[0001C17C0BFEFFFF3F000000E2875600]
[這裡都是一串0,兩個0之後一個空格]
[這裡都是一串0,兩個0之後一個空格]
該分區表第二項全為0,說明沒有下一個分區表了。該分區表就是分區表鏈的最後一個節點。
第一項:
(00)(01C17C)(0B)(FEFFFF)(3F000000)(E2875600)
該項與D糟分區表的第二項描述的都是E盤的情況,但它們在某些細節上又有所區別。
1.(00):表示E盤不是活動分區。
2.(01C17C):
(01)16=(1)10(C1)16=(11000001)2(7C)16=(01111100)2.
磁頭號:(1)10
扇區號:(000001)2=(1)10
柱面號:(1101111100)2=(892)10
故E盤起始扇區為(892柱面,1磁頭,1扇區)。
3.(0B):表示E盤的檔案系統為FAT32。
4.(FEFFFF):
(FE)16=(254)10。(FF)16=(11111111)2(FF)16=(11111111)2.
磁頭號:(254)10;
扇區號:(111111)2=(63)10.
柱面號:(1111111111)2=(1023)10
但這是不準確的,原因同上。
5.(3F000000):
反向,(0000003F)16=(63)10.這一項與D糟分區表相應項有所不同.為E盤起始邏輯
扇區號(892柱面,1磁頭,1扇區)與(892柱面,0磁頭,1扇區)之差。表示E盤前面已有63個扇區,這63個扇區為系統隱藏扇區。
作業系統無法對這些扇區進行讀寫,所以可以把自己的秘密信息寫在這裡.
6.(E2875600):
反向,(005687E2)16=(5670882)10。表明E盤有5670882個扇區。而D糟分區表相應項為5670945.(5670945)-(5670882)=63.
正好等於63個隱藏扇區.這是因為D糟分區表描述的是(892柱面,0磁頭,1扇區)到(1244柱面,254磁頭,63扇區)之間的扇區數。
而E盤分區表描述的是(892柱面,1磁頭,1扇區)到(1244柱面,254磁頭,63扇區)之間的扇區數。

結束語

至此,我們已經打通了整個分區表鏈.以後在某個鏈節點數據受損時,也可以根據上下節點的信息而手工定位並修復之。

修復工具可採用可讀寫磁碟的Winhex.

故障原因

在分區表被破壞後,啟動系統時往往會出現“Non-Systemdiskordiskerror,replacediskandpressakeytoreboot”(非系統盤或盤出錯)、“ErrorLoadingOperatingSystem”(裝入DOS引導記錄錯誤)或者“NoROMBasic,SystemHalted”(不能進入ROMBasic,系統停止回響)等提示信息。那么分區表故障究竟是如何發生的呢?
病毒引發故障
計算機病毒是導致分區表損壞最為典型的故障之一。比如典型的CIH病毒的變種除了攻擊主機板的BIOS之外,同時也會對分區表進行破壞,而且還有很多引導區病毒也會對分區表進行破壞。

環境問題導致
如今的Windows2000/XP都支持NTFS檔案格式,而且程式默認的都是採用這種檔案格式來安裝系統,如果對硬碟進行分區轉換或者是劃分NTFS分區時意外斷電或者當機,那么很有可能導致分區表損壞。而且在通過PQMagic(分區魔術師)之類的第三方分區軟體調整硬碟分區容量、轉換分區格式的時候也存在一定風險,如果當機或者斷電也會導致硬碟分區表故障,甚至有可能丟失硬碟中的所有數據。

操作不當
如果在一塊硬碟上同時安裝了多個操作系統,那么在卸載的時候就有可能導致分區表故障,比如在同時安裝了Windows2000和Windows98的計算機上,直接刪除Windows2000核心會導致分區表的錯誤。另外,在刪除分區的時候如果沒有先刪除擴展分區,而是直接刪除主分區,也會出現無法正確讀出分區卷標的故障。

故障修復

查殺病毒

如果是由於引導區病毒造成分區表故障,則可以藉助KV3000、瑞星、金山等防毒軟體提供的引導軟碟啟動計算機,接著在DOS環境中對系統進行病毒查殺操作。比如用KV3000的引導盤啟動計算機之後輸入“KV3000/K”命令進行病毒掃描,如果發現引導區存在病毒,則程式會自動進行查殺清理,建議同時對整個系統進行完整的掃描以查找出隱藏的病毒。一般說來,將引導區中殘留的病毒清除之後即可恢復計算機的正常使用。

提示:使用軟碟引導計算機之前一定要將軟碟的防寫關閉,否則有可能導致病毒感染軟碟。

Fdisk修復

Fdisk不僅是一個分區程式,它還有著非常便捷的恢復主引導扇區功能,而且它只修改主引導扇區,對其他扇區並不進行寫操作,因此對於那些還在使用Windows9x的朋友而言無疑是個非常理想的分區表修復工具。通過Fdisk修復主引導區的時候,先用Windows98啟動盤啟動系統,在提示符下輸入“Fdisk/mbr”命令即可覆蓋主引導區記錄。
提示:“Fdisk/mbr”命令只是恢復主分區表,並不會對它重新構建,因此只適用於主引導區記錄被引導區型病毒破壞或主引導記錄代碼丟失,但主分區表並未損壞的情況使用。而且這個命令並不適用於清除所有引導型病毒,因此使用的時候需要注意。

Fixmbr修復

在Windows2000/XP中,我們一般會用到故障恢復控制台集成的一些增強命令,比如Fixmbr用於修復和替換指定驅動器的主引導記錄、Fixboot用於修復知道驅動器的引導扇區、Diskpart能夠增加或者刪除硬碟中的分區、Expand可以從指定的CAB源檔案中提取出丟失的檔案、Listsvc可以創建一個服務列表並顯示出服務當前的啟動狀態、Disable和Enable分別用於禁止和允許一項服務或者硬體設備等等,而且輸入“help”命令可以查看到所有的控制命令以及命令的詳細解釋。

比如輸入“fixmbr”命令可以讓控制台對當前系統的主引導記錄進行檢查,然後在“確定要寫入一個新的主啟動記錄嗎?”後面輸入“Y”進行確認,這樣就完成了主引導記錄的修復。

調整分區

在刪除分區或者是重新創建分區的時候,如果遇到意外原因當機或斷電,這時候再使用原先的工具可能無法識別當前硬碟的分區表,必須更換另外一款分區表軟體進行修復。比如我們通過Fdisk分區時意外當機,這時候再通過Fdisk就無法順利進行,可以採用PQMagic之類的第三方分區軟體解決。另外需要提醒大家注意的是,分區表對於系統的正常穩定運行影響非常大,一般情況下最好不要採用DM之類快速分區格式化軟體,否則有可能導致後期使用過程中頻頻出現意想不到的麻煩

軟體修復

分區表被破壞後,最常見的出錯提示是:“InvalidPartitionTable”(無效分區表)。對於分區表故障,可以通過“江民硬碟修復王”來進行修復。

首先在江民公司的網站上下載“硬碟修復王”的鏡像檔案及“HD.exe”檔案,然後通過“HD.exe”將鏡像寫入江民防毒王2003的鑰匙盤中。用該軟碟啟動電腦,在提示符下輸入“JMHDFIX”後回車便進入了硬碟修復王的主界面。

在主界面中按下F2鍵進入“系統測試與自動修復”界面,此時程式會自動檢測硬碟分區表,如果分區表被破壞,則螢幕顯示:

HardDiskPartitionTable-Error!!!FixHardDiskPartitionTableorSector(Y/N)?

大意為:硬碟分區表錯誤,是否修復硬碟分區表或C糟引導區?按下“Y”鍵修復,按下“N”鍵退出。

按下“Y”鍵之後,螢幕顯示

InsertaformatteddisketteintodriveA,Pressed"Y"tosave"error"PartitiontablefloppyfilenameHDPT.VIR,"N"toexitcontinue(Y/N)。

大意為:請插入一張軟碟,以便將壞的引導區信息做一備份,其檔案命名為HDPT.VIR。插入軟碟按下“Y”鍵繼續,按下“N”鍵退出。

插入一張軟碟並按下“Y”鍵後,螢幕顯示:

HarddiskPartitiontableorbootsectorfixedOK!!!

Fixing......

注意:此時KV3000正在修復C糟的分區表,不要中斷其操作。過了一會兒之後,如果螢幕出現以下字樣:

OK!OK!OK!

Pressanykeytoreturn......

則說明重建分區表的操作成功,按任意鍵退出。重新啟動電腦後,如果能夠進入C、D等分區,修復成功。

備份恢復分區表

DiskGenius不僅提供了諸如建立、激活、刪除、隱藏分區之類的基本硬碟分區管理功能,還具有分區表備份和恢復、分區參數修改、硬碟主引導記錄修復、重建分區表等強大的分區維護功能。此外,它還具有分區格式化、分區無損調整、硬碟表面掃描、扇區拷貝、徹底清除扇區數據等實用功能。

提示:如果只是想利用DiskGenius查看、備份硬碟分區信息,可以直接在Windows下運行它,但如果涉及更改分區參數的寫盤操作,則必須在純DOS環境下運行,而且在使用前應將CMOS中的“AntiVirus”選項設為“Disable”。

運行DiskGenius後,程式將自動讀取硬碟的分區信息,並在螢幕上以圖表的形式顯示硬碟分區情況。如圖所示,這是DiskGenius檢測筆者硬碟得到的分區信息結構圖。其中左側的柱狀圖顯示硬碟上各分區的位置及大小,螢幕右側用表格的形式顯示了各分區的類型及其具體參數,包括分區的引導標誌、系統標誌、分區起始和終止柱面號、扇區號、磁頭號。在柱狀圖與參數表格之間,有一個動態連線指示了它們之間的對應關係。可以通過滑鼠在柱狀圖或表格中點擊來選擇一個分區,也可以用鍵盤上的游標移動鍵來選擇當前分區。

需要備份分區表的時候,按下“F9”按鍵或者運行“工具→備份分區表”命令,並且在彈出的對話框中輸入檔案名稱即可備份當前分區表。按下“F10”按鍵或者運行“工具→恢復分區表”命令,然後輸入檔案名稱,軟體將讀入指定的分區表備份檔案並更新螢幕顯示,確認無誤後即可將備份的分區表恢復到硬碟。

恢復分區表

以及是否為活動分區等重要信息。一旦分區表被破壞,系統因為無法識別分區,會把硬碟作為一個未分區的裸盤處理,因此造成一些軟破壞,也不用著急,網路上有一款非常不錯的分區表修復維護工具可以幫我們找回昔日正常的硬碟,這就是DiskMan

DiskMan是一款小巧的硬碟分區表維護工具,大小只有108KB,可是功能卻非常強大。它可以手工修改硬碟有中包括邏輯分區在內的所有數據,能重建被三十的表,可以按使用者的意願分區,從而使一個硬碟中多個作業系統共存。它的獨特之處在於,採用全中文圖形界面,無須任何漢字系統支持,以非常直觀的圖表提示了分區表的詳細結構。

DiskMan後出現的程式界面邊柱形表示古物,有幾截就表明有幾個分區,其不同的顏色表示不同的分區類型,帶格線屬擴展(邏輯)分區,不帶格線屬主分區(或自由空間)。右邊的圖表是硬碟及各分區的參數信息,可用十進制和十六進制顯示。分區和分區參數的對應關係用箭頭聯繫起來,一目了然。

啟動該軟體後,它會自動檢查硬碟分區參數,發現不合理參數時逐一給出提示。你可以手工修改錯誤的參數,方法是:用游標上、下方向鍵選擇(或滑鼠點擊)要修改的分區,按F11鍵進入修改狀態。在彈出的“修改分區參數”視窗中,將游標移動到要修改的參數項,鍵入設定的值後,選“確定”退出即可。對修改過的分區,其序號旁邊被標記上藍色的字母m。如果分區的大小或位置改動過,該分區將被視為新建立的分區,其序號旁的標誌變為紅色的字母n,存檔後,該分區的原引導記錄將不再起作用或被覆蓋。
提示:不要隨便更改分區大小,特別是修改分區起始柱面、起始扇區、起始磁頭參數,這會造成邏輯盤數據的丟失,因為DiskMan不能無損調整分區。

DiskMan中最重要的一項功能就是重建分區表了。如果你的硬碟分區表被分區調整軟體(或病毒)嚴重破壞,引起硬碟和系統癱瘓,DiskMan可通過未被破壞的分區引導記錄信息重新建立分區表。在選單的工具列中選擇“重建分區”,DiskMan即開始搜尋並重建分區。DiskMan將首先搜尋0柱面0磁頭從2扇區開始的隱含扇區,尋找被病毒挪動過的分區表。接下來搜尋每個磁頭的第一個扇區。搜尋過程可以採用“自動”或“互動”兩種方式進行。自動方式保留髮現的每一個分區,適用於大多數情況。互動方式對發現的每一個分區都給出提示,由用戶選擇是否保留。當自動方式重建的分區表不正確時,可以採用互動方式重新搜尋,如果重新找回分區,上面的數據都能保留。

利用DiskMan手工修改分區參數,需要熟悉分區各參數的意義;而用其“重建分區”功能,也不能保證百分之百正確恢復。所以保護分區表最保險的方法還是備份分區表信息。啟動DiskMan後按F9,輸入檔案名稱,插入軟碟後選擇確定即可。如要還原,只需按F10鍵,按提示操作,即可將硬碟分區信息完全恢復。

提示:將DiskMan作為必備工具軟體,放到系統緊急啟動盤上,並利用它將分區表信息也備份到啟動盤上,有務無患。

此外,DiskMan還能建立分區、激活分區、刪除分區、隱藏分區、查看任意扇區數據。它的所有功能都可以通過快捷鍵和滑鼠點擊選單的方式來完成,操作非常方便;並且,所有操作在未存檔前,都在記憶體中進行,不必擔心誤操作造成嚴重後果。

分區方案

MBR分區表

傳統的分區方案(稱為MBR分區方案)是將分區信息保存到磁碟的第一個扇區(MBR扇區)中的64個位元組中,每個分區項占用16個位元組,這16個位元組中存有活動狀態標誌、檔案系統標識、起止柱面號、磁頭號、扇區號、隱含扇區數目(4個位元組)、分區總扇區數目(4個位元組)等內容。由於MBR扇區只有64個位元組用於分區表,所以只能記錄4個分區的信息。這就是硬碟主分區數目不能超過4個的原因。後來為了支持更多的分區,引入了擴展分區及邏輯分區的概念。但每個分區項仍用16個位元組存儲。

MBR分區方案不是用得好好的嗎?為什麼要提出新的方案呢?那就讓我們看看MBR分區方案有什麼問題。前面已經提到了主分區數目不能超過4個的限制,這是其一,很多時候,4個主分區並不能滿足需要。另外最關鍵的是MBR分區方案無法支持超過2TB容量的磁碟。因為這一方案用4個位元組存儲分區的總扇區數,最大能表示2的32次方的扇區個數,按每扇區512位元組計算,每個分區最大不能超過2TB。磁碟容量超過2TB以後,分區的起始位置也就無法表示了。在硬碟容量突飛猛進的今天,2TB的限制將很快被突破。由此可見,MBR分區方案已經無法滿足需要了。

GPT分區表

一種由基於Itanium計算機中的可擴展固件接口(EFI)使用的磁碟分區架構。與主啟動記錄(MBR)分區方法相比,GPT具有更多的優點,因為它允許每個磁碟有多達128個分區,支持高達18千兆兆位元組的卷大小,允許將主磁碟分區表和備份磁碟分區表用於冗餘,還支持唯一的磁碟和分區ID(GUID)。與支持最大卷為2TB(terabytes)並且每個磁碟最多有4個主分區(或3個主分區,1個擴展分區和無限制的邏輯驅動器)的主啟動記錄(MBR)磁碟分區的樣式相比,GUID分區表(GPT)磁碟分區樣式支持最大卷為18EB(exabytes)並且每磁碟最多有128個分區。與MBR分區的磁碟不同,至關重要的平台操作數據位於分區,而不是位於非分區或隱藏扇區。另外,GPT分區磁碟有多餘的主要及備份分區表來提高分區數據結構的完整性。

9防範故障

由於分區表故障屬於軟故障,因此我們在日常使用計算機的時候需要養成正確的使用習慣,這樣才能防患於未然,儘可能減少分區表出故障的可能性。

1.計算機中一定要安裝防毒軟體,這不僅可以防止各種常見的病毒入侵計算機,更能夠減少使用軟碟或者光碟時,分區表誤中病毒的可能性。而且在一般情況下,儘量不要使用來源不明的軟碟與光碟。

2.新購置的硬碟建議在安裝Windows2000/XP的時候採用內置程式進行分區,或者藉助Fdisk程式進行分區,儘量不要用第三方快速分區格式化一體的程式,這有可能導致日後使用計算機過程中出現故障。

3.對分區進行劃分或者調整操作的時候,儘量選擇電源比較穩定的時間段,有可能的情況下最好能夠使用外接UPS電源。

4.在計算機穩定運行的情況下,儘可能不要對分區表進行調整和轉換操作,尤其是NTFS分區,在進行上述操作之前一定要備份分區中的重要數據檔案。

5.安裝好作業系統之後,建議對分區表進行備份,以防出現故障時能夠及時恢復。

看完上述介紹的內容之後,相信大家遇到分區表故障的時候也不會一籌莫展了吧,希望分區表故障不再困擾我們正常使用自己的計算機。

關知識相

當通過Fdisk或其他分區工具對硬碟進行分區時,分區軟體會在硬碟0柱面0磁頭1扇區建立一個64位元組的分區表,包括硬碟主引導記錄MBR(MainBootRecord)和分區表DPT(DiskPartitionTable)。其中主引導記錄MBR的作用就是檢查分區表是否正確以及確定哪個分區為引導分區,並在程式結束時把該分區的啟動程式調入記憶體加以執行;而分區表DPT則以80H或00H為開始標誌,以55AAH為結束標誌,位於主引導扇區的最末端。整個分區表決定了硬碟中的分區數量,每個分區的起始及終止扇區、大小以及是否為活動分區等。

相關條目

科學 生活 網路俗語

相關詞條

相關搜尋

熱門詞條

聯絡我們