关于机械硬盘的固件,在之前的文章中做过分享,小伙伴们可以从这里《由ATA密码浅谈西部数据硬盘固件模块》回忆一下。今天将通过一个案例为大家介绍一下希捷硬盘的译码器。
译码器这个概念有些小伙伴可能会比较陌生,但其实这在硬盘工作中起着至关重要的作用。固件相当于硬盘的操作系统,所以避免不了出现一些错误。一旦译码器模块出现问题,硬盘将彻底无法正常工作。所以通过这篇文章将简单的介绍一下硬盘的译码器。
存储介质详情
硬盘品牌 | 希捷Seaate |
规格 | 3.5英寸台式机硬盘 |
型号 | ST3500418AS |
容量 | 500G |
(表1 源盘详细信息)
(图1)
在这给大家普及一下如何通过硬盘外部标签获取硬盘相关信息。如图2
(图2)
S/N:6VMXXXX为硬盘的唯一编号
即使同一批次的硬盘其SN号也不可能相同,当然如果你对硬盘的固件结构非常了解,那么SN 号其实也是可以更改的。其中SN号的第一位一般表示硬盘的产地,该案件涉及的硬盘SN首位为“6”则表示其产地是中国苏州;同样如果是“5”则表示是产地为中国无锡。接下来两位数值至关重要,表示的是硬盘的磁头信息,如果涉及到“开盘”数据恢复则需要对比这两位数值。
ST3500418AS为硬盘的Model(型号)
“ST”表示品牌为希捷;“3”表示3.5英寸硬盘;“500”表示该硬盘容量500G;“4”表示其缓存为16M;“1”表示单碟;“8”为辅助标志;“AS”表示该硬盘采用的ATA通讯协议。
7200.12
7200表示该硬盘为7200rpm,也就是硬盘的转速;.12则表示该硬盘属于12代硬盘。希捷硬盘从系统架构分为“酷鱼/U系列(非F3架构)”和“F3架构”。从11代硬盘开始至最新的14代硬盘都属于F3架构。F3架构是希捷通过整合ATA协议与SCSI协议的产物,不知道有没有小伙伴记得当年希捷的“固件门”事件,就是因为起初F3架构出现了严重缺陷导致的。当然现在的F3架构非常稳定大家可以放心。PC3000对应的希捷硬盘菜单,如图3
(图3)
希捷硬盘在进行固件访问及指令调试的时候,需要通过终端指令线进行指令的发送。其线序从右至左为:TX、RX、GND、空位。如图4
(图4:来自网络)
同样需要指令线配合的硬盘品牌还有三星、东芝等品牌。希捷硬盘的串口模式与ATA模式不可同时工作。一旦进入了串口模式则ATA通道将不可进行数据交互。用户可在终端界面通过使用Ctrl+Z与Ctrl+T进行模式切换。
如图5和图6,为F3架构与非F3架构硬盘的串口模式。可以看到F3架构架构的标志是“F3 T>”;而非F3架构的硬盘则是“T>”。
(图5 F3架构)
(图6 非F3架构)
故障表现
将源盘连接只读设备,尝试进行数据固定。在镜像过程中发现只能镜像开始的一小段LBA,在大约1G左右开始无法进行数据固定,反复尝试多次均如此。通过对硬盘进行逻辑扫描测试发现,硬盘自LBA=2063306开始出现坏道,并且尝试快进发现自此LBA之后出现全盘坏道现象。如图7
(图7)
故障诊断
由此基本可以确定,硬盘译码器出现了问题。怀疑是否为“前好后坏”,但是一般“前好后坏”对应错误寄存器指示灯为“UNC”(无法纠正的读错误)。而该盘错误寄存器指示灯为“ABRT”(指令被终止),并且通过“非常驻G表”(V40)、与P表(V10)结合判断,该盘很可能只是单纯的译码器翻译错误导致某一LBA开始无法正常寻址,而并非“前好后坏”故障。
连接好硬盘的SATA线及COM终端线,进入希捷专修模式。如图8
(图8)
进入专修模式后,由ATA工作模式通过Crtl+Z切换至终端串口工作模式,此时默认在T级,通过V4可以查看当前硬盘的“重分配表”,该缺陷表主要是用来临时记录硬盘在正常工作中产生的坏道,并在闲时对这些缺陷进行重定向,如将缺陷分配到常驻G表、道表等。
如图,V4的第一条缺陷记录的起始LBA为LBA=0000001F7C99转换成十进制为LBA= 2,063,513,前面通过硬盘逻辑测试可知LBA=2063306开始出现坏道,并且逻辑测试的区块大小为256扇区。而该缺陷正好处于2063306-2063562之间。
(图9)
故障处理
已经判断出该硬盘译码器出现了故障,那么只需要重新生成译码器即可,但生成译码器是个复杂的过程,其中需要多个缺陷表参与其中,所以在重建译码表过程中一定要谨慎处理,操作不当不但不能解决问题还有可能会使故障更为严重。
判断常驻G表(V80),与非常驻G表(V40),确认G表中是否已存在缺陷记录,如图所示X,可以看出常驻G表记录为0。
(图10)
由此可以基本确定,在接下来的译码器重建过程中可以不用考虑G表的问题。软件支持重建译码器或者通过指令“m0,6,2,,,,,22”。如图11
(图11)
“m指令”是个很复杂的指令,后面小编将针对“m指令”单独详细的讲解。
通过重建之后发现,V4中原本的缺陷记录竟然消失了,而原本常驻G表缺陷记录为0现在也有记录项了。如图12
(图12)
说明在进行译码表重建的过程中将“重定向表”(V4)中的缺陷记录定向到了常驻G表(V80)中。此时再次尝试对硬盘进行逻辑测试查看硬盘状态,如图13
(图13)
可以看到此时的LBA=8246528,其LBA范围早已超过之前故障LBA=2063306的范围。说明此时硬盘的译码器翻译正常了。接下来通过常规的方式顺利的将硬盘数据固定完成。
总结
该案例中的涉及的硬盘,是典型的译码器翻译错误,原因是由于在使用过程中产生了坏道,而硬盘在译码器翻译过程中出现了错误导致全盘坏道。
通过此案例不难看出,硬盘的缺陷表及译码器等固件模块对于硬盘正常工作起着至关重要的作用。所以希望读者日后工作中或者日常使用中一定要规范使用硬盘,如果发现硬盘读写速度缓慢就要及时做好数据备份,避免数据丢失。
END