希捷硬盤固件故障問題導(dǎo)致不被識別的數(shù)據(jù)恢復(fù)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)恢復(fù)領(lǐng)域,具體涉及一種希捷硬盤固件故障問題導(dǎo)致不被識別的 數(shù)據(jù)恢復(fù)方法。
【背景技術(shù)】
[0002] 目前市面上的數(shù)據(jù)恢復(fù)都是針對硬盤可以被識別的情況下進行的,即邏輯層的數(shù) 據(jù)恢復(fù),還沒有硬盤不被識別情況下的數(shù)據(jù)恢復(fù)方法,雖然一些硬盤修復(fù)方法有相關(guān)的解 決之道,但都存在以下缺陷需要進一步解決。
[0003] 1.只能處理硬盤容量被更改導(dǎo)致的不被識別。
[0004] 2.無法對固件本身進行操作。
[0005] 3.對于壞道很多甚至全盤壞道的現(xiàn)象可能是固件問題導(dǎo)致的不能讀取,盲目按照 清零、重映射等方法處理不能達到效果。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明針對現(xiàn)有技術(shù)的不足,提供了一種希捷硬盤固件故障問題導(dǎo)致不被識別的 數(shù)據(jù)恢復(fù)方法,能夠有效的解決硬盤不被識別情況下的數(shù)據(jù)恢復(fù)。
[0007] 為解決以上問題,本發(fā)明采用的技術(shù)方案如下:一種希捷硬盤固件故障問題導(dǎo)致 不被識別的數(shù)據(jù)恢復(fù)方法,包括以下步驟:
[0008] Sl對故障盤進行初始化;
[0009] S2故障盤初始化后檢測故障盤狀態(tài),并檢測是否為以下特定的數(shù)據(jù):
[0010] 檢測數(shù)據(jù)是否是ATAFailed;檢測數(shù)據(jù)是否是Failedsyssect,write;檢測數(shù) 據(jù)是否是Stuffwasunreadable;檢測數(shù)據(jù)是否是CELOG;檢測數(shù)據(jù)是否是Nointerface age;檢測數(shù)據(jù)是否是ErrAPPcode。
[0011] S3根據(jù)檢測到的不同數(shù)據(jù)進行相應(yīng)的修復(fù)。
[0012] 作為優(yōu)選:若S2檢測到數(shù)據(jù)為ATAFailed,解決方法如下:
[0013] 1021故障盤正常使用時有備份轉(zhuǎn)到1024,否則轉(zhuǎn)到1022 ;
[0014] 1022獲取故障盤的Family和Firmware參數(shù)信息;
[0015] 1023找到與故障盤Family和Firmware相同的匹配盤的ATA模塊;
[0016] 1024將匹配盤的ATA模塊寫入故障盤。
[0017] 作為優(yōu)選:若S2檢測到數(shù)據(jù)為Failedsyssect,write,解決方法如下:
[0018] 1031將故障盤盤體上的CERT模塊加載到故障盤電路板的緩存芯片中;
[0019] 1032開啟強制寫模式,在1級工廠模式下開啟強制寫;
[0020] 1033在T級模式下初始化G表;
[0021] 1034在1級工廠模式下清除S.M.A.R.T表。
[0022] 作為優(yōu)選:若S2檢測到數(shù)據(jù)為Stuffwasunreadable,解決方法如下:
[0023] 1041故障盤正常使用時有備份轉(zhuǎn)到1044,否則轉(zhuǎn)到1042 ;
[0024] 1042獲取故障盤的Family和Firmware參數(shù)信息;
[0025] 1043找到與故障盤Family和Firmware相同的匹配盤的INFO模塊;
[0026] 1044將匹配盤的INFO模塊寫入故障盤。
[0027] 作為優(yōu)選:若S2檢測到數(shù)據(jù)為CEL0G,解決方法如下:
[0028] 1051將CERT模塊加入到緩存中,使用Ctrl+R加載故障盤盤體上的模塊;
[0029] 1052加載CERTTAB模塊到緩存,使用Ctrl+T加載故障盤盤體上的模塊;
[0030] 1053在T級模式下開啟4E校準流程;
[0031] 1054在T級模式調(diào)整故障盤回到正常的工作模式,即使AGE= 50。
[0032] 作為優(yōu)選:若S2檢測到數(shù)據(jù)為Nointerfaceage,解決方法如下:
[0033] 1061獲取AGE的值,如果AGE= 60,轉(zhuǎn)到1063,否則轉(zhuǎn)到1062 ;
[0034] 1062在T級模式下將工作模式改成正常工作模式;
[0035] 1063按照檢測數(shù)據(jù)是ErrAPPcode的修復(fù)方式修復(fù)。
[0036] 作為優(yōu)選:若S2檢測到數(shù)據(jù)為ErrAPPcode,解決方法如下:
[0037] 1071故障盤正常使用時有備份轉(zhuǎn)到1074,否則轉(zhuǎn)到1072;
[0038] 1072獲取故障盤的Family和Firmware參數(shù)信息;
[0039] 1073找到與故障盤Family和Firmware相同的匹配盤的APP模塊;
[0040] 1074加載APP模塊到故障盤的緩存芯片中;
[0041] 1075查看狀態(tài)是否就緒,如果就緒則結(jié)束,否則轉(zhuǎn)到1076;
[0042] 1076加載CERT、CERTTAB模塊到故障盤的緩存芯片中;
[0043] 1077在T級模式下調(diào)整故障盤回到正常的工作模式,即使AGE= 50 ;
[0044] 1078在T級模式下清除G表,在1級工廠模式下清除S.M.A.R.T表。
[0045] 作為優(yōu)選:Sl通過調(diào)用UART0_Init(9600,set)實現(xiàn)。
[0046] 本發(fā)明的有益效果如下:
[0047]1.通過函數(shù)調(diào)用提示判斷造成硬盤不被識別的原因;
[0048] 2.可以通過函數(shù)調(diào)用對固件的操作解決不被識別的問題;
[0049] 3.可以在不斷電的情況下對數(shù)據(jù)進行恢復(fù)。
【附圖說明】
[0050] 圖1是獲取故障盤數(shù)據(jù)的流程圖;
[0051] 圖2是102故障盤修復(fù)流程圖;
[0052] 圖3是103故障盤修復(fù)流程圖;
[0053] 圖4是104故障盤修復(fù)流程圖;
[0054] 圖5是106故障盤修復(fù)流程圖;
[0055] 圖6是107故障盤修復(fù)流程圖。
【具體實施方式】
[0056] 為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對 本發(fā)明做進一步詳細說明。
[0057] 希捷硬盤固件故障問題導(dǎo)致不被識別的數(shù)據(jù)恢復(fù)方法,包括以下步驟:
[0058] SI對故障盤進行初始化;
[0059] S1通過調(diào)用以下函數(shù)實現(xiàn):
[0060] UART0_Init(9600,set) ;//set中包含奇偶校驗停止位設(shè)置
[0061] S2故障盤初始化后檢測故障盤狀態(tài),并檢測是否為以下特定的數(shù)據(jù):
[0062] 檢測數(shù)據(jù)是否是ATAFailed;檢測數(shù)據(jù)是否是Failedsyssect,write;檢測數(shù) 據(jù)是否是Stuffwasunreadable;檢測數(shù)據(jù)是否是CELOG;檢測數(shù)據(jù)是否是Nointerface age;檢測數(shù)據(jù)是否是ErrAPPcode。
[0063] S2通過調(diào)用以下函數(shù)實現(xiàn):
[0064] UARTO_Sendchar(OxlA) ;//進入指令模式
[0065] IRQ_READ_UART0 () ;// 讀取數(shù)據(jù)到buffer
[0066] CheckT() ;//檢測buffer數(shù)據(jù)是否是T>
[0067] CheckATAFailedO;//檢測buffer數(shù)據(jù)是否是ATAFailed
[0068] CheckFailedsys() ;//檢測buffer數(shù)據(jù)是否是Failedsyssect,write
[0069] CheckStuffwasunreadable() ;// 檢測buffer數(shù)據(jù)是否是Stuffwas unreadable
[0070] CheckCELogO;//檢測buffer數(shù)據(jù)是否是CELOG
[0071] CheckNOInterfaceAge() ;//檢測buffer數(shù)據(jù)是否是Nointerfaceage
[0072] CheckErrAppCode() ;//檢測buffer數(shù)據(jù)是否是ErrAPPcode
[0073] S3根據(jù)檢測到的不同數(shù)據(jù)進行相應(yīng)的修復(fù)。
[0074] 若S2檢測到數(shù)據(jù)為ATAFailed,解決方法如下:
[0075] 1021故障盤正常使用時有備份轉(zhuǎn)到1024,否則轉(zhuǎn)到1022 ;
[0076] 1022獲取故障盤的Family和Firmware參數(shù)信息;
[0077] 通過調(diào)用以下函數(shù)實現(xiàn):
[0078] UART0_Sendchar(OxC) ;// 顯不硬盤的Family和Firmware
[0079] 1023找到與故障盤Family和Firmware相同的匹配盤的ATA模塊;
[0080] 1024將匹配盤的ATA模塊寫入故障盤。
[0081] 若S2檢測到數(shù)據(jù)為Failedsyssect,write,解決方法如下:
[0082] 1031將故障盤盤體上的CERT模塊加載到故障盤電路板的緩存芯片中;
[0083] 通過調(diào)用以下函數(shù)實現(xiàn):
[0084] UART0_Sendchar(0x12);//CERT模塊加到緩存
[0085] 1032開啟強制寫模式,在1級工廠模式下開啟強制寫;
[0086] 通過調(diào)用以下函數(shù)實現(xiàn):
[0087]
【主權(quán)項】
1. 一種希捷硬盤固件故障問題導(dǎo)致不被識別的數(shù)據(jù)恢復(fù)方法,其特征在于,包括以下 步驟: Sl對故障盤進行初始化; S2故障盤初始化后檢測故障盤狀態(tài),并檢測是否為以下特定的數(shù)據(jù): 檢測數(shù)據(jù)是否是ATAFailed;檢測數(shù)據(jù)是否是Failedsyssect,write;檢測數(shù)據(jù)是否 是Stuffwasunreadable;檢測數(shù)據(jù)是否是CELOG;檢測數(shù)據(jù)是否是Nointerfaceage; 檢測數(shù)據(jù)是否是ErrAPPcode。 S3根據(jù)檢測到的不同數(shù)據(jù)進行相應(yīng)的修復(fù)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,若S2檢測到數(shù)據(jù)為ATAFailed,解決方 法如下: 1021故障盤正常使用時有備份轉(zhuǎn)到1024,否則轉(zhuǎn)到1022 ; 1022獲取故障盤的Family和Firmware參數(shù)信息; 1023找到與故障盤Family和Firmware相同的匹配盤的ATA模塊; 1024將匹配盤的ATA模塊寫入故障盤。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,若S2檢測到數(shù)據(jù)為Failedsyssect, write,解決方法如下: 1031將故障盤盤體上的CERT模塊加載到故障盤電路板的緩存芯片中; 1032開啟強制寫模式,在1級工廠模式下開啟強制寫; 1033在T級模式下初始化G表; 1034在1級工廠模式下清除S.M.A.R.T表。
4. 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,若S2檢測到數(shù)據(jù)為Stuffwas unreadable,解決方法如下: 1041故障盤正常使用時有備份轉(zhuǎn)到1044,否則轉(zhuǎn)到1042 ; 1042獲取故障盤的Family和Firmware參數(shù)信息; 1043找到與故障盤Family和Firmware相同的匹配盤的INFO模塊; 1044將匹配盤的INFO模塊寫入故障盤。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,若S2檢測到數(shù)據(jù)為CEL0G,解決方法如 下: 1051將CERT模塊加入到緩存中,使用Ctrl+R加載故障盤盤體上的模塊; 1052加載CERTTAB模塊到緩存,使用Ctrl+T加載故障盤盤體上的模塊; 1053在T級模式下開啟4E校準流程; 1054在T級模式調(diào)整故障盤回到正常的工作模式,即使AGE= 50。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,若S2檢測到數(shù)據(jù)為Nointerfaceage, 解決方法如下: 1061獲取AGE的值,如果AGE= 60,轉(zhuǎn)到1063,否則轉(zhuǎn)到1062 ; 1062在T級模式下將工作模式改成正常工作模式; 1063按照檢測數(shù)據(jù)是ErrAPPcode的修復(fù)方式修復(fù)。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,若S2檢測到數(shù)據(jù)為ErrAPPcode,解決 方法如下: 1071故障盤正常使用時有備份轉(zhuǎn)到1074,否則轉(zhuǎn)到1072 ; 1072獲取故障盤的Family和Firmware參數(shù)信息; 1073找到與故障盤Family和Firmware相同的匹配盤的APP模塊; 1074加載APP模塊到故障盤的緩存芯片中; 1075查看狀態(tài)是否就緒,如果就緒則結(jié)束,否則轉(zhuǎn)到1076 ; 1076加載CERT、CERTTAB模塊到故障盤的緩存芯片中; 1077在T級模式下調(diào)整故障盤回到正常的工作模式,即使AGE= 50 ; 1078在T級模式下清除G表,在1級工廠模式下清除S.M.A.R.T表。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,Sl通過調(diào)用UART0_Init(9600,set)實 現(xiàn)。
【專利摘要】本發(fā)明公開了一種希捷硬盤固件故障問題導(dǎo)致不被識別的數(shù)據(jù)恢復(fù)方法,屬于數(shù)據(jù)恢復(fù)技術(shù)領(lǐng)域,包括以下步驟:S1對故障盤進行初始化;S2故障盤初始化后檢測故障盤狀態(tài),并檢測是否為以下特定的數(shù)據(jù):檢測數(shù)據(jù)是否是ATA Failed;檢測數(shù)據(jù)是否是Failed sys sect.write;檢測數(shù)據(jù)是否是Stuff was unreadable;檢測數(shù)據(jù)是否是CE LOG;檢測數(shù)據(jù)是否是No interface age;檢測數(shù)據(jù)是否是Err APP code。本發(fā)明的有益效果如下:1.通過函數(shù)調(diào)用提示判斷造成硬盤不被識別的原因2.可以通過函數(shù)調(diào)用對固件的操作解決不被識別的問題。
【IPC分類】G06F11-07
【公開號】CN104794018
【申請?zhí)枴緾N201510218639
【發(fā)明人】梁效寧
【申請人】四川效率源信息安全技術(shù)有限責任公司
【公開日】2015年7月22日
【申請日】2015年4月30日