华为的RH2285 v1的raid卡使用的是LSI 1068E芯片,出厂的默认firmware为IR mode,支持raid模式。现在需要将这张卡的firmware刷成IT mode。

创建可启动的iso镜像

lsi的刷机工具可运行在dos、windows和linux之下,显然,创建dos启动盘是最简便。网上有很多教程是针对创建freedos的u盘启动盘,但是采用u盘启动有一个问题:那就是需要到机房将u盘插到服务器中。我懒,所以想了一个招:如果能创建一个freedos的cd iso,然后利用华为ipmi所提供的虚拟安装介质功能,那就可以远程升级了。于是,我google到一篇文档

步骤是:

  1. 下载并解压freedos oem disc builder assistant(简称FDOEMCD.builder)

    使用FDOEMCD.builder可以创建iso,解压后得到的是FDOEMCD这个目录。

    该版本可运行在32位windows操作系统,如果是64位的操作系统,需要使用第三方提供的mkisofs.exe来替换掉原版。
  2. 下载64位mkisofs.exe并覆盖原版

    该二进制文件包含在cdrtools中,压缩包加压后,将里面的mkisofs.exe和cygwin1.dll拷贝到FDOEMCD目录中,并覆盖mkisofs.exe。

  3. 下载lsi it mode的firmware和bios

    使用了lsi 1068e芯片的lsi原厂的sas卡型号为3081ER,通过官网可以找到该卡最新的firmware下载,注:lsi已被avagotech收购。

    将其中的3081ETB3.fw、mptsas.rom和sasflash.exe拷贝到FDOEMCD\CDROOT下

  4. 双机运行makeiso.bat,即可生成一个fdoem.iso的镜像文件。

    假如主板支持uefi,那情况就更简单一些

    我尚未深入了解uefi,但是根据文中的描述来看,uefi自带启动功能,该文所创建的iso只是包含了需要刷机所用的sasflash、firmware和bios而已。

刷机

  1. 将之前创建的iso镜像文件插入华为ipmi虚拟媒体的光驱中。

    华为ipmi虚拟媒体

  2. 重启华为服务器,并在bios中设置启动的顺序。接着就可以启动到freedos中了。

  3. 在命令行提示符下键入C:\sasflash.exe -o -f 3081etb3.fw -b mptsas.rom,根据提示完成刷机,过程比较简单。

  4. 有些教程建议将sas的boot support设成disabled,但是设置为disabled之后,bios无法找不到硬盘,然而奇怪的是,仍然可以使用proxmox的iso完成系统安装,只是重启之后仍然找不到硬盘,于是将boot support改回both by os or bios,最后可以成功引导到proxmox。