我有一台戴尔 PowerEdge R710 服务器,配备日立 HUS156045VLS600 450Gb SAS 硬盘。
不幸的是,磁盘运行的是 NetApp NA02 固件。我想应用戴尔E770固件,以便驱动器能够与 MegaRAID/PERC H700/PERC 6i 控制器和戴尔系统的其余部分更好地运行。
Dell linux/rpm 下载包 SAS-Drive_Firmware_YC07T_LN_E770_A00.BIN 是一个组合 shell 脚本和二进制存档。运行 --extract 选项会创建一个包含所有文件的目录。该脚本非常复杂且密集(超出了我的解码能力)。
我想手动启动固件下载,因为脚本过程未通过先决条件检查,可能是因为之前的固件版本不匹配,这是可以预料的,因为是 NetApp 到 Dell。
哪个应用程序实际上将固件传送至驱动器或发出 HAPI 调用?
我应该在解压的目录上运行什么命令行来将 E770.fwh 发送到驱动器?
答案1
您是否也有可用于固件更新的 Windows 操作系统?我只查看了适用于不同戴尔系统的 Windows 更新工具,但更新机制似乎适用于所有日立/东芝/希捷驱动器。也许值得一试将20578
HUS156045VLS600 的硬件 ID 替换为您当前驱动器的硬件 ID,E770.fwh
然后手动运行SASDUPIE.exe
更新工具。
固件二进制文件前 256 个字节的十六进制转储payload/E770.fwh
ibm@x250:/mnt/c/Users/ibm/AppData/Local/Temp/cb868bcd-1f9f-476a-a137-6bf2ea998e23$ xxd -l 256 payload/E770.fwh
00000000: 2020 2020 2020 2020 0945 3737 3020 2020 .E770
00000010: 2078 0100 0000 0000 0000 0000 0000 0000 x..............
00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0003 ................
00000040: 2020 2032 3035 3737 2020 2020 2020 2020 20577
00000050: 2020 2020 2020 2020 2020 2020 2020 2020
00000060: 2048 5553 3135 3630 3330 564c 5336 3030 HUS156030VLS600
00000070: 2020 2032 3035 3738 2020 2020 2020 2020 20578
00000080: 2020 2020 2020 2020 2020 2020 2020 2020
00000090: 2048 5553 3135 3630 3435 564c 5336 3030 HUS156045VLS600
000000a0: 2020 2032 3035 3739 2020 2020 2020 2020 20579
000000b0: 2020 2020 2020 2020 2020 2020 2020 2020
000000c0: 2048 5553 3135 3630 3630 564c 5336 3030 HUS156060VLS600
000000d0: 0e80 0000 0000 0000 0000 0000 0000 0000 ................
000000e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000000f0: 4869 7461 6368 6920 476c 6f62 616c 2053 Hitachi Global S
请参阅我的回答在 Dell MD3220 存储阵列中使用未经认证的硬盘。
答案2
由于我无法接触到类似的硬件,因此我的所有发现都只是意见,不能视为工作说明。修改硬件设备的固件总是存在硬件损坏的风险。
Linux 软件包包含下列最有可能相关的文件,注释中注明#
:
├── framework64
│ ├── duppmdatacollector.bin
│ ├── getSystemId
│ ├── hapi
│ │ ├── funcs
│ │ │ ├── instsvc-uninstall.sh
│ │ │ ├── srvadmin-hapi.sh
│ │ │ └── srvadmin-omilcore.sh
│ │ └── hapi64.tgz
│ └── sputility.bin
├── l64
# sasdupie seems to be the flasher executable, tries to run dupdisneyinstall.sh
# which seems to install hapi64.tgz, but didn't try to run that with sufficient priviledges.
│ ├── sasdupie
# RPM contains some LSI libraries, which will be installed in /opt/lsi/
# these files are NOT the same as in the directory
│ └── srvadmin-storelib-sysfs-7.2.0-4.1.1.el4.x86_64.rpm
# the xml contains the information:
# 4. If this is a BIOS update package, install any necessary Embedded Systems
# Management firmware prior to this BIOS update. Otherwise, go next step.
# could be related to dupdisneyinstall.sh
├── package.xml
├── payload
# this looks to be the actual drive firmware file
│ └── E770.fwh
# PIEConfig.sh holds information for the firmware, and looks to describe the sasdupie call
├── PIEConfig.sh
# PIEInfo.txt describes required the steps for the installation.
├── PIEInfo.txt
调用l64/sasdupie
会打印帮助消息,如果没有运行root
,则脚本dupdisneyinstall.sh
会因权限不足而失败。
运行strace -e file l64/sasdupie
表明sasdupie
尝试加载不属于此固件文件的库。很可能这些是Embedded Systems Management firmware
中提到的部分package.xml
。
因此,前进的方向可以是:
- 安装
Embedded Systems Management firmware
- 运行
l64/sasdupie
并root
查看是否dupdisneyinstall.sh
成功 - 如果有效,请使用以下选项
PIEConfig.sh
执行l64/sasdupie
如果您的系统是 32 位系统,请使用l32
而不是l64
。
答案3
我的建议是在 eBay 上出售这些驱动器(也许说明它们运行的固件,有人可能会寻找这个),然后从 eBay 购买带有所需固件的新驱动器。更新程序失败的原因是因为驱动器有很多变体,即使型号匹配,也不能保证 Netapp 驱动器与戴尔驱动器完全相同,因为它们本身都是定制驱动器。