西数硬盘加载指定模块进行硬盘修复的方法

文档序号:9887485阅读:1299来源:国知局
西数硬盘加载指定模块进行硬盘修复的方法
【技术领域】
[0001]本发明涉及硬盘数据恢复领域,特别涉及一种西数硬盘加载指定模块进行硬盘修复的方法。
【背景技术】
[0002]西数硬盘出现故障的情况,通常情况都是因为微代码出现故障、无法被加载,导致系统无法识别硬盘。然而,西数硬盘固件中的微代码模块需要加载到硬盘缓存中并且校验通过才能使硬盘运行正常。
[0003]随着硬盘容量和技术的发展,固件的组织架构已经发生了变化。固件内部结构越发复杂和多变。硬盘正常工作所需要的微代码越来越多,需要加载到硬盘缓存的固件内容也越来越多。
[0004]因此,针对目前最新的硬盘型号,在数据恢复过程中仅仅加载11号ATA微码模块,是不能让硬盘正常工作的,需要一种更好更合适的方法来处理此问题。

【发明内容】

[0005]本发明针对现有技术的不足,提供一种西数硬盘加载指定模块进行硬盘修复的方法,解决随着硬盘容量和技术的发展,固件内部结构越发复杂,硬盘正常工作所需要的微代码越来越多,需要加载到硬盘缓存的固件内容也越来越多的问题。
[0006]为解决以上问题,本发明采用的技术方案如下:一种西数硬盘加载指定模块进行硬盘修复的方法,包括如下步骤:SI进入硬盘安全模式;S2加载ATA指定模块;S3恢复数据;其中,S2的具体方法如下:S21开启硬盘固件读写区域;S22smartl0g方式写入需要加载的文件大小参数信息;S23读取准备好的模块文件数据到buffer; S24将buffer分成0X100*Y个段,其中Y的取值为O到FFFF,未分配满的单独为一个buffer段;S25采用smartlog方式依次写入数据内容;S26获取硬盘参数信息。
[0007]作为优选,SI的具体方法如下:
[0008]Sll将3个短跳线依次插入靠近硬盘接口左边的针头处;
[0009]S12将硬盘通电后,硬盘进入安全模式;
[0010]S13获取硬盘参数信息,直到硬盘状态显示就绪。
[0011]作为优选,S3的具体方法如下:
[0012]S31等待硬盘状态重新就绪后,从ROM中搜索OB和20B模块;
[0013]S32从OB和20B模块中搜索OI模块在硬盘固件区的存储地址;
[0014]S33通过查找OI的存放地址,找到OI固件区地图模块;
[0015]S34通过01固件区地图模块中记录的固件区信息找到所有其他固件模块的存放位置;
[0016]S35通过01记录的固件区其他固件存放地址,搜索出此故障盘的所有固件区模块;
[0017]S36将最开始插入硬盘的3个跳线全部移除,并将搜索到的所有固件区模块,以ABA方式回写到硬盘的2个主要磁头O和I;
[0018]S37回写完成之后,断电起电一次,再次获取硬盘参数即可认盘。
[0019]本发明的有益效果如下:本发明通过上述方法可以减少需要加载的模块,并且准确的加载所需模块,以达到快速准确的恢复微代码出现故障、无法被加载,导致系统无法识别硬盘的故障。
【具体实施方式】
[0020]为使本发明的目的、技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。
[0021]—种西数硬盘加载指定模块进行硬盘修复的方法,SI进入硬盘安全模式;S2加载ATA指定模块;S3恢复数据;其中,S2的具体方法如下:S21开启硬盘固件读写区域;S22smartl0g方式写入需要加载的文件大小参数信息;S23读取准备好的模块文件数据到buffer ;S24将buffer分成0X100*Y个段,其中Y的取值为O到FFFF,未分配满的单独为一个buff er段;S25采用smart I og方式依次写入数据内容;S26获取硬盘参数信息。
[0022]进一步地,S2模块加载具体情况如下:
[0023]1、西数固件访问指令,在对固件区操作前必须发送该ATA指令到硬盘中,否者访问无效;开启指令如下
[0024]0x45,OxOb,0x00,0x44,0x57,OxaO,0x80;
[0025]2、Smartlog操作参数:是西数硬盘访问固件区加载数据到缓存操作等数据的处理接口,该接口是ATA指令及参数内容组成,ATA指令内容为固定内容0xd6,0x01, Oxbe,0x4f,0XC2,0Xa0,0Xb0,参数内容为512字节的内容,参数内容中确定了固件区操作的区域和数量及读写方式:
[0026]例如:固件区写入:写入的buffer前16个字节内容是,其余为O
[0027]0x13,0x00,0x02,0x00,uba&Oxff,(uba>>8)&0xff,(uba>>16)&0xff,(uba>>24)&Oxff,0x00,0x00,length&Oxff,(length>>8)&0xff,0,0
[0028]UBA:需要访问的固件区地址;Iength:需要写入的长度。
[0029]3、读取准备好的模块文件数据到buffer;
[0030]4、SmartLog实现内容写入:在发送完参数操作以后,才能写入内容,内容的长度必须同参数长度一致,写入的内容就会写入到参数信息设置的固件区区域位置:
[0031]内容写入由ATA指令与数据内容构成:
[0032]ATA指令0xd6, length, Oxbf, 0x4f, 0xc2, OxaO, OxbO,length是一次性写入的长度
[0033]内容就是需要加载ATA的内容,原则上将buffer分成0X100*Y个段,其中Y的取值为O到FFFF,未分配满的单独为一个buffer段,比如一共有520个扇区,将buffer分成0X100*5个段,未分配满的20个单独为一个buffer段;
[0034]5、获取硬盘参数信息
[0035]11号模块= ATAOverlay模块。可以加载11号ATA模块到硬盘缓存,对于已经不认盘或无法读写固件的硬盘,运用加载OVLAY功能是非常行之有效并且非常必要。加载OVLAY后,硬盘即可起转,方可读写磁道和固件区。同样也可以先写入01到硬盘,然后重新上电,硬盘即可根据固件区地图全部回写模块。
[0036]13号模块= CacheOverlay模块:1698及18XX等更新家族盘要操作固件模块之前,必须先加载11模块,才能正确加载13号模块,之后才可以读写固件区。否则直接加载13号模块,是无法成功让硬盘有读写固件区的。
[0037]5C号模块:ServoOverlay模块,没有13号模块的新型家族的硬盘,则需要通过先加载5C模块,在加载11模块,从而能够让硬盘起转并访问硬盘固件区,操作固件。
[0038]进一步地,加载5C、11、10和13等模块的方法如下:
[0039]随着西数厂家越来越多的ROYL新系列的硬盘出厂,固件架构也随之变化,固件模块不同家族,会有不同的差别。如果硬盘的ATA模块损坏,硬盘是无法正常工作的。只有加载了 ATA模块之后,硬盘才能正常访问SA区域。
[0040]电路板编号1640及以上版本ATA加载原则:
[0041]1、有13没5c 加载11后加13;
[0042]2、有5c没13 加载5c后加11;
[0043]3、没13没5c加载11即可;
[0044]4、有13又有5c 加载11后加13;
[0045]5、有10有5C有11加载10后,加载5C,再加载11;
[0046]进一步地,加载5C模块方法如下:
[0047]45 OB 00 44 57 AO 80
[0048]45 OB 00 44 57 AO 80
[0049]D6 01 BE 4F C2 AO BO (14 00 08 00 00 00 00 00 15 01 00 00……长度
512)//15 01表不5C的总扇区数01表不一个扇区
[0050]D6 00 BF 4F C2 AO BO//传送5C模块前0x100个扇区00表示0x100个扇区
[0051]D6 15 BF 4F C2 AO BO//传送5C剩余的0x15个扇区
[0052]00 01 00 00 00 AO EC
[0053]进一步地,加载11模块方法如下:
[0054]45 OB 00 44 57 AO 80
[0055]45 OB 00 44 57 AO 80
[0056]D6 01 BE 4F C2 AO B0(14 00 08 00 00 00 00 00 B9 04 00 00……长度512
【后面500个O】)//B9 04表不11的总扇区数01表不一个扇区
[0057]D6 00 BF 4F C2 AO BO//传送11模块第一个0x100个扇区00表示0x100个扇区
[0058]D6 00 BF 4F C2 AO BO//传送11模块第二个0x100个扇区00表示0x100个扇区
[0059]D6 00 BF 4F C2 AO BO//传送11模块第三个0x100个扇区00表示0x100个扇区
[0060]D6 00 BF 4F C2 AO BO//传送11模块第四个0x100个扇区00表示0x100个扇区[0061 ] D6 B9 BF 4F C2 AO BO//传送11模块剩余的0xB9个扇区
[0062]00 01 00 00 00 AO EC
[0063]加载10和13等模块的方式原理相同,均为常规技术手段,不再赘述。
[0064]进一步地,恢复数据具体如下:
[0065]S31等待硬盘状态重新就绪后,从ROM中搜索OB和20B模块。
[0066]S32从OB和20B模块中搜索OI模块在硬盘固件区的存储地址。
[0067 ] S33通过查找OI的存放地址,找到OI固件区地图模块。
[0068]S34通过01固件区地图模块中记录的固件区信息找到所有其他固件模块的存放位置。
[0069]S35通过01记录的固件区其他固件存放地址,搜索出此故障盘的所有固件区模块。
[0070]S36将最开始插入硬盘的3个跳线全部移除,并将搜索到的所有固件区模块,以ABA方式回写回到硬盘的2个主要磁头(O和I)。
[0071]S37回写完成之后,断电起电一次,再次获取硬盘参数即可认盘。
【主权项】
1.一种西数硬盘加载指定模块进行硬盘修复的方法,其特征在于,包括如下步骤: SI进入硬盘安全模式;S2加载ATA指定模块;S3恢复数据;其中,S2的具体方法如下:S21开启硬盘固件读写区域;S22smartl0g方式写入需要加载的文件大小参数信息;S23读取准备好的模块文件数据到buf f er; S24将buf f er分成0X100*Y个段,其中Y的取值为O到FFFF,未分配满的单独为一个buf f er段;S25采用smartlog方式依次写入数据内容;S26获取硬盘参数信息。2.根据权利要求1所述的西数硬盘加载指定模块进行硬盘修复的方法,其特征在于,SI的具体方法如下:Sll将3个短跳线依次插入靠近硬盘接口左边的针头处;S12将硬盘通电后,硬盘进入安全模式;SI 3获取硬盘参数信息,直到硬盘状态显示就绪。3.根据权利要求1或2所述的西数硬盘加载指定模块进行硬盘修复的方法,其特征在于,S3的具体方法如下: S31等待硬盘状态重新就绪后,从ROM中搜索OB和20B模块; S32从OB和20B模块中搜索01模块在硬盘固件区的存储地址; S33通过查找01的存放地址,找到01固件区地图模块; S34通过01固件区地图模块中记录的固件区信息找到所有其他固件模块的存放位置; S35通过01记录的固件区其他固件存放地址,搜索出此故障盘的所有固件区模块; S36将最开始插入硬盘的3个跳线全部移除,并将搜索到的所有固件区模块,以ABA方式回写到硬盘的2个主要磁头O和I ; S37回写完成之后,断电起电一次,再次获取硬盘参数即可认盘。
【专利摘要】本发明公开了一种西数硬盘加载指定模块进行硬盘修复的方法,属于硬盘数据恢复领域,包括以下步骤:S1进入硬盘安全模式;S2加载ATA指定模块;S3恢复数据,其中,S2的具体方法如下:S21开启硬盘固件读写区域;S22smartlog方式写入需要加载的文件大小参数信息;S23读取准备好的模块文件数据到buffer;S24将buffer分成0X100*Y个段,其中Y的取值为0到FFFF,未分配满的单独为一个buffer段;S25采用smartlog方式依次写入数据内容;S26获取硬盘参数信息。本发明通过上述方法可以快速准确的恢复微代码出现故障、无法被加载,导致系统无法识别硬盘的故障。
【IPC分类】G06F11/07
【公开号】CN105653382
【申请号】
【发明人】黄旭, 张佳强, 董超
【申请人】四川秘无痕信息安全技术有限责任公司
【公开日】2016年6月8日
【申请日】2015年12月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1