問題表現
(1)在讀取某一檔案或運行某一程式時,硬碟反覆
讀盤且出錯,提示檔案損壞等信息,或者要經過很長時間才能成功,有時甚至會出現
藍屏等;
(2)硬碟聲音突然由原來正常的摩擦音變成了怪音;
(3)在排除
病毒感染的情況下系統無法正常啟動,出現“Sector not found”或“General error in reading drive C”等提示信息;
(4)FORMAT
硬碟時,到某一進度停止不前,最後報錯,無法完成;
(6)對硬碟執行FDISK時,到某一進度會反覆進進退退;
壞扇類型
軟損壞扇區
軟損壞扇區是由硬碟
格式化產生的問題。是可以將它們標記出來或通過再次格式化來修復的。但需要注意的是,如果格式化硬碟將完全丟失全部數據。
物理損壞
物理損壞是一種無法修復的損壞,且會造成數據將永遠無法寫入到這種扇區中。如果
硬碟中有這種壞扇區,這塊硬碟就快壽終正寢了。
硬碟被分割為以扇區為單位的
存儲單元用於存儲數據。每個硬碟都有成千上萬的
扇區。硬碟在存儲數據前,其中的壞扇區被標記出來以使計算機不在這些扇區中寫入數據。為避免由於壞扇區而造成損失,應該每隔6個月進行一次檢測,同時,應避免硬碟受到撞擊或顛簸。如果有一些連續的壞扇區,則表示硬碟磨損得已經很厲害了。如果壞扇區的數量增長很快,最好將全部數據備份並嚴密地監視其工作情況,這也許是更換硬碟的時候了。
壞扇數據形成
地址標記區域損壞
地址信息出錯。一般是由於某個扇區記錄的地址信息出錯,系統在對它訪問時發現其地址信息與系統編排的信息不一致。實際上,目前一些主流的
硬碟驅動器不再使用扇區ID或地址標記扇區,相反,這個信息前面提到的伺服扇區中
編碼。
數據損壞
系統每次在往扇區中寫數據的同時,都根據這些數據經過一定的算法運算生成一個
校驗碼(
ECC=Error Correction Code),並將這個
校驗碼記錄在該扇區的信息區內。以後從這個扇區讀取數據時,都會同時讀取其校檢碼,並對數據重新運算以檢查結果是否與校檢碼一致。如果一致,則認為這個扇區正常,存放的數據正確有效;如果不一致,則認為該扇區出錯,這就是校驗錯誤。這是硬碟最主要的缺陷類型。導致這種缺陷的原因主要有:磁碟表面
磁介質損傷、硬碟寫功能不正常、
校驗碼的算法差異。
扇區標誌出錯
扇區標誌出錯,造成系統在需要讀寫時找不到相應的扇區。造成這個錯誤的原因可能是系統參數錯亂,導致內部地址轉換錯亂,系統找不到指定扇區;也有可能是某個扇區記錄的標誌信息出錯導致系統無法正確辨別扇區。
ECC欄位出錯
雖然
ECC代碼也遭到損壞是極為罕見的。在這種情況下,
驅動器從扇區讀取正確的數據並對照
ECC代碼檢查其完整性。如果由於錯誤的
ECC代碼檢查失敗,驅動器將返回一個錯誤,並且沒有返回數據,因為沒有辦法來驗證數據的完整性。
伺服信息損壞
現在的硬碟大多採用
嵌入式伺服,硬碟中每個正常的物理
磁軌都嵌入有一段或幾段信息作為伺服信息,以便磁頭在尋道時能準確定位及辨別正確編號的物理磁軌。如果某個物理磁軌的伺服信息受損,該物理磁軌就可能無法被訪問。這就是“磁軌伺服缺陷”。一般表現為,分區過程非正常中斷;格式化過程無法完成;用檢測工具檢測時,中途退出或當機,等等。
壞塊標記錯誤
某些軟體或
病毒程式可以在部分扇區強行寫上壞塊標記,讓系統不使用這些扇區。這種情況嚴格來說不一定是硬碟本身的缺陷,但想清除這些壞塊標記卻不容易。
系統信息錯亂
每個硬碟內部都有一個系統保留區(service area),裡面分成若干模組保存有許多參數和程式。硬碟在通電自檢時,要調用其中大部分程式和參數。如果能讀出那些程式和參數模組,而且校驗正常的話,硬碟就進入準備狀態。如果某些模組讀不出或校驗不正常,則該硬碟就無法進入準備狀態。一般表現為,PC系統的
BIOS無法檢測到該硬碟或檢測到該硬碟卻無法對它進行讀寫操作。
壞扇區修復原理
硬碟驅動器的設定即從不返回未通過完整性檢查的數據。然而,卻有可能通過向硬碟傳送一個特殊的指令使其在讀取數據時跳過錯誤檢查和校驗,這個命令被稱為Read Long,在1994年第一次被引入ATA/ATAPI標準里。指令允許從不通過錯誤檢查和校驗就能扇區中讀取原始數據和
ECC碼並返回到主機中。這個命令從1998年ATA/ATAPI-4標準中去除,但目前大多數硬碟製造商仍在使用。
後來,當硬碟容量變得更大,同時在大於128GB的硬碟中引入了48位
LBA晶片組,這個命令正式的恢復並成為SMART命令傳輸或
SCT。
顯然,由於驅動器通過讀長命令來請求數據時沒有驗證數據的完整性,這樣就返回了數據,即使它是不一致的(或者,換句話說,扇區是“壞扇區”)。因此,這個命令很快就成為壞扇區恢復的標準。
通過
重寫校驗碼、標誌信息等可以糾正一部分壞扇區。進行這兩項功能都會對硬碟的數據進行清零,並重寫每個扇區的校驗碼和標誌信息。如果不是磁碟表面介質損傷的話,大部分的壞扇區可以糾正為正常狀態。這就是常聽說的:“邏輯壞扇區可以修復”的道理。
調用自動修復機制替換壞扇區。為了減少硬碟返修的機率,硬碟廠商在硬碟內部設計了一個自動修復機制 Automatic Reallcation或Automatic Reassign。現在生產的硬碟都有這樣的功能:在對硬碟的讀寫過程中,如果發現一個壞扇區,則由內部管理程式自動分配一個備用扇區來替換該扇區,並將該扇區物理位置及其替換情況記錄在
G-list中。這樣一來,少量的壞扇區有可能在使用過程中被自動替換掉了,對用戶的使用沒有太大的影響。也有一些硬碟自動修復機制的激發條件要嚴格一些,需要運行某些軟體來檢測判斷壞扇區,並發出相應指令激發自動修復功能。
用專業軟體將缺陷扇區記錄在P-list中,並進行內部
低級格式化。用戶在使用硬碟時,是不能按
物理地址模式來訪問硬碟的。而是按
邏輯地址模式來訪問。硬碟在通電自檢時,系統會從系統保留區讀取一些特定參數(與內部低級格式化時調用的參數有密切關係)存在緩衝區里,用作物理地址與邏輯地址之間轉換的依據。有些專業軟體可以將檢測到的壞扇區的邏輯地址轉換為對應的物理地址,直接記錄在
P-list中,然後調用內部低級格式化程式進行低級格式化。這樣可以不受
G-list的限制,能修復大量的壞扇區,
修複方法
修理前的檢查
首先來看看硬碟有了物理損傷,也就是有了
壞道後有哪些現象:
1.讀取某個檔案或運行某個軟體時經常出錯,或者需要經過很長時間才能操作成功,其間硬碟不斷
讀盤並發出刺耳的雜音,這種現象意味著硬碟上載有數據的某些扇區已壞。
2.開機時系統不能通過硬碟引導,
軟碟啟動後可以轉到硬碟盤符,但無法進入,用
SYS命令傳導系統也不能成功。這種情況比較嚴重,因為很有可能是硬碟的
引導扇區出了問題。
3.正常使用計算機時頻繁無故出現藍屏。
解決方法
1.首先從最簡單的方法入手。在
資源管理器中選擇硬碟盤符,右擊滑鼠,在
快捷選單中選擇 “屬性”,在“工具”項中對硬碟盤面作完全
掃描處理,並且對可能出現的壞簇作自動修正。
2.對於硬碟0扇區損壞的情況,看起來比較棘手,但也不是無藥可救--只要把報廢的0扇區禁止,而用1扇區取而代之就行了,要注意的是,修改扇區完成後,只有對硬碟作格式化後才會把
分區表的信息寫入1扇區(現在作為0扇區了)。
3.不到萬不得已,這一招最好不要用:即對硬碟作低格。因為對硬碟作低格至少有兩點害處:一是磨損碟片,二是對有
壞道的硬碟來說,低格還會加速
壞道的擴散。
4.最後還有一點,那就是主機板
BIOS的相關內容要設定得當,特別是對於一些TX晶片組級別以前的主機板,由於沒有自動識別硬碟規格的能力,往往會因設定不當而影響硬碟的使用,輕則硬碟不能物盡其用,重則損傷硬碟。
以上介紹的是
硬碟有物理損傷時的解決方法。但是,這些方法大多數是以犧牲硬碟容量為代價的一種補救措施。硬碟有了壞道,如果不是因為老化問題,則說明平時在使用上有不妥之處,比如對硬碟過分頻繁地整理碎片、記憶體太少以致套用軟體對硬碟頻頻訪問等。而忽略對硬碟的防塵處理也會導致
硬碟磁頭因為定位困難引發機械故障。另外,對
CPU超頻引起外頻增高,迫使硬碟長時間在過高的電壓下工作,也會引發故障,所以,平時對硬碟的使用還應以謹慎操作為上策。