IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    远程转换 H330 为 HBA330

    Phoenix Nemo发表于 2023-06-26 16:39:47
    love 0

    由于 PERC H330 的 passthrough mode 并不适用于 ZFS 所以只好强刷为 HBA330 啦。

    注意!此方法不适用于 H730/H830 系列 RAID 卡,且 H730 卡支持直接转换为 HBA。

    操作前先备份!操作前先备份!操作前先备份!重要的事情说三遍!!!

    准备必要程序和固件

    1. DOS 版本 megacli.exe
    2. DOS 版本 megarec3.exe,sas3flsh.exe 和其他必要文件
    3. HBA330 固件

    …

    我不装了,这里有 Sleyk 大神准备好的文件包。

    准备 FreeDOS 启动镜像

    首先下载 FreeDOS 的 USB Lite 镜像,作为基础系统环境。当前版本 1.3 解压后给出 FD13LITE.img 文件。

    扩容 img 镜像到 128M:

    1
    ~> truncate -s 96M FD13LITE.img

    扩展镜像的 FAT 分区

    1
    ~> fatresize -n 1 -s max FD13LITE.img

    挂载 img 镜像

    1
    2
    3
    4
    5
    ~> udisksctl loop-setup -f FD13LITE.img
    Mapped file FD13LITE.img as /dev/loop0.
    ~> udisksctl mount -b /dev/loop0p1
    Mounted /dev/loop0p1 at /run/media/user/FD13-LITE
    ~> cp /path/to/flash/files /run/media/user/FD13-LITE/

    注意 DOS 并不能识别部分文件名,如果不修改的话,在 DOS 中会显示成类似 HBA~1 的形式。

    复制好文件后卸载镜像

    1
    2
    3
    ~> udisksctl unmount -b /dev/loop0p1
    Unmounted /dev/loop0p1.
    ~> udisksctl loop-delete -b /dev/loop0

    完事儿后把修改版 FD13LITE.img 远程挂载到 iDRAC KVM 里,然后重启服务器,从 Virtual Floppy 启动即可。

    • 注意:如果 Virtual Floppy 选项没有识别为 [Hard Disk] Virtual Floppy 的话则可能需要再次重启,因为镜像没有正确识别,无法进入 FreeDOS。具体原因不明。

    Crossflash!

    进入 FreeDOS 环境后会提示是否安装,选 No 回到 FreeDOS 就可以执行命令啦。

    1. 刷入 SMC3018 ROM
    1
    > megacli -adpfwflash -f smc3108.rom -noverchk -a0

    然后因为是远程挂载镜像,会报一堆写入错误,需要一直忽略这些错误。一直等待操作完成报告成功。

    1. 重启,然后耐心等待直到出现 Baseport not responding. No adapter available 再进入 FreeDOS 环境。

    2. 清零 Serial Boot ROM (SBR)

    1
    > megarec3 -writesbr 0 sbrempty.bin

    过程中的报错可以忽略,最终报告成功即可。

    1. 清零 flash
    1
    > megarec3 -cleanflash 0
    1. 重启。

    2. 再次进入 FreeDOS 环境,刷入 HBA330 固件。

    1
    > sas3flsh -o -f hba330.fw -b mptx64.rom

    如果是 H330Mini,则需要刷 hba330mini.fw,否则会不识别硬盘。

    1. 最后一步,重编程 SAS 地址。看起来可以省略,默认是 16 个 0。
    1
    > sas3flsh -o -sasadd 0000000000000000

    只能用数字和字母,必须 16 位。可以自己造也可以用原本的地址(megacli -adpallinfo -a0)。如果自己造的话需要保证不和同系统内的其他卡冲突。

    完成

    好耶!(≧∇≦)/

    参考:

    1. https://sandelinos.com/nerd-stuff/Creating_customized_FreeDOS_images/
    2. https://forums.servethehome.com/index.php?threads/flash-crossflash-dell-h330-raid-card-to-hba330-12gbps-hba-it-firmware.25498/

    顺便还折腾了一台老 HPE 的 P420i,步骤很简单,只需要官方的 ssacli 即可。

    1
    2
    3
    4
    # 清空所有逻辑磁盘
    ~> ssacli controller slot=0 logicaldrive all delete forced
    # 设置为 HBA Mode
    ~> ssacli controller slot=0 modify hbamode=on forced

    如果不知道 slot 编号,可以 ssacli ctrl all show 来看。

    但!是!

    虽然改成了 HBA,但你不能从这 HBA 的硬盘启动。

    (╯°□°)╯︵ ┻━┻



沪ICP备19023445号-2号
友情链接