❶ 關於硬碟修復
1.硬碟邏輯壞道可以修復,而物理壞道不可修復。實際情況是,壞道並不分為邏輯壞道和物理壞道,不知道誰發明這兩個概念,反正廠家提供的技術資料中都沒有這樣的概念,倒是分為按邏輯地址記錄的壞扇區和按物理地址記錄的壞扇區。
2.硬碟出廠時沒有壞道,用戶發現壞道就意味著硬碟進入危險狀態。實際情況是,每個硬碟出廠前都記錄有一定數量的壞道,有些數量甚至達到數千上萬個壞扇區,相比之下,用戶發現一兩個壞道算多大危險?
3.硬碟不認盤就沒救,0磁軌壞可以用分區方法來解決。實際情況是,有相當部分不認的硬碟也可以修好,而0磁軌壞時很難分區。
Bad sector (壞扇區)
在硬碟中無法被正常訪問或不能被正確讀寫的扇區都稱為Bad sector。一個扇區能存儲512Bytes的數據,如果在某個扇區中有任何一個位元組不能被正確讀寫,則這個扇區為Bad sector。除了存儲512Bytes外,每個扇區還有數十個Bytes信息,包括標識(ID)、校驗值和其它信息。這些信息任何一個位元組出錯都會導致該扇區變「Bad」。例如,在低級格式化的過程中每個扇區都分配有一個編號,寫在ID中。如果ID部分出錯就會導致這個扇區無法被訪問到,則這個扇區屬於Bad sector。有一些Bad sector能夠通過低級格式化重寫這些信息來糾正。
Bad cluster (壞簇)
在用戶對硬碟分區並進行高級格式化後,每個區都會建立文件分配表(File Allocation Table, FAT)。FAT中記錄有該區內所有cluster(簇)的使用情況和相互的鏈接關系。如果在高級格式化(或工具軟體的掃描)過程中發現某個cluster使用的扇區包括有壞扇區,則在FAT中記錄該cluster為Bad cluster,並在以後存放文件時不再使用該cluster,以避免數據丟失。有時病毒或惡意軟體也可能在FAT中將無壞扇區的正常cluster標記為Bad cluster, 導致正常cluster不能被使用。 這里需要強調的是,每個cluster包括若干個扇區,只要其中存在一個壞扇區,則整個cluster中的其餘扇區都一起不再被使用.
Defect (缺陷)
在硬碟內部中所有存在缺陷的部分都被稱為Defect。 如果某個磁頭狀態不好,則這個磁頭為Defect head。 如果盤面上某個Track(磁軌)不能被正常訪問,則這Track為Defect Track. 如果某個扇區不能被正常訪問或不能正確記錄數據,則該扇區也稱為Defect Sector. 可以認為Bad sector 等同於 Defect sector. 從總的來說,某個硬碟只要有一部分存在缺陷,就稱這個硬碟為Defect hard disk.
P-list (永久缺陷表)
現在的硬碟密度越來越高,單張碟片上存儲的數據量超過40Gbytes. 硬碟廠家在生產碟片過程極其精密,但也極難做到100%的完美,硬碟盤面上或多或少存在一些缺陷。廠家在硬碟出廠前把所有的硬碟都進行低級格式化,在低級格式化過程中將自動找出所有defect track和defect sector,記錄在P-list中。並且在對所有磁軌和扇區的編號過程中,將skip(跳過)這些缺陷部分,讓用戶永遠不能用到它們。這樣,用戶在分區、格式化、檢查剛購買的新硬碟時,很難發現有問題。一般的硬碟都在P-list中記錄有一定數量的defect, 少則數百,多則數以萬計。如果是SCSI硬碟的話可以找到多種通用軟體查看到P-list,因為各種牌子的SCSI硬碟使用兼容的SCSI指令集。而不同牌子不同型號的IDE硬碟,使用各自不同的指令集,想查看其P-list要用針對性的專業軟體。
G-list (增長缺陷表)
用戶在使用硬碟過程中,有可能會發現一些新的defect sector。 按「三包」規定,只要出現一個defect sector,商家就應該為用戶換或修。現在大容量的硬碟出現一個defect sector概率實在很大,這樣的話硬碟商家就要為售後服務忙碌不已了。於是,硬碟廠商設計了一個自動修復機制,叫做Automatic Reallcation。有大多數型號的硬碟都有這樣的功能:在對硬碟的讀寫過程中,如果發現一個defect sector,則自動分配一個備用扇區替換該扇區,並將該扇區及其替換情況記錄在G-list中。這樣一來,少量的defect sector對用戶的使用沒有太大的影響。
也有一些硬碟自動修復機制的激發條件要嚴格一些,需要用某些軟體來判斷defect sector,並通過某個埠(據說是50h)調用自動修復機制。比如常用的Lformat, ADM,DM中的Zero fill,Norton中的Wipeinfo和校正工具,西數工具包中的wddiag, IBM的DFT中的Erase等。這些工具之所以能在運行過後消除了一些「壞道」,很重要的原因就在這Automatic Reallcation(當然還有其它原因),而不能簡單地概括這些「壞道」是什麼「邏輯壞道」或「假壞道」。 如果哪位被誤導中毒太深的讀者不相信這個事實,等他找到能查看G-list的專業工具後就知道,這些工具運行過後,G-list將會增加多少記錄!「邏輯壞道」或「假壞道」有必要記錄在G-list中並用其它扇區替換么?
當然,G-list的記錄不會無限制,所有的硬碟都會限定在一定數量范圍內。如火球系列限度是500,美鑽二代的限度是636,西數BB的限度是508,等等。超過限度,Automatic Reallcation就不能再起作用。這就是為何少量的「壞道」可以通過上述工具修復(有人就概括為:「邏輯壞道」可以修復),而壞道多了不能通過這些工具修復(又有人概括為:「物理壞道」不可以修復)。
Bad track (壞道)
這個概念源於十多年前小容量硬碟(100M以下),當時的硬碟在外殼上都貼有一張小表格,上面列出該硬碟中有缺陷的磁軌位置(新硬碟也有)。在對這個硬碟進行低級格式化時(如用ADM或DM 5.0等工具,或主板中的低格工具),需要填入這些Bad track的位置, 以便在低格過程中跳過這些磁軌。現在的大容量硬碟在結構上與那些小容量硬碟相差極大,這個概念用在大容量硬碟上有點牽強。
深入了解硬碟參數
正常情況下,硬碟在接通電源之後,都要進行「初始化」過程(也可以稱為「自檢」)。這時,會發出一陣子自檢聲音,這些聲音長短和規律視不同牌子硬碟而各不一樣,但同型號的正常硬碟的自檢聲音是一樣的。 有經驗的人都知道,這些自檢聲音是由於硬碟內部的磁頭尋道及歸位動作而發出的。為什麼硬碟剛通電就需要執行這么多動作呢?簡單地說,是硬碟在讀取的記錄在碟片中的初始化參數。
一般熟悉硬碟的人都知道,硬碟有一系列基本參數,包括:牌子、型號、容量、柱面數、磁頭數、每磁軌扇區數、系列號、緩存大小、轉速、S.M.A.R.T值等。其中一部分參數就寫在硬碟的標簽上,有些則要通過軟體才能測出來。但是,高朋告訴你,這些參數僅僅是初始化參數的一小部分,碟片中記錄的初始化參數有數十甚至數百個!硬碟的CPU在通電後自動尋找BIOS中的啟動程序,然後根據啟動程序的要求,依次在碟片中指定的位置讀取相應的參數。如果某一項重要參數找不到或出錯,啟動程序無法完成啟動過程,硬碟就進入保護模式。在保護模式下,用戶可能看不到硬碟的型號與容量等參數,或者無法進入任何讀寫操作。近來有些系列的硬碟就是這個原因而出現類似的通病,如:FUJITSU MPG系列自檢聲正常卻不認盤,MAXTOR美鑽系列認不出正確型號及自檢後停轉,WD BB EB系列能正常認盤卻拒絕讀寫操作等。
不同牌子不同型號的硬碟有不同的初始化參數集,以較熟悉的Fujitsu硬碟為例,高朋簡要地講解其中一部分參數,以便讀者理解內部初始化參數的原理。
通過專用的程序控制硬碟的CPU,根據BIOS程序的需要,依次讀出初始化參數集,按模塊分別存放為69個不同的文件,文件名也與BIOS程序中調用到的參數名稱一致。其中部分參數模塊的簡要說明如下:
DM硬碟內部的基本管理程序
- PL永久缺陷表
- TS缺陷磁軌表
- HS實際物理磁頭數及排列順序
- SM最高級加密狀態及密碼
- SU用戶級加密狀態及密碼
- CI 硬體信息,包括所用的CPU型號,BIOS版本,磁頭種類,磁碟碟片種類等
- FI生產廠家信息
- WE寫錯誤記錄表
- RE讀錯誤記錄表
- SI容量設定,指定允許用戶使用的最大容量(MAX LBA),轉換為外部邏輯磁頭數(一般為16)和邏輯每磁軌扇區數(一般為63)
- ZP區域分配信息,將每面碟片劃分為十五個區域,各個區域上分配的不同的扇區數量,從而計算出最大的物理容量。
這些參數一般存放在普通用戶訪問不到的位置,有些是在物理零磁軌以前,可以認為是在負磁軌的位置。可能每個參數佔用一個模塊,也可能幾個參數佔用同一模塊。模塊大小不一樣,有些模塊才一個位元組,有些則達到64K位元組。這些參數並不是連續存放的,而是各有各的固定位置。
讀出內部初始化參數表後,就可以分析出每個模塊是否處於正常狀態。當然,也可以修正這些參數,重新寫回碟片中指定的位置。這樣,就可以把一些因為參數錯亂而無法正常使用的硬碟「修復」回正常狀態。
如果讀者有興趣進一步研究,不妨將硬碟電路板上的ROM晶元取下,用寫碼機讀出其中的BIOS程序,可以在程序段中找到以上所列出的參數名稱。
硬碟修復之低級格式化
熟悉硬碟的人都知道,在必要的時候需要對硬碟做「低級格式化」(下面簡稱「低格」)。進行低格所使用的工具也有多種:有用廠家專用設備做的低格,有用廠家提供的軟體工具做的低格,有用DM工具做的低格,有用主板BIOS中的工具做的低格,有用Debug工具做的低格,還有用專業軟體做低格……
不同的工具所做的低格對硬碟的作用各不一樣。有些人覺得低格可以修復一部分硬碟,有些人則覺得低格十分危險,會嚴重損害硬碟。高朋用過多種低格工具,認為低格是修復硬碟的一個有效手段。下面總結一些關於低格的看法,與廣大網友交流。
大家關心的一個問題:「低格過程到底對硬碟進行了什麼操作?」實踐表明低格過程有可能進行下列幾項工作,不同的硬碟的低格過程相差很大,不同的軟體的低格過程也相差很大。
A. 對扇區清零和重寫校驗值
低格過程中將每個扇區的所有位元組全部置零,並將每個扇區的校驗值也寫回初始值,這樣可以將部分缺陷糾正過來。譬如,由於扇區數據與該扇區的校驗值不對應,通常就被報告為校驗錯誤(ECC Error)。如果並非由於磁介質損傷,清零後就很有可能將扇區數據與該扇區的校驗值重新對應起來,而達到「修復」該扇區的功效。這是每種低格工具和每種硬碟的低格過程最基本的操作內容,同時這也是為什麼通過低格能「修復大量壞道」的基本原因。另外,DM中的Zero Fill(清零)操作與IBM DFT工具中的Erase操作,也有同樣的功效。
B. 對扇區的標識信息重寫
在多年以前使用的老式硬碟(如採用ST506介面的硬碟),需要在低格過程中重寫每個扇區的標識(ID)信息和某些保留磁軌的其他一些信息,當時低格工具都必須有這樣的功能。但現在的硬碟結構已經大不一樣,如果再使用多年前的工具來做低格會導致許多令人痛苦的意外。難怪經常有人在痛苦地高呼:「危險!切勿低格硬碟!我的硬碟已經毀於低格!」
C. 對扇區進行讀寫檢查,並嘗試替換缺陷扇區
有些低格工具會對每個扇區進行讀寫檢查,如果發現在讀過程或寫過程出錯,就認為該扇區為缺陷扇區。然後,調用通用的自動替換扇區(Automatic reallocation sector)指令,嘗試對該扇區進行替換,也可以達到「修復」的功效。
D. 對所有物理扇區進行重新編號
編號的依據是P-list中的記錄及區段分配參數(該參數決定各個磁軌劃分的扇區數),經過編號後,每個扇區都分配到一個特定的標識信息(ID)。編號時,會自動跳過P-list中所記錄的缺陷扇區,使用戶無法訪問到那些缺陷扇區(用戶不必在乎永遠用不到的地方的好壞)。如果這個過程半途而廢,有可能導致部分甚至所有扇區被報告為標識不對(Sector ID not found, IDNF)。要特別注意的是,這個編號過程是根據真正的物理參數來進行的,如果某些低格工具按邏輯參數(以 16heads 63sector為最典型)來進行低格,是不可能進行這樣的操作。
E. 寫磁軌伺服信息,對所有磁軌進行重新編號
有些硬碟允許將每個磁軌的伺服信息重寫,並給磁軌重新賦予一個編號。編號依據P-list或TS記錄來跳過缺陷磁軌(defect track),使用戶無法訪問(即永遠不必使用)這些缺陷磁軌。這個操作也是根據真正的物理參數來進行。
F. 寫狀態參數,並修改特定參數
有些硬碟會有一個狀態參數,記錄著低格過程是否正常結束,如果不是正常結束低格,會導致整個硬碟拒絕讀寫操作,這個參數以富士通IDE硬碟和希捷SCSI硬碟為典型。有些硬碟還可能根據低格過程的記錄改寫某些參數。
下面我們來看看一些低格工具做了些什麼操作:
1. DM中的Low level format
進行了A和B操作。速度較快,極少損壞硬碟,但修復效果不明顯。
2. Lformat
進行了A、B、C操作。由於同時進行了讀寫檢查,操作速度較慢,可以替換部分缺陷扇區。但其使用的是邏輯參數,所以不可能進行D、E和F的操作。遇到IDNF錯誤或伺服錯誤時很難通過,半途會中斷。
3. SCSI卡中的低格工具
由於大部SCSI硬碟指令集通用,該工具可以對部分SCSI硬碟進行A、B、C、D、F操作,對一部分SCSI硬碟(如希捷)修復作用明顯。遇到缺陷磁軌無法通過。同時也由於自動替換功能,檢查到的缺陷數量超過G-list限度時將半途結束,硬碟進入拒絕讀寫狀態。
4. 專業的低格工具
一般進行A、B、D、E、F操作。通常配合伺服測試功能(找出缺陷磁軌記入TS),介質測試功能(找出缺陷扇區記入P-list),使用的是廠家設定的低格程序(通常存放在BIOS或某一個特定參數模塊中),自動調用相關參數進行低格。一般不對缺陷扇區進行替換操作。低格完成後會將許多性能參數設定為剛出廠的狀態。
❷ 硬碟的結構
硬碟的結構: 硬碟的結構和軟盤差不多,是由磁軌 (Tracks)、扇區(Sectors)、柱面 (Cylinders)和磁頭(Heads)組成的。
拿一個碟片來講,它和軟盤類似,上面被分成若干個同心圓磁軌,每個磁軌被分成若干個扇區,每扇區通常是512位元組。
硬碟的磁軌數一般介於300-3000之間,每磁軌的扇區數通常是63,而早期的硬碟只有17個。
和軟盤不同的是,硬碟由很多個磁片疊在一起,柱面指的就是多個磁片上具有相同編號的磁軌,它的數目和磁軌是相同的。
硬碟的容量如下計算: 硬碟容量=柱面數×扇區數×每扇區位元組數×磁頭數 標准IDE介面最多支持1024個柱面,63個扇區,16個磁頭,這個最大容量為1024×63×16×512= 528,482,304位元組,即528M;
增強型IDE最多可支持256個邏輯磁頭,容量最大可達到8.4GB。前面我們提到過簇的概念,它是文件存儲的最小單位,軟盤的簇只有一個扇區。在硬碟上,簇的大小和分區大小有關:比如,當分區容量介於64M和128M之間時,每個簇有4個扇區;介於128M和256M之間時,每簇有8個扇區;而當分區容量大於1024M時,每簇的扇區數目將超過64,容量達到32KB以上。在此時一個1位元組的文件在硬碟上也會佔用32KB的空間。所以,你要根據具體情況來進行合理分區,以免浪費很多的硬碟空間。如果您使用的Windows 95 OSR2或者Windows 98的話,可以利用它們提供的FAT32分區,使硬碟的每一個簇小到4K。