西數(shù)硬盤固件區(qū)壞道的修復(fù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)恢復(fù)領(lǐng)域,具體涉及一種西數(shù)硬盤固件區(qū)壞道的修復(fù)方法。
【背景技術(shù)】
[0002]固件就是固化在硬盤內(nèi)部的一個軟件。硬盤就如一臺小型的電腦,也是需要使用軟件來進(jìn)行驅(qū)動工作的。再簡單來說,固件就如大家使用的手機軟件一樣,手機的物理硬件部分也需要軟件來驅(qū)動才能使用,所以凡是硬件體內(nèi)有軟件功能的,軟件部分就統(tǒng)稱為固件。固件在硬盤中要做很多工作,比如管理硬盤數(shù)據(jù)的存放位置;記錄已經(jīng)損壞的缺陷扇區(qū),避免使用中再次用到這些缺陷扇區(qū);記錄硬盤在工作中的溫度或出現(xiàn)的錯誤等等。
[0003]少了固件的硬盤就只是一堆機械和電子元件。硬盤廠商將磁道分為兩個部分,一個部分用于存放硬盤固件,一部分用于存放正常數(shù)據(jù)。存放硬盤固件的磁道是廠家的保留區(qū)域,對其訪問時需要使用特定的指令及密碼才行,普通的如WINDOWS操作系統(tǒng)等均無法對這個區(qū)域進(jìn)行訪問及管理,另外也有少數(shù)人叫存放廠家固件的區(qū)域為負(fù)軌。
[0004]硬盤的固件程序一共有兩份,兩份都是相同的,分別稱為主固件和次固件。這樣做的目的是當(dāng)主固件出現(xiàn)錯誤或丟失后,可以啟用次固件來進(jìn)行工作或修復(fù)。二者根據(jù)硬盤容量和磁道的分布來進(jìn)行存放,一般情況下,O頭和I頭各存放一份。但工作時如有兩個磁頭的硬盤,即將存放在O頭的那份固件稱為主固件,如果只有一個磁頭的硬盤,那主次固件按先后順序存放在O頭。為了方便對不同功能的固件進(jìn)行分類有效管理,硬盤廠商又將不同的功能劃分成組,各司其職用于高速數(shù)據(jù)讀取。
[0005]在固件的概念中,磁道包括組及模塊,模塊的概念就是組中的更具體的執(zhí)行功能。如果說磁道是一本書,那組就是大章節(jié),而模塊就是每個段落。一個組中包含若干個模塊。模塊中最為重要的就是地圖模塊,在硬盤通電進(jìn)行工作的時候,F(xiàn)LASH芯片中的對應(yīng)工作參數(shù)是通過地圖模塊來進(jìn)行加載的。地圖模塊和FLASH芯片的關(guān)系就相當(dāng)?shù)貓D模塊是WINDOWS操作系統(tǒng)中的啟動部分,如果FLASH芯片不能與地圖模塊在硬盤通電后取得正確的聯(lián)系,就等于無法啟動WINDOWS系統(tǒng),而不能使用基于WINDOWS系統(tǒng)下的軟件。地圖模塊記錄了固件存放的地圖結(jié)構(gòu),硬盤的參數(shù)信息(LBA值,序列號),缺陷記錄等的磁道存放位置。這些包括了大部分重要模塊的定位,當(dāng)然還是有些隱藏的模塊沒有記錄在其中。
[0006]在訪問硬盤的時候如果此扇區(qū)有劃傷或者磁性介質(zhì)減弱導(dǎo)致扇區(qū)讀取失敗,則叫做物理壞道;如果扇區(qū)讀取的數(shù)據(jù)的ECC校驗不匹配也會導(dǎo)致讀取失敗,這種壞道叫做邏輯壞道。
[0007]隨著硬盤的進(jìn)步,固件從之前存儲在電路板上到部分存儲在盤體上,再到全部存儲到盤體上,就是因為硬盤的固件越來越大,當(dāng)然,出現(xiàn)固件區(qū)壞道的區(qū)域也越來越大,在傳統(tǒng)的技術(shù)中,存在低格硬盤修復(fù)硬盤壞道的方法,但是針對不識別的硬盤,此方法就不能成功了。
[0008]其中,UBA(UnitBlock Address,單元塊尋址);
[0009]LBA (Logical Block Address,邏輯區(qū)塊地址)。
【發(fā)明內(nèi)容】
[0010]本發(fā)明針對現(xiàn)有技術(shù)的不足,提供了一種西數(shù)硬盤固件區(qū)壞道的修復(fù)方法,能夠有效解決西數(shù)硬盤固件區(qū)出現(xiàn)壞道導(dǎo)致硬盤不能正常讀取固件,甚至不能正常識別的問題。
[0011]為解決以上問題,本發(fā)明采用的技術(shù)方案如下:一種西數(shù)硬盤固件區(qū)壞道的修復(fù)方法,包括以下步驟:
[0012]001讀取硬盤固件模塊,如果讀取失敗,則認(rèn)為此模塊儲存在壞道;
[0013]002對壞道進(jìn)行修復(fù),修復(fù)成功后回寫固件模塊。
[0014]作為優(yōu)選,
[0015]101在固件區(qū)中通過搜索524F594C作為01模塊的開始,找到后向后移動4個字節(jié),如果為0100,則表示找到了 01模塊,模塊的大小為字節(jié)0100后的2個字節(jié),單位為扇區(qū);
[0016]102解析01模塊,在0x06處的2個字節(jié)表示01模塊有效區(qū)開始的地址,跳轉(zhuǎn)到01數(shù)據(jù)區(qū),前2個字節(jié)表示模塊的總數(shù),接下來的數(shù)據(jù)結(jié)構(gòu)依次為:描述模塊的長度,I個字節(jié);此模塊的備份數(shù),I個字節(jié);此模塊的編號,2個字節(jié),此模塊的大小,2個字節(jié);未知數(shù)據(jù)區(qū),4個字節(jié);主模塊的UBA,4個字節(jié);次模塊的UBA,4個字節(jié);最后根據(jù)01地圖模塊的解析方式解析出各個模塊的數(shù)據(jù);
[0017]103記錄下102中讀取失敗的模塊信息。
[0018]作為優(yōu)選,
[0019]201如果有原盤固件的備份則使用它,如果沒有則使用與故障盤相同固件版本號的固件;
[0020]202將201中使用的固件模塊寫入到讀取失敗的固件模塊的地址,如果寫入成功,則轉(zhuǎn)到結(jié)束,否則轉(zhuǎn)到203;
[0021]203在01模塊中獲取讀取失敗的固件模塊在固件區(qū)中的區(qū)域,并對這段區(qū)域做低格操作;
[0022]204再次寫入模塊,成功則轉(zhuǎn)到結(jié)束,否則轉(zhuǎn)到205 ;
[0023]205修改01模塊中讀取失敗的固件模塊的UBA地址。
[0024]本發(fā)明的有益效果如下:
[0025]1.解析硬盤地圖模塊,通過UBA方式訪問固件模塊;
[0026]2.針對邏輯壞道,使用低格操作區(qū)域完成校驗并解決數(shù)據(jù)的雙重擦除問題;
[0027]3.針對物理壞道,通過修改模塊的地圖完成模塊的偏移達(dá)到修復(fù)的功能。
【附圖說明】
[0028]圖1是數(shù)據(jù)恢復(fù)的主流程圖;
[0029]圖2是固件檢測詳細(xì)流程圖;
[0030]圖3是固件修復(fù)詳細(xì)流程圖。
【具體實施方式】
[0031]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明做進(jìn)一步詳細(xì)說明。
[0032]如圖1所示:
[0033]001讀取硬盤固件模塊,如果讀取失敗,則認(rèn)為此模塊儲存在壞道;
[0034]002對壞道進(jìn)行修復(fù),修復(fù)成功后回寫固件模塊。
[0035]如圖2所示:
[0036]101在固件區(qū)中通過搜索524F594C作為01模塊的開始,找到后向后移動4個字節(jié),如果為0100,則表示找到了 01模塊,模塊的大小為字節(jié)“0100”后的2個字節(jié),單位為扇區(qū);
[0037]102解析01模塊,在0x06處的2個字節(jié)表示01模塊有效區(qū)開始的地址,跳轉(zhuǎn)到01數(shù)據(jù)區(qū),前2個字節(jié)表示模塊的總數(shù),接下來的數(shù)據(jù)結(jié)構(gòu)依次為:描述模塊的長度,I個字節(jié);此模塊的備份數(shù),I個字節(jié);此模塊的編號,2個字節(jié),此模塊的大小,2個字節(jié);未知數(shù)據(jù)區(qū),4個字節(jié);主模塊的UBA,4個字節(jié);次模塊的UBA,4個字節(jié);最后根據(jù)01地圖模塊的解析方式解析出各個模塊的數(shù)據(jù);
[0038]103記錄下102中讀取失敗的模塊信息。
[0039]103將102中讀取失敗的模塊記錄下,這個模塊就處于壞道上。
[0040]如圖3所示:
[0041]201如果有原盤固件的備份則使用它,如果沒有則使用與故障盤相同固件版本號的固件;
[0042]202將201中使用的固件模塊寫入到讀取失敗的固件模塊的地址,如果寫入成功,則轉(zhuǎn)到結(jié)束,否則轉(zhuǎn)到203;
[0043]203在01模塊中獲取讀取失敗的固件模塊在固件區(qū)中的區(qū)域,并對這段區(qū)域做低格操作;
[0044]204再次寫入模塊,成功則轉(zhuǎn)到結(jié)束,否則轉(zhuǎn)到205 ;
[0045]205修改01模塊中讀取失敗的固件模塊的UBA地址。
[0046]本領(lǐng)域的普通技術(shù)人員將會意識到,這里所述的實施例是為了幫助讀者理解本發(fā)明的實施方法,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項】
1.一種西數(shù)硬盤固件區(qū)壞道的修復(fù)方法,其特征在于,包括以下步驟: OOl讀取硬盤固件模塊,如果讀取失敗,則認(rèn)為此模塊儲存在壞道; 002對壞道進(jìn)行修復(fù),修復(fù)成功后回寫固件模塊。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,001具體方法如下: 101在固件區(qū)中通過搜索524F594C作為01模塊的開始,找到后向后移動4個字節(jié),如果為0100,則表示找到了 01模塊,模塊的大小為字節(jié)0100后的2個字節(jié),單位為扇區(qū); 102解析01模塊,在0x06處的2個字節(jié)表示01模塊有效區(qū)開始的地址,跳轉(zhuǎn)到01數(shù)據(jù)區(qū),前2個字節(jié)表示模塊的總數(shù),接下來的數(shù)據(jù)結(jié)構(gòu)依次為:描述模塊的長度,I個字節(jié);此模塊的備份數(shù),I個字節(jié);此模塊的編號,2個字節(jié),此模塊的大小,2個字節(jié);未知數(shù)據(jù)區(qū),4個字節(jié);主模塊的UBA,4個字節(jié);次模塊的UBA, 4個字節(jié);最后根據(jù)01地圖模塊的解析方式解析出各個模塊的數(shù)據(jù); 103記錄下102中讀取失敗的模塊信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,002具體方法如下: 201如果有原盤固件的備份則使用它,如果沒有則使用與故障盤相同固件版本號的固件; 202將201中使用的固件模塊寫入到讀取失敗的固件模塊的地址,如果寫入成功,則轉(zhuǎn)到結(jié)束,否則轉(zhuǎn)到203; 203在01模塊中獲取讀取失敗的固件模塊在固件區(qū)中的區(qū)域,并對這段區(qū)域做低格操作; 204再次寫入模塊,成功則轉(zhuǎn)到結(jié)束,否則轉(zhuǎn)到205 ; 205修改01模塊中讀取失敗的固件模塊的UBA地址。
【專利摘要】本發(fā)明公開了一種西數(shù)硬盤固件區(qū)壞道的修復(fù)方法,屬于數(shù)據(jù)恢復(fù)技術(shù)領(lǐng)域,包括以下步驟:001讀取硬盤固件模塊,如果讀取失敗,則認(rèn)為此模塊儲存在壞道;002對壞道進(jìn)行修復(fù),修復(fù)成功后回寫固件模塊。本發(fā)明的有益效果如下:1.解析硬盤地圖模塊,通過UBA方式訪問固件模塊;2.針對邏輯壞道,使用低格操作區(qū)域完成校驗并解決數(shù)據(jù)的雙重擦除問題;3.針對物理壞道,通過修改模塊的地圖完成模塊的偏移達(dá)到修復(fù)的功能。
【IPC分類】G06F11-22
【公開號】CN104778106
【申請?zhí)枴緾N201510214605
【發(fā)明人】梁效寧
【申請人】四川效率源信息安全技術(shù)有限責(zé)任公司
【公開日】2015年7月15日
【申請日】2015年4月30日