本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別涉及一種針對(duì)西數(shù)硬盤停轉(zhuǎn)故障的修復(fù)方法。
背景技術(shù):
在數(shù)據(jù)恢復(fù)的領(lǐng)域,經(jīng)常會(huì)遇到缺陷的存儲(chǔ)介質(zhì);重要的數(shù)據(jù)對(duì)于用戶來(lái)說(shuō),往往都是無(wú)價(jià)的。硬盤敲盤、停轉(zhuǎn)導(dǎo)致硬盤無(wú)法正常工作,出現(xiàn)這種情況的時(shí)候,現(xiàn)有技術(shù)通常是進(jìn)行開(kāi)盤檢測(cè),采用物理修復(fù)方案即更換匹配磁頭的方法,來(lái)達(dá)到修復(fù)硬盤的目的。但是,采用尋找匹配磁頭的時(shí)間都較長(zhǎng),且會(huì)產(chǎn)生購(gòu)買匹配磁頭的費(fèi)用,再更換磁頭的過(guò)程中也容易引起2次損傷,浪費(fèi)財(cái)力、人力和時(shí)間。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)的缺陷,提供了一種針對(duì)西數(shù)硬盤停轉(zhuǎn)故障的修復(fù)方法,能有效的解決上述現(xiàn)有技術(shù)存在的問(wèn)題。
一種針對(duì)西數(shù)硬盤停轉(zhuǎn)故障的修復(fù)方法,包括以下步驟:
S1:讀取ROM中0B和20B模塊;
S2:若沒(méi)有20B模塊且0B模塊中沒(méi)有“0x12020100”標(biāo)記則執(zhí)行S3,若有0B和20B模塊則執(zhí)行S4;
S3:將“0x20”作為屏蔽地址記錄,執(zhí)行S6;
S4:判斷0B和20B中0x1B位置的值的大小,若0B大于20B,則認(rèn)為硬盤啟用0B模塊中01模塊的UBA地址,提取0B中01模塊的UBA地址和01模塊長(zhǎng)度;反之提取20B中01模塊的UBA地址和01模塊長(zhǎng)度;
S5:設(shè)屏蔽地址=01模塊UBA地址+01模塊的長(zhǎng)度;
S6:在硬盤的30模塊中填入S5中的屏蔽地址;
S7:校驗(yàn)30模塊,并將校驗(yàn)值填入校驗(yàn)位,回寫數(shù)據(jù)到ROM中;
S8:硬盤斷電起電,這時(shí)硬盤直接就緒,不會(huì)停轉(zhuǎn)并可正常讀取01模塊;
S9:從01模塊中解析12模塊的UBA地址;
S10:設(shè)屏蔽地址=12模塊的UBA地址+1;
S11:在硬盤的30模塊中填入S10中的屏蔽地址;
S12:斷電再起電,再次讀取01模塊;
S13:把12模塊信息從01地圖模塊中抹去,12號(hào)模塊的條目標(biāo)記后兩個(gè)字節(jié)修改為0x0000;
S14:同時(shí)把修改的30模塊還原到初始形態(tài);
S15:再次斷電起點(diǎn),所有模塊能夠正常訪問(wèn),提取COPY1的重要模塊信息,回寫到COPY0,此時(shí)可提取硬盤中數(shù)據(jù)。
作為優(yōu)選,S4中獲取01模塊UBA地址和01模塊長(zhǎng)度的具體步驟如下:
S41:搜索01號(hào)模塊的條目標(biāo)記“0x12020100”或“0x1A020100”,并找到01模塊長(zhǎng)度;若找到“0x12020100”則執(zhí)行S42,若找到“0x1A020100”則執(zhí)行S43;
S42:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的8個(gè)字節(jié)以4個(gè)字節(jié)為一組,判斷兩組的值是否相同,若相同則執(zhí)行S5,若不相同則結(jié)束;
S43:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的16個(gè)字節(jié)以4個(gè)字節(jié)為一組,首先判斷前兩組的值是否都為“0x00000000”,若是執(zhí)行S44;若不相同則執(zhí)行S45;
S44:判斷后兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S5;若不相同則結(jié)束;
S45:判斷前兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S5;若不相同則結(jié)束。
作為優(yōu)選,S6和S11具體包括以下步驟:
S61:找30模塊缺陷條目總數(shù)并記錄;
S62:30模塊中缺陷條目總數(shù)加1;
S63:若30模塊的缺陷條目總數(shù)為0則執(zhí)行S64,若大于0則執(zhí)行S65;
S64:30模塊的當(dāng)前UBA缺陷條目數(shù)+1,并將屏蔽地址填入到0x40至0x43;
S65:判斷30模塊中原始缺陷條目地址是否大于屏蔽地址,若大于則執(zhí)行S66,若小于則執(zhí)行S67;
S66:取原始缺陷條目,將原始缺陷條目數(shù)+1,再將原始缺陷條目填入原地址的后8個(gè)字節(jié)中,再將“0x01000000”填入0x3C至0x3F位置,并將屏蔽地址填入到0x40至0x43位置,執(zhí)行S7;
S67:在原始缺陷條目后8個(gè)字節(jié)填入原始缺陷條目數(shù)+1和屏蔽地址,執(zhí)行S7。
作為優(yōu)選,S9中獲取12模塊UBA地址的具體步驟如下:
S91:搜索12號(hào)模塊的條目標(biāo)記“0x12021200”或“0x1A021200”;若找到“0x12021200”則執(zhí)行S42,若找到“0x1A021200”則執(zhí)行S43;
S92:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的8個(gè)字節(jié)以4個(gè)字節(jié)為一組,判斷兩組的值是否相同,若相同則執(zhí)行S5,若不相同則結(jié)束;
S93:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的16個(gè)字節(jié)以4個(gè)字節(jié)為一組,首先判斷前兩組的值是否都為“0x00000000”,若是執(zhí)行S94;若不相同則執(zhí)行S95;
S94:判斷后兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S10;若不相同則結(jié)束;
S95:判斷前兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S10;若不相同則結(jié)束。
與現(xiàn)有技術(shù)相比本發(fā)明的優(yōu)點(diǎn)在于:不用拆解硬盤更換部件便達(dá)到可修復(fù)硬盤并提取硬盤數(shù)據(jù)的目的,避免更換操作中因人為因素而導(dǎo)致硬盤故障的擴(kuò)大化、對(duì)硬盤帶來(lái)二次傷害、甚至造成硬盤完全損壞等問(wèn)題。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例20B模塊的數(shù)據(jù)結(jié)構(gòu)圖;
圖2為本發(fā)明實(shí)施例0B模塊的數(shù)據(jù)結(jié)構(gòu)圖;
圖3為本發(fā)明實(shí)施例缺陷條目總數(shù)為0的30模塊數(shù)據(jù)結(jié)構(gòu)圖;
圖4為圖3加入屏蔽條目后的30模塊數(shù)據(jù)結(jié)構(gòu)圖;
圖5為本發(fā)明實(shí)施例缺陷條目總數(shù)不為0且缺陷條目UBA地址大于屏蔽地址的30模塊數(shù)據(jù)結(jié)構(gòu)圖;
圖6為圖5加入屏蔽條目后的30模塊數(shù)據(jù)結(jié)構(gòu)圖;
圖7位為本發(fā)明實(shí)施例缺陷條目總數(shù)不為0且缺陷條目UBA地址小于屏蔽地址的30模塊數(shù)據(jù)結(jié)構(gòu)圖;
圖8為圖7加入屏蔽條目后的30模塊數(shù)據(jù)結(jié)構(gòu)圖;
圖9為本發(fā)明實(shí)施例12模塊的數(shù)據(jù)結(jié)構(gòu)圖;
圖10為圖9抹去12模塊后的數(shù)據(jù)結(jié)構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明的目的:技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。
一種針對(duì)西數(shù)硬盤停轉(zhuǎn)故障的修復(fù)方法,包括以下步驟:
S1:讀取ROM中0B和20B模塊;
S2:若沒(méi)有20B模塊且0B模塊中沒(méi)有“0x12020100”標(biāo)記則執(zhí)行S3,若有0B和20B模塊則執(zhí)行S4;
S3:將“0x20”作為屏蔽地址記錄,執(zhí)行S6;
S4:判斷0B和20B該地址的值的大小,若0B大于20B,則認(rèn)為硬盤啟用0B模塊中01模塊的UBA地址,提取0B中01模塊的UBA地址和01模塊長(zhǎng)度;反之提取20B中01模塊的UBA地址和01模塊長(zhǎng)度;
S4中獲取01模塊UBA地址和01模塊長(zhǎng)度的具體步驟如下:
S41:搜索01號(hào)模塊的條目標(biāo)記“0x12020100”或“0x1A020100”,并找到01模塊長(zhǎng)度(01模塊的長(zhǎng)度在條目標(biāo)記后兩個(gè)字節(jié));若找到“0x12020100”則執(zhí)行S42,若找到“0x1A020100”則執(zhí)行S43;
S42:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的8個(gè)字節(jié)以4個(gè)字節(jié)為一組,判斷兩組的值是否相同,若相同則執(zhí)行S5,若不相同則結(jié)束;
S43:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的16個(gè)字節(jié)以4個(gè)字節(jié)為一組,首先判斷前兩組的值是否都為“0x00000000”,若是執(zhí)行S44;若不相同則執(zhí)行S45;
S44:判斷后兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S5;若不相同則結(jié)束;
S45:判斷前兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S5;若不相同則結(jié)束。
如圖1、2所示,圖1中20B的值大于圖2中0B的值,則取20B的01模塊的UBA地址“0x0002FAE6”和01模塊長(zhǎng)度“0x18”。
S5:設(shè)屏蔽地址=01模塊UBA地址+01模塊的長(zhǎng)度;
S6:在硬盤的30模塊中填入S5中的屏蔽地址;
S6具體的包括以下步驟:
S61:找30模塊缺陷條目總數(shù)并記錄(在30模塊0x28位置的值和0x34至0x3C之間的7個(gè)字節(jié)位缺陷條目總數(shù));
S62:30模塊中缺陷條目總數(shù)加1(0x28位置的值和0x34至0x3C之間7個(gè)字節(jié)的值都+1);
S63:若30模塊的缺陷條目總數(shù)為0則執(zhí)行S64,若大于0則執(zhí)行S65;
S64:30模塊的0x3C至0x3F位置的值+1(當(dāng)前UBA缺陷條目數(shù)+1),并將屏蔽地址填入到0x40至0x43;
如圖3所示,原始缺陷條目總數(shù)為0,則將缺陷條目總數(shù)變?yōu)?,并填入屏蔽地址“0x000262C7”,如圖4;
S65:判斷30模塊中原始缺陷條目地址(0x40至0x43位置的值)是否大于屏蔽地址,若大于則執(zhí)行S66,若小于則執(zhí)行S67;
S66:取原始缺陷條目(0x3C至0x43位置的值),將原始缺陷條目數(shù)+1,再填入原地址的后8個(gè)字節(jié)中,再將“0x01000000”填入0x3C至0x3F位置,并將屏蔽地址填入到0x40至0x43位置,執(zhí)行S7;
如圖5、6所示,原始缺陷條目地址“0x000362C7”大于屏蔽地址“0x000262C7”;則如圖6中的方式添加屏蔽地址。
S67:在原始缺陷條目(0x3C至0x43位置)后8個(gè)字節(jié)填入原始缺陷條目數(shù)+1和屏蔽地址,執(zhí)行S7。
如圖7、8所示,原始缺陷條目地址“0x000200C7”小于屏蔽地址“0x000262C7”;則如圖8中的方式添加屏蔽地址。
S7:校驗(yàn)30模塊,并將校驗(yàn)值填入校驗(yàn)位(0x0C至0x0F位置),回寫數(shù)據(jù)到ROM中;
S8:硬盤斷電起電,這時(shí)硬盤直接就緒,不會(huì)停轉(zhuǎn)并可正常讀取01模塊;
S9:如圖9所示,從01模塊中解析12模塊的UBA地址“0x00013545”;
S9中獲取12模塊UBA地址的具體步驟如下:
S91:搜索12號(hào)模塊的條目標(biāo)記“0x12021200”或“0x1A021200”;若找到“0x12021200”則執(zhí)行S42,若找到“0x1A021200”則執(zhí)行S43;
S92:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的8個(gè)字節(jié)以4個(gè)字節(jié)為一組,判斷兩組的值是否相同,若相同則執(zhí)行S5,若不相同則結(jié)束;
S93:在條目標(biāo)記后偏移6個(gè)字節(jié),將此后的16個(gè)字節(jié)以4個(gè)字節(jié)為一組,首先判斷前兩組的值是否都為“0x00000000”,若是執(zhí)行S94;若不相同則執(zhí)行S95;
S94:判斷后兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S10;若不相同則結(jié)束;
S95:判斷前兩組的值是否相同,若相同則表明是UBA地址,執(zhí)行S10;若不相同則結(jié)束。
S10:設(shè)屏蔽地址=12模塊的UBA地址+1;
S11:在硬盤的30模塊中填入S10中的屏蔽地址,方法同S6相同;
S12:斷電再起電,再次讀取01模塊;
S13:如圖10所示,把12模塊信息從01地圖模塊中抹去,12號(hào)模塊的條目標(biāo)記后兩個(gè)字節(jié)修改為0x0000;
S14:同時(shí)把修改的30模塊還原到初始形態(tài);
S15:再次斷電起點(diǎn),所有模塊能夠正常訪問(wèn),提取COPY1的重要模塊信息,回寫到COPY0,此時(shí)可提取硬盤中數(shù)據(jù)。
本領(lǐng)域的普通技術(shù)人員將會(huì)意識(shí)到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā)明的實(shí)施方法,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開(kāi)的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。