最近入手了个NAS机箱,在准备配件时买了块LSI SAS9311-8i阵列卡,但卡是IR模式,需要自己刷成IT模式。网上查了几天的资料,看得云里雾里,最后结合了部分官网说明、文档和大神教程,总算顺利搞掂。这里对升级刷新过程做一个简要记录,并把所需固件和工具打包,方便有需要的同学下载使用。
一、一点基础知识
阵列卡的作用:连接多个硬盘,组建磁盘阵列。
IT模式(Initiator Target):
也就是HBA(Host Bus Adapter)卡,单独的卡片不负责处理RAID信息,如需RAID则需要进入系统通过软件进行重组。
IR模式(Integrated RAID):
也就是RAID(Redundant Array of Independent Disks)卡,卡片自身带有系统,可以直连硬盘组成RAID,当你进入系统后,所见的硬盘就已经是组好RAID的形态了。
在很久之前的商用服务器上,IR模式的好处是单独的卡片计算负责RAID,降低系统本体的运算量,模块化的独立设计,也可以更好的处理故障,最大程度的保证系统稳定运行以及数据安全。(出问题了换张卡就行,不用去系统中大量的调试)。现如今的CPU计算能力也非常出色,软RAID能力不输于硬RAID,而且现在的软件设计也比起之前高效很多。最主要一点,IT模式对虚拟机直通硬盘和对NAS常用的ZFS文件系统兼容更好。
LSI SAS9311-8i阵列卡主要参数:
二、常见固件刷新方式
1. MegaRAID Storage Manager(Windows操作)
MSM的下载地址:https://www.ibm.com/support/pages/node/838302?lnk=hm
优点:直观、无危险,高度推荐,建议首先采用。
缺点:无法cross-flash,虽然可以升级,但无法从IR模式刷为IT模式。
2. 纯DOS命令行方式(U盘启动):
使用rufus制做可启动U盘(引导类型选择:Freedos),将sas3flsh.exe和其他固件升级文件拷贝到U盘中,启动,然后固件刷新。
优点:仅适用老机器和低版本固件。不推荐。
缺点:新卡、新固件几乎无法成功刷新。
3.Windows控制台方式:
以管理员模式进入MsDos控制台或PowerShell,进行固件更新。
优点:方便,高度推荐,建议首先采用。
缺点:部分厂家未提供适用于MsDos控制台或PowerShell的刷新程序。
4. EFI命令行方式(U盘启动):
制作EFI启动盘,将sas3flash.efi和其他固件升级文件拷贝到U盘中,启动,然后固件刷新。
优点:适应性广,是最通用的方法,高度推荐。
缺点:需要制做启动U盘,了解一些 UEFI Shell 命令,可能遇到 github 上的文件无法下载的问题。
个人感觉EFI shell命令行方式适应性最好,而且支持从IR模式刷为IT模式,本人使用此方式,后文也只对这一方式进行讲解。
三、固件刷新操作常用工具和命令
1.官方固件刷新工具
dos环境下使用: sas3flsh.exe
windows控制台/powershell: sas3flash.exe (有32位/64位两个版本)
EFI Shell: sas3flash.efi
2. 常用命令
-listall 显示所有阵列卡的信息
-list -c* 显示选定阵列卡的信息,c*代表上面命令中列出的这列卡序号,如只有1张卡,-c0可缺省
-ufirmware 当前固件备份
-ubios 当前BIOS备份
-o 启用高级命令模式
-e 删除固件的指定区域
-c 对序号所指定的阵列卡进行操作操作(参考-listall)
-f 固件更新
-b BIOS更新
-sasadd 写入阵列卡的地址
-assem 写入阵列卡的组件编号
-tracer 写入阵列卡的序列号
四、需要准备物品:
1. 支持UEFI启动的主机1台,近几年的主板应该都支持;
2. FAT32格式U盘1个。
五、具体过程
(一)收集所需文件
1. UEFI启动文件
文件名:Shell_Full.efi
下载地址:https://github.com/tianocore/edk/blob/master/Other/Maintained/Application/UefiShell/bin/x64/Shell_Full.efi
2. 固件包
文件名:9311_8i_Package_P16_IR_IT_FW_BIOS_for_MSDOS_Windows.zip
下载地址:https://www.broadcom.com/site-search
在博通官网以9311_8i_Package IR_IT_FW 为关键词进行搜索,选择版本(P**)最高的下载就行。
将下载得到的压缩包解压,只选出我们需要的文件即可:
Firmware\SAS9300_8i_IT\SAS9300_8i_IT.bin ——IT模式固件
sasbios_rel \ mptsas3.rom ——Legacy BIOS 驱动升级包
uefi_bsd_rel\Signed\mpt3x64.rom ——UEFI BIOS 驱动升级包
3. UEFI模式下刷新工具
sas3flash.efi
下载地址:https://www.broadcom.com/site-search
在博通官网以 Installer_P16_for_UEFI 为关键词进行搜索,会有几个结果,选择更新时间最新的。
下载解压后,文件位置在 Installer_P16_for_UEFI\Installer_P16_for_UEFI\sas3flash_udk_uefi_x64_rel\sas3flash.efi
(二)制作启动U盘
1. 将U盘用diskgenius或windows 磁盘管理 删除所有分区,然后新建一个分区,并格式化成FAT32格式。
2. 建立如下的目录结构:\efi\boot\
3. 将之前下载的Shell_Full.efi放在boot目录中,然后改名为Bootx64.efi。
4. 将sas3flash.efi和SAS9300_8i_IT.bin、mptsas3.rom、mpt3x64.rom共4个文件复制到U盘根目录。
最终U盘目录结构如下:
(三)刷新固件
开始前,建议把阵列卡背面的3个标签拍下照,后面会用到上面的信息。
1. 将阵列卡插入主板PCI-E插槽。X8或X16均可,制作好的U盘也插好。
2. 开机,进入启动选项(具体按键请参阅主板说明,比如联想为F12),选择UEFI USB启动。
3. 启动后,会列出所有逻辑驱动器,一般情况fs0就是当前U盘,如果嫌乱,可以提前把所有硬盘线都拔掉。
输入 fs0: 进入U盘目录。
**此处注意,不要漏掉“:”,后面所有命令中涉及的符号,记得都要用英文半角。
4. sas3flash.efi –list ——列出当前阵列卡详细信息
(我的主板上只插了一块阵列卡,省略了 -c 0 参数;若有多块,可用 -c n 指定需更新的阵列卡。n 的值,可用 sas2flash.exe -listall 查看。建议还是逐个刷好一点)
如果前面没有给阵列卡背面标签拍照,此处需要记下3处信息(红框)
5. 逐条输入下面的命令
sas3flash.efi -o -e 7 (UEFI BIOS 下擦除,包括sasaddress)
3-3sas3flash.efi -o -f SAS9300_8i_IT.bin (升级固件)
sas3flash.efi -o -b mptsas3.rom (升级 Legacy BIOS 驱动)
sas3flash.efi -o -b mpt3x64.rom (升级 UEFI BIOS 驱动)
sas3flash.efi -o -sasadd <sasaddress> (如上图第一个红色方框内,500605B007*******)
** 此处注意,sasaddress连续输入即可,不要加图中的连字符,可参考标签样式
sas3flash.efi -o -assem <assemblynumber> (assemblynumber,如上图第二个红色方框内,H3-25461-02)
sas3flash.efi -o -tracer <tracernumber> (tracernumber,如上图第二个红色方框内,SP8230****)
每条命令输入后,等待执行完成,会有下面的提示
6. 升级完成后,再次执行 sas3flash.efi –list 查看信息是否更新,尤其是上图红色方框内的信息, 以及 Firmware Version。可以看到,此时阵列卡已经变成了IT模式。
至此,固件升级和改模式工作已经全部完成。这个过程应该不止适用于9311,其他同样采用3008芯片的阵列卡应该都可以照此操作,甚至是2008、2308芯片的都可以参照,重点是选对固件,另外,2008、2308的刷新工具也要换成sas2flash.efi。
刷新有风险,后果请自担!本文过程只在本人手中的LSI SAS9311-8i上验证通过,不代表您也一定成功。切记过程中不要断电,否则可能变砖。
顺便说一下,3008的发热太厉害了,没有服务器条件风道的同学,最好还是找个4010的小风扇绑在散热片上吹吧。
所需工具包:
链接:百度网盘 提取码:37ww
文中部分内容引用自 LSI 2008/2308阵列卡固件刷新 - 知乎 。致谢侵删!。