戴尔固件更新中的哪个应用程序实际上将固件写入磁盘?

戴尔固件更新中的哪个应用程序实际上将固件写入磁盘?

我有一台戴尔 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 更新工具,但更新机制似乎适用于所有日立/东芝/希捷驱动器。也许值得一试将20578HUS156045VLS600 的硬件 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/sasdupieroot查看是否dupdisneyinstall.sh成功
  • 如果有效,请使用以下选项PIEConfig.sh执行l64/sasdupie

如果您的系统是 32 位系统,请使用l32而不是l64

答案3

我的建议是在 eBay 上出售这些驱动器(也许说明它们运行的​​固件,有人可能会寻找这个),然后从 eBay 购买带有所需固件的新驱动器。更新程序失败的原因是因为驱动器有很多变体,即使型号匹配,也不能保证 Netapp 驱动器与戴尔驱动器完全相同,因为它们本身都是定制驱动器。

相关内容