[分享] Init SMART fail故障分析及解决方法

[复制链接]
  • TA的每日心情
    奋斗
    2016-8-1 17:19
  • 签到天数: 14 天

    [LV.3]八品县丞

    70

    主题

    92

    回帖

    1418

    积分

    Intohard Team

    Rank: 7Rank: 7Rank: 7

    积分
    1418
    QQ
    发表于 2017-12-25 16:12:12 | 显示全部楼层 |阅读模式
    Init SMART fail故障分析及解决方法

    首先我们简单来了解一下什么是SMART。SMART全称是“Self-Monitoring,Analysis and Reporting Technology”,中文意思是“自我监测分析与报告技术(自动容错机制)”。是一种自动的硬盘状态检测与预警系统和规范。它是现代硬盘支持的一种功能,可以对硬盘的通电时间、温度、内部电路、盘片表面介质材料等进行监测,并记录硬盘的运行日志,以便及时分析出硬盘可能发生的问题,并提前发出警告,从而保护数据不受损失。但由于ATA标准不断更新,不同硬盘的阈值,属性值,最大出错值可能会有所不同。

    由于硬盘在上电,重建编译器或者读写遇到坏扇区等情况下都会向SMART模块写入日志数据,因此SMART模块所在的磁道会被频繁修改,也就导致SMART模块比较容易损坏。希捷F3硬盘与SMART相关的模块有09, 0A和35这三个。这三个模块里记录了诸如错误读取率,加电次数,重新分配扇区数,硬盘启动重试次数,硬盘校准重试次数等等重要的信息。所以一旦这些模块出现损坏,硬盘就有可能出现这样或者那样的问题。而SMART模块损坏正是希捷F3系列硬盘比较常见的一种故障。

    下面我们来介绍一下SMART模块损坏的故障表现和判定方法:

    1.硬盘上电不就绪,BUSY长忙。这个现象跟编译器模块损坏相似,但是故障的位置却不同,应注意区分。

    2.无法清除SMART信息。当在终端下尝试用指令清除SMART信息时,报告“Init SMART Fail”错误,如图所示:
    1.png

    3.无法重建编译器。当在终端下尝试用指令重建编译器时,仍然报告“Init SMART Fail”错误,编译器重建失败。如图所示:

    2.png

    对于第1条这种症状,在排除是编译器模块损坏的情况下,一般都是跟SMART模块相关联的。我们知道SMART模块损坏可能有两种不同的情况,一种是SMART模块所在的磁道出现了逻辑错误,这一点我们下文中会讲到;第二种情况可能是因为记录的条目太多,导致溢出(又称为爆表)。对于第二种情况,属于SMART磁道是好的,但是SMART模块的内容中存在错误的数据,这样也会导致硬盘上电不就绪故障。对于这种情况我们可以通过清除SMART,清除A-list,然后重建编译器来解决。这也就是我们常说的“希捷三步法”。

    第2条和第3条非常典型,如果出现这两条症状,问题基本可以确诊为SMART磁道损坏而不是因为SMART溢出。由于SMART磁道损坏会导致无法重建编译器,也就无法完成“希捷三步法”,因此,遇到此种故障的硬盘应该先修复SMART磁道,再进行希捷三步法。

    通常情况下,“Init SMART Fail”故障是因为SMART磁道出现了磁道逻辑错误,在之前的软件版本上,对于此类问题,我们的处理方式是使用“磁道读取测试”这一工具来解决。但是从希捷F3模块的2.0.1.2版本起,我们在ROM工具中增加了对“Init SMART Fail”故障的patch修复功能。这个功能非常强大,它能够修改ROM数据,从而使硬盘能够跳过读取SMART磁道这一操作,进而成功地重建编译器而不会返回“Init SMART Fail”错误的提示信息。

    下面是如何使用MRT “init SMART Fail” patch功能的详细步骤说明:

    打开MRT软件,进入希捷F3程序,然后点击菜单“工具->固件区对象查看->ROM工具”。在弹出的ROM读取对话框中,有四种ROM读取的方式,分别是ATA方式、BootCode方式、系统文件方式以及从文件中加载的方式。我们知道“Init SMART Fail”故障一般是伴随着长忙故障的,所以通常情况下,我们建议选择以BootCode方式来读取ROM。并且一般将波特率设置为460800。

    3.png

    在ROM被成功读取后,我们点击patch工具的图标,可以看到“SMART fail”这一选项,只需点击一下,“Init SMART Fail”故障即可轻松解决。然后我们需要将这个patch后的ROM保存下来,在Boot模式工具下将其写入。

    4.png
    5.png

    写入完成后,断电上电,重建编译器,“Init SMART Fail”的错误提示就会没有了,并且能够返回重建编译器成功的信息。至此“Init SMART Fail”故障已经被成功修复。

    6.png

    但是有时候,在使用此功能时,可能会弹出“暂不支持此ROM!”的提示信息。

    7.png

    也就是说这个类型的ROM是不能使用这个patch功能的,那么我们如何解决“Init SMART Fail”的问题呢?回顾一下上文,我们刚刚提到过,在此之前我们是可以通过使用“磁道读取测试”这一工具来解决的。

    下面是如何使用MRT“磁道读取测试”功能的详细步骤说明:

    1. 打开MRT软件,进入希捷F3程序,然后点击菜单“终端->串口二进制模式”。或者直接在软件最右端,点击“串口二进制模式”的图标。如图所示:

    8.png
    9.png

    2. 接下来点击菜单“工具 -> 磁道备份与还原 -> 按磁道读取固件”,打开磁道读取页面。如果用户还没有建立工作文件夹,此时会弹出“新建文件夹”对话框,如图所示:
    10.png

    MRT会为每个硬盘建立一个工作文件夹,该硬盘读取的所有固件文件都会默认保存在该工作文件夹中。如果硬盘能认盘,则工作文件夹会以硬盘的型号、序列号和固件版本命名,如果硬盘不能认盘,则文件夹默认以当前时间命令,用户也可以更改为自己输入的名称。点击“确定”后,工作文件夹建立,同时“磁道读取”页面打开,如图所示:

    11.png

    磁道读取页面会列出该硬盘所有的服务区磁道,注意这里的磁道全都是指服务区的磁道。在“选择逻辑磁头”列表中用户可以选择指定的磁头号码,这样就可以查看每个磁头上的磁道列表。

    由于通常硬盘的运行时固件都是Copy0,也就是在0号磁头上,所以我们选择0号磁头,然后在磁道列表中点击鼠标右键,在右键菜单中选择“全部选中”,这样所有0号磁头的服务区磁道都会被勾选。然后我们点击“磁道读取测试”按钮,如图所示:
    12.png

    这一步是常用的服务区检测操作。目的是检测服务区是否出现不可读的损坏磁道,并列出哪些磁道损坏,检测结果会显示在日志窗口中。

    3. MRT开始对选中的服务区磁道进行读取测试。无法读取的磁道会以醒目的红色字体显示。注意希捷12代的SMART模块通常位于0磁头的服务区22——24磁道,其它型号的位置不同,需要根据硬盘型号确认。我们可以看到这些磁道全都读取失败,证明SMART磁道确实出现损坏。如图:
    13.png

    在上面的测试结果中,可以看到除了SMART模块所在的22——24号磁道外,附近的磁道也出现了损坏。我们需要对这些磁道进行修复。注意这里SMART磁道是最重要的,必须进行修复,而附近的磁道,由于不存放关键数据,所以修复是可选的。

    4. 在终端菜单,同步设置波特率为460800,然后到磁道读取页,选中22——24号磁道(其它损坏磁道是可选的),然后勾选“有错误时继续”,最后单击“开始读取”按钮,如图:

    14.png

    因为要读取的磁道都是有损坏的,所以需要勾选“有错误时继续”,这会让MRT尝试强制读取这些磁道,最大限度的将模块原来的数据读取出来。读取出来的磁道数据会以文件的形式保存在工作文件夹中,磁道中的坏块会用“!”符号来填充。

    5. 磁道强制读取完毕后,会保存到文件。然后我们将这些文件再重新写回磁道,在磁道重写的过程中,硬盘内部会自动重算每个扇区的ECC校验码,当被损坏的磁道重写一遍后,通常磁道就会恢复正常。

    点击菜单“工具 -> 磁道备份与还原 -> 按磁道写入固件”,这时会打开磁道写入页。在磁道写入页下方会列出刚才读取到的磁道数据文件,文件名都是以“磁道号_磁头号.trk”方式命名的。选中刚才读取的所有磁道文件,然后点击“开始写入”按钮,即可开始重写损坏磁道。如图所示:

    15.png

    注意:在传输方式选项中,由于此时硬盘不能就绪,SATA接口无法工作,因此不能选择“ATA高速传输”。对于希捷12代及以后的硬盘,可以支持“串口高速传输”,建议选中,这样写入速度会快很多。另外,建议勾选“有错误时继续”,这样会尝试强制写入,修复效果较好。

    6. 然后等待磁道写入完成,写入完成后,日志页会报告写入的情况,如图:
    16.png

    没有报错则表示全部磁道写入成功。

    7. 写入完成后,重新转到“磁道读取”页面,在磁道列表中勾选刚才重写的磁道,然后点击“磁道读取测试”按钮,重新对刚才的磁道进行读取测试。此时可以发现,刚才不能读取的磁道,现在已经可以正常读取了,证明磁道修复成功,日志显示如图所示:

    17.png

    8. 然后退出“串口二进制模式”,重新在终端下执行重建编译器的指令,可以看到,指令能够成功完成,不再报告“Init SMART fail”错误了。至此“Init SMART Fail”故障已经被成功修复。

    18.png

    以上就是关于Init SMART Fail故障分析和解决方法的全部内容,谢谢。


    邮箱:sales@mrtlab.com
    QQ:3292109557


    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表