案例展示   Case
联系我们   Contact
你的位置:首页 > 案例展示 > 固件技术

希捷固件前好后坏故障分析

2017/4/9 20:53:15

暂无图片。

详细介绍

  前好后坏故障:希捷硬盘挖掉表缺陷条目的增加或减少导致的编译器异常,具体表现为扫描

  到某一个LBA 后,后面全部不可扫描,并且报错的状态灯是ERR 和UNC。

  ECC = f(head,data) 本质上是LBA 与PBA 的对应关系错位,导致计算出来的ECC 与存储的

  ECC 不匹配,这种不匹配会让硬盘判定读出来的数据是不受信任的,所以报错ERR,并且UNC

  灯亮。根据前面我们讲解的缺陷表的关系,替换表是不可能导致LBA 和PBA 的对应关系错

  位,只有挖掉表会导致对应关系错位(前移或者后移)。

  影响挖掉表条目的因素:

  1.G 转P 的时候,[V80:常驻G 表] 也就是已决部分才会转入,[V40:非常驻G 表]也会转入,

  但是未决的条目不转入,直接被清除

  2.做编译器再生时,勾选“处理增长缺陷表”,[V80:常驻G 表] 也就是已决部分,还有V4

  里面的未决部分,也就是整个V4 都会转入非常驻G 表。

  3.人为因素,恶意增删改V10 或V40,然后重建编译器。

  LBA 与PBA 的对应关系查询指令

  既然LBA 和PBA 的对应关系变化是导致前好后坏的根本原因,因此我们需要重点掌握这两

  条指令。查看C.H.S 与LBA 对应关系的指令是A>F;查看C.H.S 与PBA 对应关系的指令是A>C。

  A>F[LbaHi],[LbaLo],[SysAreaOpt],[NumLbas]

  【LbaHi】: LBA 或者是LBA 高位。

  如果LbaLo 没有输入值, LbaHi 参数中包含LBA 的32 位;如果LbaLo 输入了一个值,

  则LbaHi 参数中包含LBA 的高16 位。

  如果SysAreaOpt 有输入值,表示指定的LBA 位于系统区,否则LBA 位于用户区。

  类型: 无符号32 位值,0 至0xFFFFFFFF,此时LbaLo 没有输入值;

  无符号16 位值,0 至0xFFFF,此时LbaLo 有输入值;

  默认值:0

  【LbaLo】:LBA 低位。

  这个参数包含被翻译LBA 的低16 位。

  如果SysAreaOpt 有输入值,表示指定的LBA 位于系统区,否则LBA 位于用户区。

  类型:无符号16 位值,0 至0xFFFF;

  默认值:无。如果这个参数没有输入,LbaHi 就被假定为输入的32 位LBA 值。

  【SysAreaOpt】:系统区标记

  如果这个参数没有输入任何值,LbaHi 和LbaLo 两个参数指向的LBA 将位于系统区,否

  则LBA 就位于用户区。

  类型:无符号16 位值,0 至0xFFFF;

  默认值:无。

  【NumLbas】:LBA 数量

  这个值指定连续多少个LBA 被翻译成CHS。

  类型:无符号32 位值,0 至0xFFFFFFFF;

  默认值:1

  A>C[PbaHi],[PbaLow],[NumPbas]

  【PbaHi】: PBA 或者是PBA 高位。

  如果PbaLo 没有输入值,PbaHi 参数中包含LBA 的32 位;如果PbaLow 输入了一个值,

  则PbaHi 参数中包含PBA 的高16 位。

  类型: 无符号32 位值,0 至0xFFFFFFFF,此时PbaLow 没有输入值;

  无符号16 位值,0 至0xFFFF,此时PbaLow 有输入值;

  默认值:0

  【PbaLow】:PBA 低位

  这个参数包含被翻译PBA 的低16 位。

  类型:无符号16 位值,0 至0xFFFF;

  默认值:无。如果这个参数没有输入,PbaHi 就被假定为输入的32 位LBA 值。

  【NumPbas】:PBA 数量

  这个值指定连续多少个PBA 被翻译成CHS。

  类型:无符号32 位值,0 至0xFFFFFFFF;

  默认值:1

     更多数据恢复技术持续更新中:

    希贝软件客服QQ:201044567       希贝软件网站:www.mp4recovery.cn


更多图片