當伺服器或工作站上的磁碟區變成無法存取或「磁碟系統管理員」將其顯示為「未知」時,該開機磁區可能已損毀或損壞。本文將告訴您,如何找到 NTFS
儲存的第二份複本,並將其復原到磁碟上的正確位置。
請記住,您的情況必須符合兩項條件,此資訊才能套用至您的問題:
- 檔案系統必須是 NTFS。FAT 目前並不保存開機磁區的複本。
- 您必須能夠以 NT 啟動電腦。
注意:如果您無法以 NT 啟動電腦或將磁碟機移至另一台 NT 電腦,請參閱下列的「Microsoft 知識庫」文件:
121517?
(http://support.microsoft.com/kb/121517/
)
如何復原毀損的 NTFS 開機磁扇區
如果要解決這個問題,必須擷取備份開機磁區的複本,並將其複製回「硬碟」上的正確位置。
在 NT
3.5x 中,第二份複本是保存在邏輯磁碟區的中央位置 (Volume Middle)。
在 NT 4.0 及 Windows 2000
中,該複本已被移至邏輯磁碟區的結尾 (Volume End),需要的擷取技巧也不相同。這裡所示的範例使用隨附於 NT V4.0 Resource Kit 的
NT 版 Disk Probe (dskprobe.exe);而在 NT V3.5x 環境中,如果安裝了適當的 .dll
檔案,也可以執行。
注意:
如果要在進行下列程序期間確保復原,則請在確定 NTFS
開機磁區及複本均有效之後,便將該磁區儲存到檔案中,再從 [檔案] 功能表選取 [另存新檔],並指定路徑及檔案名稱來加以檢視。
復原主要磁碟分割的開機磁區。
- 使用 Disk Probe 選擇 [DRIVES]、[Physical Drive]。選取
PhysicalDriveX,其中 X = 磁碟的序數。例如,使用「磁碟系統管理員」來尋找有問題的磁碟的序數。例如,如果我的系統中有三個 SCSI 磁碟,其
SCSI ID 分別為 1、3 及 5,則「磁碟系統管理員」便會以 0、1、2 的順序來加以顯示。此外,如果我將 SCSI ID #3 的磁碟移除,則 ID
#5 的 SCSI 磁碟便會向上移至磁碟 1,以此類推。
- 按兩下您希望修復的 PhysicalDriveX。在下方的方塊中,取消選取 [Read Only],然後按 [Set
Active] 按鈕。接著您會注意到 [Active Handle] 已被設為 PhysicalDriveX,然後選取 [OK]。
- 從 [SECTORS] 功能表選取 [Read],並在 [STARTING SECTORS] 中插入 0,在
[Number of Sectors] 中插入 1,再按一下 [Read]。
- 您現在位於「實體」磁碟的「主開機記錄」(MBR)。您可用右手邊起始於「位移 8B」處的 ASCII
文字來確認這點,該文字應該是「Invalid Partition Table....」。請從 [VIEW] 功能表選取 [Partition
Table]。在標示為 [partition table index]
的方塊中,使用捲軸來選取有問題的磁碟分割,並按兩下該「磁碟分割」。左下角的「方塊」會顯示「相關磁區」,請記下此值 (在其下的線上),然後選取此方塊旁的
[GO] 標籤。
Record RELATIVE SECTOR __________ value. - 現在請從 [VIEW] 功能表選取
[Bytes],以確認您的位置。根據「開機磁區」的毀損程度不同,您也許可以辨識出一些 ASCII 字串,例如右上角的 NTFS,或起於位移 130 處的「A
disk Read error occurred...」。請從 [VIEW] 功能表選取 [NTFS bootsector]。在這個檢視中,為 NT V4.0
選取按鈕 [Volume End],或為 NT V3.5x 選取 [Volume
Middle]。您現在應該位於開機磁區的備份複本。如果得到錯誤訊息指出「讀取的資料不完整 (incomplete Data
Read)」,或者在檢查位元組數後,判斷這並不是開機磁區的備份複本,表示您的主要開機磁區已經毀損,因此我們需要用來「跳」至備份複本的值並不正確。請繼續進行下一節,該節說明如何在開機磁區遺失或嚴重毀損時加以復原,否則請繼續步驟
6。
- 從 [VIEW] 功能表選取 [Bytes],並確認這是 NTFS 開機磁區。確認之後,從 [SECTORS]
功能表選取 [Write],確定對話方塊顯示出正確的 Handle 及 PhysicalDrive。在 [Starting Sector to write
Data] 方塊中,輸入您在步驟 #4 中所記下的「相關磁區」數目,然後選取 [Write it] 按鈕。
- 移至 [SECTORS] 功能表,在 [Relative Sector] 中輸入在步驟 #4 記下的資料,同時將
[Number of sectors] 保持為 1,並選取 [Read]。此時,請確認已寫入資料。
- 關閉 Disk Probe,然後重新啟動系統。
如果原始複本遺失,嚴重毀損或包含任何可用的資料,復原備份開機磁區。
如果開機磁區遺失或嚴重毀損,以致「主要開機」磁區指標中的資訊都變得不正確,通常磁區的數目也會錯誤,請使用下列步驟進行復原。
- 使用 Disk Probe 選擇 [DRIVES]、[Physical Drive]。選取
PhysicalDriveX,其中 X = 磁碟的序數。例如,使用「磁碟系統管理員」來尋找有問題的磁碟的序數。
- 按兩下您希望檢視的 PhysicalDriveX。在下方的方塊中,取消選取 [Read Only],然後選取 [Set
Active] 按鈕。接著您會注意到 [Active Handle] 已被設為 PhysicalDriveX,然後選取 [OK]。
- 從 [SECTORS] 功能表選取 [Read],並在 [STARTING SECTORS] 中插入 0,在
[Number of Sectors] 中插入 1,再按一下 [Read]。
- 您現在位於「實體」磁碟的 MBR。您可用右手邊起始於「位移 8B」處的 ASCII
文字來確認這點,該文字應該是「Invalid Partition Table....」。從 [VIEW] 功能表選取檢視 [Partition
Table]。選取有問題的磁碟分割的正確編號。
- 我們需要兩個值:「Total Sectors (磁區總數)」、「Relative sectors
(相關磁區)」。請記下「相關磁區」值,因為這是開機磁區應在的位置。如果要尋找開機磁區的備份複本,請執行下列計算:
記錄磁區總數:_________
記錄相關磁區:_________
範例 #1:針對 NT
V4.0,其中備份複本位在磁碟區的結尾:
磁區總數 --> 1062880
+ 相關磁區 --> 32 +
---------
1062912
- 減去一個磁區 --> 1 -
---------
備份開機磁區 --> 1062911
範例 #2:針對 NT V3.5x,其中備份複本位在磁碟區的中央:
磁區總數 --> 1062880
除以 2 --> 531440
+ 相關磁區 --> 32 +
---------
備份開機磁區 --> 531472
- 選取 [SECTORS]、[Read],並將步驟 #5 中計算的值輸入 [Starting sector],而
[Number of sectors] 則輸入 1。選取 [Read],您應會位於備份開機磁區的位置。
- 從 [VIEW] 功能表選取 [Bytes],並確認這是 NTFS 開機磁區。確認之後,從 [SECTORS]
功能表選取 [Write],確定對話方塊顯示出正確的 Handle 及 PhysicalDrive。在 [Starting Sector to write
Data] 方塊中,輸入您在步驟 #5 中所記下的「相關磁區」數目,然後選取 [Write it] 按鈕。
- 移至 [SECTORS] 功能表,在 [Relative Sector] 中輸入在步驟 #5 記下的資料,同時將
[Number of sectors] 保持為 1,然後選取 [Read]。此時,請確認已寫入資料。
- 關閉 Disk Probe,然後重新啟動系統。
復原延伸磁碟分割的開機磁區:
- 使用 Disk Probe 選擇 [DRIVES]、[Physical Drive]。選取
PhysicalDriveX,其中 X = 磁碟的序數。例如,使用「磁碟系統管理員」來尋找有問題的磁碟的序數。
- 按兩下您希望檢視的 PhysicalDriveX。在下方的方塊中,取消選取 [Read Only],然後選取 [Set
Active] 按鈕。接著您會注意到 [Active Handle] 已被設為 PhysicalDriveX,然後選取 [OK]。
- 從 [SECTORS] 功能表選取 [Read],並在 [STARTING SECTORS] 中插入 0,在
[Number of Sectors] 中插入 1,再按一下 [Read]。
- 您現在位於「實體」磁碟的 MBR。您可用右手邊起始於「位移 8B」處的 ASCII
文字來確認這點,該文字應該是「Invalid Partition Table....」。從 [VIEW] 功能表選取檢視 [Partition
Table]。選取 [VIEW , As Partition Table]。
- 在這個檢視的 [Partition Table Index]
方塊中,選取包含「延伸」磁碟分割的磁碟分割。完成之後,[System ID] 方塊應變為
[Extended]。如果有問題的磁碟分割是「延伸」磁碟分割中的第四個邏輯磁碟機,則按四次 [Next partition] 按鈕。[System ID]
方塊現在應變為 [NTFS]
- 此時請在 [Partition Table Index] 方塊中,選取 (按兩下)
包含「延伸」磁碟分割的磁碟分割。完成之後,[System ID] 方塊應變為 [Extended]。
現在,請瀏覽到延伸磁碟分割中需要修復的邏輯磁碟區。如果損壞的磁碟區是該磁碟分割中的第二個磁碟區,請按兩次 [Next Partition]
按鈕。當您在延伸磁碟分割中瀏覽磁碟區時,[System ID] 欄位應指出每個磁碟分割的檔案系統。
一旦找出需要修復的磁碟分割後,請記錄目前的磁區 (從 Disk Probe
的標題列中)、相關的磁區以及此磁碟區的磁區總數。這些資訊將用來計算開機磁區的備份複本的位置。
目前的磁區
________________________
相關磁區 _______________________
磁區總數
_________________________
按一下 [Go]
按鈕,前往受損磁碟區的開機磁區。從標題列記下此磁區的位置。
開機磁區
___________________________
若要確認您查看的是正確的磁區,請從 [View] 功能表選取
[Bytes]。如果該磁區只有輕微受損,則您應可在右手邊的欄位中,看到 ASCII
錯誤文字(如果該磁區已被完全覆寫,則無法進行這項確認)。
請記下這個位置,這樣我們才知道要將備份開機磁區複製到何處。
目前磁區 __________
相關磁區 __________
磁區總數 __________
- 如果要尋找備份複本,您需要三個值:「Relative Sectors (相關磁區)」、「Total Sectors
(磁區總數)」及「Current sector (目前磁區)」 (您在步驟 #6 中記下的值)。請使用您的值來執行下列計算:
範例
#1:針對 NT V4.0,其中備份複本位在磁碟區的結尾:
目前磁區: 819200
磁區總數: 243680 +
======
1062880
相關磁區 32 +
======
1062912
減去一 1 -
======
備份開機磁區 1062911
範例 #2:針對 NT V3.5x,其中備份複本位在磁碟區的中央:
目前磁區: 819200
+ 磁區總數:243680 除以 2: 121840 +
======
941040
+ 相關磁區 32 +
======
備份開機磁區 941072
- 選取 [SECTORS]、[Read],並在 [Starting sector] 中輸入步驟 #7
所計算的值,[Number of sectors] 則輸入 1。選取 [Read],您應會位在備份開機磁區的位置。
- 從 [VIEW] 功能表選取 [Bytes],並確認這是 NTFS 開機磁區。您應該會在右手邊的欄位中看到 ASCII
錯誤文字。如果這個磁區看起來不是有效的開機磁區,請不要再繼續。請重新執行本程序,找出包含開機磁區備份複本的正確磁區。
一旦確認這是開機磁區的備份複本後,請將此磁扇區寫入您在步驟 6 中所發現的原始開機磁區位置。請從 [Sectors] 功能表中選取
[Write]。確定對話方塊顯示正確的 Handle 及 PhysicalDrive。在 [Starting Sector]
方塊中,輸入原始開機磁區的位置。按一下 [Write it],將此資訊寫入磁碟。 - 前往 [SECTORS] 功能表並選取 [Read]。在啟動磁區中,輸入您寫入備份複本的「磁區」,並同時將
[Number of sectors] 保持為 1。選取 [Read],並確認已寫入資料。
- 關閉 Disk Probe,然後重新啟動系統。
Norton Diskedit 是由 Symantec Corporation 所製造,該廠商不屬於
Microsoft;我們不對此產品的效能或可靠性進行任何暗示的或其他形式的擔保。