delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

31 Mar 2013

Seagate Barracuda LP固件升级笔记

其实 FreeBSD 本身的 camcontrol(8) 内建了用来刷硬盘/SSD固件的 ‘fwdownload’ 功能,不过因为正好也要稍微调整一下网络的配置,考虑了一下还是去机房本地做好了。

之前 Doug 的观点是刷固件有风险,所以没问题尽量别刷。不过,新版 smartmontools 没事就 nag 一下这事实在是很烦,加上网上找到的说明相当吓人:

The drives are clicking because they are recalibrating due to vibration, the reason they are only exhibiting this issue during idle is because the drive will only recalibrate when idle.

Doing a firmware update to CC35 should resolve this issue.

If it does not you should attempt to mount the drives in a different configuration, we have see using rubber washers can magnify the vibration.

所以还是升级一下好了。CC35 版本固件可以从 这里 下载。

我下载的是 ISO 版本,这个版本是一个光盘映像文件,里面有 FreeDOS 和用来刷固件的工具以及一份源代码。刻好之后到机房,首先备份全部数据,然后重启进入 BIOS 关掉 watchdog(如果 OS 不支持,超微主板上内建的华邦 watchdog 会在 5 分钟后重启系统,而这对刷固件的过程很可能是致命的),从光盘重启。

FreeDOS 的 InitDisk 似乎对我的 SATA CF 读卡器的支持有点问题,在提示 Error reading partition table drive 04 sector 0 五次之后总算超时进入了希捷的固件刷写程序,刷写本身并不复杂,但和说明上写的不完全一样,按 D 全部刷写就可以了。

这之后必须断电并重启系统,从驱动的角度我不太理解这是为什么,也许是硬盘必须经过掉电才会启用新的固件?(为什么控制器发复位信号不会做同样的事情?) 在完成之后,固件刷写程序会提示按任意键关机,这之后为了保险起见我还拔掉了电源,再重新开机,重新设置了 BIOS 的 watchdog,简单测试了一下,数据完好,收工回家。