Win2000磁盤編輯(二)
磁盤編輯之一是針對主引導記錄的操作,這次介紹針對分區(qū)表的操作。
一、分區(qū)與分區(qū)表的背景知識:
分區(qū)表存放位置在硬盤的0柱面0磁面1扇區(qū)的512個字節(jié)中的主引導記錄之后,分區(qū)表信息在主引導扇區(qū)中存放的起始位置是固定的,都是從扇區(qū)的2BEH處開始連續(xù)存放,一個分區(qū)的記錄信息共占用16個字節(jié),分區(qū)表直到到該扇區(qū)倒數(shù)第三個字節(jié)結(jié)束(包括倒數(shù)第三個字節(jié)在內(nèi))。一共64個字節(jié),所以一個硬盤最多可以分成4個分區(qū)。實際中如果分區(qū)數(shù)不滿4個時,不使用的分區(qū)記錄位置分區(qū)命令程序可以自動以0填充。
每條分區(qū)記錄中的這16個字節(jié)含義如下:(以分區(qū)表地址偏移來表示)
偏移量; 含義; 記錄長度(字節(jié)) 00H; 引導指示符; 1 01H; 分區(qū)引導記錄磁頭號; 1 02H; 分區(qū)引導記錄扇區(qū)號; 1 03H; 分區(qū)引導記錄柱面號; 1 04H; 系統(tǒng)指示符; 1 05H; 分區(qū)結(jié)束磁頭號; 1 06H; 分區(qū)結(jié)束扇區(qū)號; 1 07H; 分區(qū)結(jié)束柱面號; 1 08H; 分區(qū)前面的總扇區(qū)數(shù); 4 0CH; 分配給分區(qū)的扇區(qū)數(shù); 4
表中引導指示符是指該分區(qū)是否可以引導,如果為80H,就是可引導的,是00H就是不可引導的,在使用FDISK過程中,有一項激活分區(qū)的操作,實質(zhì)就是將該字節(jié)寫為80H。系統(tǒng)指示符是表明該分區(qū)屬于哪種分區(qū)格式的,01H表示FAT16.
由于每一個分區(qū)都是可再往下劃分邏輯驅(qū)動器的,所以,激活的本質(zhì)是激活哪個邏輯驅(qū)動器。例如,很多機器都是將一個10G左右的物理硬盤先劃分為兩個分區(qū),然后將第一分區(qū)再劃分成C、D兩個邏輯驅(qū)動器,激活邏輯驅(qū)動器C為可引導;到這一步特別注意:不可再激活邏輯驅(qū)動器D。如果想安裝兩個操作系統(tǒng),必須先在第二分區(qū)中劃分好邏輯驅(qū)動器,再激活該分區(qū)中的一個邏輯驅(qū)動器。
針對硬盤分區(qū)表可進行的操作主要有:a.如何在硬盤狀態(tài)完好的時候?qū)⒎謪^(qū)表信息讀出并保存?b.如何在分區(qū)表發(fā)生故障后,用備份的分區(qū)表來代替損壞的分區(qū)表?c.如果沒有可用的分區(qū)表的備份,如何手工重建分區(qū)表信息?其中難度最大,當然也是技術(shù)要求最高的也就是手工重建分區(qū)表了。
在幫助文檔中,明確指出DiskProbe不支持FAT32,所以,DiskProbe對FAT32的分區(qū)表不能操作。從這一點說,它的功能受到了相當?shù)南拗?。但以前曾?jīng)發(fā)現(xiàn)過,某些工具幫助文檔中介紹的功能與實際具備的功能確實有出入,所以你也不能將幫助文檔中的說法太當真了,但由于我自己機器上不是采用的FAT32分區(qū)方法,也就沒有進行針對FAT32的試驗。如果哪位有FAT32的硬盤,可以自己試驗一下。
解決分區(qū)表故障的步驟中,首先是讀取和檢查主引導記錄中的分區(qū)表信息。這部分描述:
二、取得分區(qū)表信息的方法
不論是備份分區(qū)表或是僅僅查看一下,都需要先取得分區(qū)表信息,其步驟是:
1. 執(zhí)行程序:DiskProbe2. 在菜單Drives 中,鼠標點擊: Physical Drive.3. 在菜單 Open Physical Drive 的對話框中, 以鼠標雙擊你準備顯示分區(qū)表的那個驅(qū)動器名稱。例如:Physical Drive 04. 在 Handle 0范圍內(nèi)的 Open Physical Drive 對話框中,點擊 Set Active,之后單擊 OK.5. 在菜單的 Sectors一項中,點擊 Read一項。.6. 在接下來出現(xiàn)的 Read Sectors 對話框中輸入將要讀取的起始扇區(qū)和扇區(qū)號, 即Starting Sector一項填寫0, Number of Sectors 一項中填寫1,實際這兩個數(shù)字也是默認值。然后點擊Read,讀取扇區(qū)信息。以上這六步驟實際就是讀取主引導記錄扇區(qū);
7. 在VIEw菜單中,點擊 Partition table。立即顯示分區(qū)表信息的對話框
8. 要在 Partition table index 的列表框中,用鼠標雙擊分區(qū)表的號碼,圖中相應的分區(qū)表信息會自動變化。 從圖中可以也看出來:分區(qū)表信息和上面表中是相對應的,有:分區(qū)起始磁頭號和分區(qū)結(jié)束磁頭號;分區(qū)起始扇區(qū)號和分區(qū)結(jié)束扇區(qū)號;分區(qū)起始柱面號和分區(qū)結(jié)束柱面號;
9. 按說應當將分區(qū)表保存為一個文件,但由于只有區(qū)區(qū)64個字節(jié),并且和主引導記錄共存在同一個扇區(qū)中,一般也就將它與主引導記錄一并進行保存到同一個文件中。10. 如果使用你會使用Dos的debug工具,可以編寫一段匯編程序,將這個扇區(qū)的內(nèi)容讀取出來,用拷貝屏幕的方式進行打印,可以將主引導扇區(qū)的內(nèi)容保存在紙上,作分析參考之用。由于采用了匯編語言,所以這種方法局限性小,所有Windows9.x系列或dos均可用。在dos下鍵入:Debug 回車(以下代碼手工輸入,注意空格不可省略) -a0mov ax 201mov bx 100mov cx 1mov dx 80int 13int 3-g=0
然后用命令:-d100顯示內(nèi)容,在打印機聯(lián)機狀態(tài)下,按下鍵盤的PrintScreen鍵,就可以將屏幕上當時顯示的內(nèi)容完全打印到紙上。但我沒有試驗這個辦法的在NTFS分區(qū)下是否可用。
可能有的朋友會有這樣的疑問:Windows2000是對安全性要求非常高的系統(tǒng),不使用口令而在匯編中調(diào)用INT13中斷,來直接讀取主引導扇區(qū)。會不會成功或者影響安全性呢?這種擔心是多余的,因為安全性是針對操作系統(tǒng)和運行在操作系統(tǒng)之上的文件而言的,而主引導扇區(qū)并不屬于任何操作系統(tǒng),即機器在執(zhí)行主引導記錄代碼的時候,操作系統(tǒng)還沒有在內(nèi)存中建立起來,一切都還沒有顯現(xiàn),當然是安全的。所以,這和保證數(shù)據(jù)文件安全并不矛盾。
三、如何用備份的分區(qū)表(或主引導扇區(qū)信息)來恢復損壞的分區(qū)表:
1. 首先執(zhí)行程序:DiskProbe.2. 在菜單Drives 中,鼠標點擊: Physical Drive.3. 在菜單 Open Physical Drive 的對話框中, 以鼠標雙擊你準備修理分區(qū)表的那個驅(qū)動器名稱。例如:Physical Drive 04. 在 Handle 0范圍內(nèi)的 Open Physical Drive 對話框中,點擊 Set Active,之后單擊 OK.5. 在菜單的 Sectors一項中,點擊 Read一項。6. 在接下來出現(xiàn)的 Read Sectors 對話框中輸入將要讀取的起始扇區(qū)和扇區(qū)號, 即Starting Sector一項填寫0, Number of Sectors 一項中填寫1,實際這兩個數(shù)字也是默認值。然后點擊Read,讀取扇區(qū)信息。7. 在View菜單中,點擊 Partition table。顯示當前的分區(qū)表信息 8. 要在 Partition table index 的列表框中,用鼠標雙擊準備維修的分區(qū)表的號碼,選定后,對話框下半部分立即顯示相應的分區(qū)表信息。(這些信息肯定是沒有修理之前的數(shù)值了)。上面這些操作與讀取分區(qū)表甚至與讀取主引導記錄的操作都是大同小異,但以下的就比較關(guān)鍵了:9. 在對話框中各個參數(shù)中填寫入新的數(shù)值。這些新的數(shù)值應當是查對備份分區(qū)表信息文件后取得的。當然也可以是從備份的分區(qū)表文件直接轉(zhuǎn)換為分區(qū)信息。如果編輯時不想使用對話框形式,可用上面介紹的方法將顯示轉(zhuǎn)換為字節(jié)形式,在字節(jié)形式下,僅顯示選定的分區(qū)信息,其它部分(包括主引導記錄)都是0。 10. 在Sectors(扇區(qū))菜單中 ,鼠標點擊:Write.11. 這時將出現(xiàn) Write Sector 對話框, 在起始扇區(qū)的 Starting sector一項中選0,然后點擊 Write it 保存。
12. 點擊 Yes,這時就完成了覆蓋原來數(shù)據(jù)的操作。
四、手工重建分區(qū)表
這種方法需要使用者非常熟悉分區(qū)結(jié)構(gòu),最好硬盤分區(qū)較少,分區(qū)情況也比較簡單。如果分區(qū)多而復雜,難度太大。即使簡單的情形,不到萬不得已也不要用這種方法。
手工建立分區(qū)表主要難在分區(qū)數(shù)據(jù)的計算上。計算之前需要已知的數(shù)據(jù)有:硬盤的柱面數(shù),磁頭數(shù),每磁道的扇區(qū)數(shù)。這些數(shù)據(jù)在硬盤標簽上可以很容易地查找出來。
首先,因為0柱面0磁頭(面)1扇區(qū)不屬于任何分區(qū)而且是隱藏的,所以第一個分區(qū)應當從0柱面1磁頭1扇區(qū)開始。現(xiàn)在的硬盤都比較大,常見的是每磁道63扇區(qū),每個扇區(qū)是512字節(jié),柱面數(shù)和磁頭數(shù)則隨著硬盤容量的增大而不同。計算時先選定容量,根據(jù)需要的容量,推算出第一分區(qū)結(jié)束的扇區(qū)號、磁頭號和柱面號。最后填寫的值要轉(zhuǎn)換為16進制。緊鄰上一個結(jié)束位置,就是第二分區(qū)的起始位置,依此類推,直至結(jié)束。磁頭數(shù)可以理解為與磁面數(shù)相等,柱面數(shù)可以理解為一個磁面上可劃分的磁道數(shù)。這樣,一個磁面的容量就是512*63(扇區(qū))*柱面數(shù)。例如第一分區(qū)要用到最前面的125個磁面(或磁頭),下一分區(qū)必須從第126磁面(或磁頭)開始。則容量是=512*63*125*柱面數(shù)。扇 區(qū)數(shù)柱面數(shù)推算也和這相仿。 更詳細的計算請參考有關(guān)資料。算出的數(shù)據(jù)填寫在分區(qū)表中,其操作同上。
五、注意問題
1. 上面介紹的,與其說是手工重建分區(qū),不如說是手工新建分區(qū)。危險性很大。且沒有針對NTFS試驗過。2. 如果是恢復原有分區(qū),不推薦手工重建,因為一旦輸入錯誤的分區(qū)表,將丟失原有數(shù)據(jù)。3. 計算必須將結(jié)果轉(zhuǎn)換為16進制,可以使用附件中的計算器。(設(shè)置為函數(shù)型)。
