IBM M5014/M5015 刷 LSI 固件教程
声明:刷固件有风险,请认真阅读本教程,如果出现误操作导致变砖本人概不负责。
刷固件理由
IBM 原版固件启动太慢了,从启动到加载完成需要好几分钟,而 LSI 的固件启动比较快。实际上 M5014/M5015 就是 LSI 9260-8i 的 OEM 版,在原版上阉割了一些功能。
准备工作
下载软件
MegaRec
刷机主要用的软件,HP 官网有下载。前往 HP 企业官网,搜索“LSI MEGARAID CACHE CLEARING”
搜索结果选择下图所示,点击下载即可
MegaCLI(可选)
主要用来查看控制器对应编号,如果只有一张卡可以不下载。如果有多张卡或者为了保险起见可以下载。
LSI 目前被博通收购了,所以要去博通官网下载。进入官网,如下图所示,选择 “Support Documents and Downloads”。
在搜索框输入“MegaCLI”,点击搜索
在“Management Software and Tools”里选择第一个下载。新页面拖到最下面点我同意就可以下载了。
LSI 9260-8i 固件
同 MegaCLI 一样,也要在博通官网下载。
在搜索页面“Product Group”选择“Legacy Products”,“Product Family”选择“All Legacy Products”,“Product Name”输入 9260 并选择“MegaRAID SAS 9260-8i”,点击“Search”搜索。
固件在“Firmware”内。“Current”为最新固件,“Archive”为历史固件。
LSI SBR 固件
SBR 固件是卡的启动固件,需要刷入正确的固件才能成功启动卡。外国论坛有人整理好 9260-8i 和 M5014 等卡的 SBR 固件:SAS2108 (LSI 9260) based firmware files。
Rufus
Rufus 是用来制作 DOS 启动盘的软件,官网。
制作 DOS 启动盘
准备一个 U 盘,备份里面的数据,因为会格式化 U 盘。U 盘容量超过 200 MB 即可。
打开 Rufus,插入 U 盘。设备选择你插入的 U 盘,引导类型选择 FreeDOS,其他保持默认,点击开始。
将 SBR 固件全部解压至 U 盘。新建两个文件夹:tools
和 lsi
。
解压 MegaRec 的压缩包,将 MegaRec.exe
和 DOS4GW.EXE
放入 tools
文件夹。
解压 MegaCLI 的压缩包,将 DOS
文件夹下的 MegaCLI.exe
放入 tools
文件夹。
解压下载的 LSI 固件压缩包,将 mr2108fw.rom
放入 lsi
文件夹。如果下载了多个版本,可以以版本号最后 4 位数字重命名,比如 0189.rom
。
刷入 LSI 固件
进入 DOS 模式
进入主板 BIOS,开启 CSM 模式。插入制作好的 DOS 启动盘,开机时选择 U 盘启动进入 DOS 模式。
注意,最好用旧主板,新的主板不支持 Legacy 模式启动下显示。实测 Intel 6 代及配套主板可以支持。
系统启动后,输入 dir
列出当前目录下内容,输出内容应该与下图类似
输入 cd tools
进入 tools
文件夹。如果觉得屏幕上内容太多,可以用 cls
指令清屏。
利用 MegaCLI 确定控制器编号(可选)
如果只有一张卡可以跳过这步,因为一般编号都是 0。如果想确定是不是 0,可以用 MegaCLI 确认。
输入 megacli.exe -AdpAllInfo -aAll>all.txt
,待指令执行完毕按电源键关机。在系统内查看 U 盘内 tools
文件夹内的 all.txt
,应该有如下类似输出:
Adapter #0
==============================================================================
Versions
================
Product Name : LSI MegaRAID SAS 9260-8i
Serial No : SV22816038
FW Package Build: 12.12.0-0048
Adapter 后面的数字就是对应的控制器编号,这里就是 0。
刷入 SBR 固件
先写入空文件清除原有固件:
megarec.exe -writesbr 0 ..\2108\sbrempty.bin
如果之前 MegaCLI 显示控制器编号不是 0,那这里要改成对应编号,后面也一样。
再写入 LSI 的 SBR 固件:
megarec.exe -writesbr 0 ..\2108\sbr9260.bin
写入完成后输出应该类似下图:
擦除闪存
输入如下指令:
megarec.exe -cleanflash 0
同理,这里 0 是 MegaCLI 返回的控制器编号。输出应该类似下图:
擦除闪存成功后按下“Ctrl+Alt+Del”重启。这步很关键,没有重启有可能会变砖。
重启后再次进入 DOS 模式,输入 cd tools
进入 tools
文件夹。
选择 LSI 固件版本
虽然 LSI 固件有很多版本,但是有的版本刷入后,并不会被识别成 9260-8i,仍然是 M5014,启动时间还是很慢。
国外论坛有人整理了哪些版本是可以成功的(链接):
固件后 4 位 | 结果 |
---|---|
0102 | √ |
0111 | √ |
0124 | × |
0139 | √ |
0151 | √ |
0154 | √ |
0167 | √ |
0189 | √ |
0205 | × |
0239 | × |
写入 LSI 固件
这里以 0189 固件为例,输入以下指令刷入:
megarec.exe -m0flash 0 ..\lsi\0189.ROM
同理,这里 0 是 MegaCLI 返回的控制器编号,但是不要修改 -m0flash
。耐心等待刷入完成
刷入完成后应该会有“Success”提示
验证
刷入 LSI 固件后,按下“Ctrl+Alt+Del”重启,如果卡型号显示 9260-8i 说明刷入成功
刷入新固件后第一次启动初始化会很久,这是正常现象,请耐心等待。
待初始化完成后进入系统再次重启,看启动时间是否缩短。