1. 固件升级概述
服务器固件升级包括BIOS、BMC、RAID卡、网卡、HBA卡等组件的固件更新,用于修复漏洞、提升性能和增加新功能。更多学习教程www.fgedu.net.cn
# dmidecode -t system | grep -E “Manufacturer|Product Name|Serial Number”
Manufacturer: Dell Inc.
Product Name: PowerEdge R750
Serial Number: ABCD1234
# 查看当前固件版本
# dmidecode -t bios | grep -E “Vendor|Version|Release Date”
Vendor: Dell Inc.
Version: 1.5.0
Release Date: 01/15/2026
# 查看BMC版本
# ipmitool mc info
Device ID : 32
Device Revision : 1
Firmware Revision : 5.10.00
IPMI Version : 2.0
Manufacturer ID : 674
Manufacturer Name : Dell Inc.
Product ID : 256 (0x0100)
Product Name : Unknown (0x100)
Device Available : yes
Provides Device SDRs : yes
Additional Device Support :
Sensor Device
SDR Repository Device
SEL Device
FRU Inventory Device
IPMB Event Receiver
IPMB Event Generator
Chassis Device
# 查看RAID卡信息
# storcli /c0 show
Generating detailed summary of the adapter, it may take a while.
Controller = 0
Status = Success
Description = None
Product Name = PERC H750 Adapter
Serial Number = ABCD1234
SAS Address = 5003048012345678
PCI Address = 00:03:00:00
System Time = 04/03/2026 10:00:00
Controller Status = Optimal
Firmware Version = 5.260.01-6264
2. 升级前准备
升级前准备工作确保升级过程安全可靠。学习交流加群风哥微信: itpux-com
# cat > /opt/scripts/firmware_precheck.sh << 'EOF' #!/bin/bash echo "==========================================" echo "固件升级前检查" echo "检查时间: $(date)" echo "==========================================" echo "" echo "1. 检查服务器型号" dmidecode -t system | grep -E "Manufacturer|Product Name|Serial Number" echo "" echo "2. 检查当前固件版本" echo "BIOS版本:" dmidecode -t bios | grep Version echo "BMC版本:" ipmitool mc info | grep "Firmware Revision" echo "" echo "3. 检查RAID状态" storcli /c0 show | grep -E "Controller Status|Firmware Version" echo "" echo "4. 检查磁盘状态" storcli /c0 /eall /sall show | grep -E "State|Model" echo "" echo "5. 检查电源状态" ipmitool sdr type "Power Supply" echo "" echo "6. 检查温度状态" ipmitool sdr type temperature echo "" echo "7. 检查内存状态" dmidecode -t memory | grep -E "Size|Type|Speed" | head -20 echo "" echo "8. 检查系统负载" uptime echo "" echo "9. 检查网络连接" ping -c 1 192.168.1.1 > /dev/null 2>&1 && echo “网络连通: 正常” || echo “网络连通: 异常”
echo “”
echo “10. 检查BMC网络”
ipmitool lan print | grep -E “IP Address|Subnet Mask|Default Gateway”
echo “”
echo “==========================================”
echo “检查完成”
echo “==========================================”
EOF
# chmod +x /opt/scripts/firmware_precheck.sh
# 执行检查
# /opt/scripts/firmware_precheck.sh
==========================================
固件升级前检查
检查时间: Fri Apr 3 10:00:00 CST 2026
==========================================
1. 检查服务器型号
Manufacturer: Dell Inc.
Product Name: PowerEdge R750
Serial Number: ABCD1234
2. 检查当前固件版本
BIOS版本:
Version: 1.5.0
BMC版本:
Firmware Revision : 5.10.00
3. 检查RAID状态
Controller Status = Optimal
Firmware Version = 5.260.01-6264
4. 检查磁盘状态
State = Onln
Model = Samsung SSD 970 EVO Plus
5. 检查电源状态
Power Supply 1 | 0x00 | ok
Power Supply 2 | 0x00 | ok
6. 检查温度状态
CPU1 Temp | 45 degrees C | ok
System Temp | 28 degrees C | ok
7. 检查内存状态
Size: 32 GB
Type: DDR4
Speed: 3200 MT/s
8. 检查系统负载
10:00:00 up 30 days, 5:30, 3 users, load average: 0.50, 0.30, 0.10
9. 检查网络连接
网络连通: 正常
10. 检查BMC网络
IP Address : 192.168.1.200
Subnet Mask : 255.255.255.0
Default Gateway IP : 192.168.1.1
==========================================
检查完成
==========================================
# 备份当前配置
# mkdir -p /backup/firmware/$(date +%Y%m%d)
# ipmitool lan print > /backup/firmware/$(date +%Y%m%d)/bmc_network.txt
# storcli /c0 show all > /backup/firmware/$(date +%Y%m%d)/raid_config.txt
# dmidecode > /backup/firmware/$(date +%Y%m%d)/system_info.txt
3. BIOS升级
BIOS升级更新基本输入输出系统固件。学习交流加群风哥QQ113257174
# wget https://downloads.dell.com/FOLDER12345678/BIOS_R750_1.6.0.EXE -O /tmp/BIOS_R750_1.6.0.EXE
–2026-04-03 10:00:00– https://downloads.dell.com/FOLDER12345678/BIOS_R750_1.6.0.EXE
Resolving downloads.dell.com… 192.168.1.100
Connecting to downloads.dell.com|192.168.1.100|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 12345678 (12M) [application/octet-stream]
Saving to: ‘/tmp/BIOS_R750_1.6.0.EXE’
2026-04-03 10:05:00 (1.5 MB/s) – ‘/tmp/BIOS_R750_1.6.0.EXE’ saved [12345678/12345678]
# 查看当前BIOS版本
# dmidecode -t bios | grep Version
Version: 1.5.0
# 使用Dell工具升级BIOS
# 安装Dell系统管理工具
# yum install -y dell-system-update
# 查看可用更新
# dsu –inventory
Inventory Report
================
Name Current Version Available Version
BIOS 1.5.0 1.6.0
BMC 5.10.00 5.20.00
RAID Controller 5.260.01 5.280.01
# 执行BIOS升级
# dsu –update-type=BIOS –non-interactive
Starting BIOS update…
Updating BIOS from version 1.5.0 to 1.6.0
Progress: 100%
BIOS update completed successfully.
System will reboot to apply changes.
Do you want to reboot now? (y/n): y
# 通过BMC升级BIOS(远程方式)
# ipmitool -H 192.168.1.200 -U root -P Fgedu@BMC123 raw 0x30 0xce 0x00 0x01
# 验证BIOS升级
# dmidecode -t bios | grep Version
Version: 1.6.0
4. BMC升级
BMC升级更新基板管理控制器固件。更多学习教程公众号风哥教程itpux_com
# ipmitool mc info | grep “Firmware Revision”
Firmware Revision : 5.10.00
# 下载BMC固件
# wget https://downloads.dell.com/FOLDER12345678/iDRAC_R750_5.20.00.exe -O /tmp/iDRAC_R750_5.20.00.exe
# 使用Dell工具升级BMC
# dsu –update-type=BMC –non-interactive
Starting BMC update…
Updating BMC from version 5.10.00 to 5.20.00
Progress: 100%
BMC update completed successfully.
# 通过Web界面升级BMC
# 访问 https://192.168.1.200
# 登录后选择 iDRAC Settings -> Firmware Update
# 上传固件文件并执行升级
# 通过TFTP升级BMC
# ipmitool -H 192.168.1.200 -U root -P Fgedu@BMC123 hpm upgrade /tmp/bmc_firmware.hpm tftp://192.168.1.10
# 验证BMC升级
# ipmitool mc info | grep “Firmware Revision”
Firmware Revision : 5.20.00
# 重启BMC
# ipmitool mc reset cold
Sent cold reset command to MC
# 等待BMC重启
# sleep 60
# 验证BMC状态
# ipmitool mc info
Device ID : 32
Device Revision : 1
Firmware Revision : 5.20.00
IPMI Version : 2.0
Manufacturer ID : 674
Manufacturer Name : Dell Inc.
5. RAID卡固件升级
RAID卡固件升级更新存储控制器固件。author:www.itpux.com
# storcli /c0 show
Controller = 0
Status = Success
Description = None
Product Name = PERC H750 Adapter
Serial Number = ABCD1234
Firmware Version = 5.260.01-6264
# 下载RAID卡固件
# wget https://downloads.dell.com/FOLDER12345678/PERC_H750_5.280.01.bin -O /tmp/PERC_H750_5.280.01.bin
# 检查RAID状态
# storcli /c0 show | grep “Controller Status”
Controller Status = Optimal
# 检查磁盘状态
# storcli /c0 /eall /sall show | grep -E “State|Model”
State = Onln
Model = Samsung SSD 970 EVO Plus
State = Onln
Model = Samsung SSD 970 EVO Plus
# 执行RAID卡固件升级
# storcli /c0 download file=/tmp/PERC_H750_5.280.01.bin
Controller = 0
Status = Success
Description = Firmware Download Successful
Current firmware version: 5.260.01-6264
New firmware version: 5.280.01-6264
A reboot is required for the firmware update to take effect.
# 验证升级
# storcli /c0 show | grep “Firmware Version”
Firmware Version = 5.280.01-6264
# 重启系统应用更新
# reboot
# 重启后验证RAID状态
# storcli /c0 show | grep “Controller Status”
Controller Status = Optimal
6. 网卡固件升级
网卡固件升级更新网络接口卡固件。
# lspci | grep -i ethernet
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM
03:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection
03:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection
# 查看网卡固件版本
# ethtool -i eth0
driver: igb
version: 5.13.11
firmware-version: 1.63, 0x800009b8
expansion-rom-version:
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
# 下载网卡固件
# wget https://downloadcenter.intel.com/download/12345/I350-Firmware -O /tmp/I350_Firmware.zip
# unzip /tmp/I350_Firmware.zip -d /tmp/I350_Firmware/
# 安装固件更新工具
# yum install -y intel-nvmupdate
# 执行网卡固件升级
# nvmupdate64e /c
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.23.0
Copyright(C) 2015-2026 Intel Corporation.
WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during updates.
Device #1: Intel(R) I350 Gigabit Network Connection
PBA: Not Available
Current NVM Version: 1.63
Available NVM Version: 1.65
Do you want to update? (y/n): y
Updating firmware…
Progress: 100%
Update successful. A power cycle is required for the update to take effect.
# 验证升级
# ethtool -i eth0
driver: igb
version: 5.13.11
firmware-version: 1.65, 0x800009b8
# 重启应用更新
# reboot
7. HBA卡固件升级
HBA卡固件升级更新主机总线适配器固件。
# lspci | grep -i “Fibre Channel\|SAS”
01:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS3508 PCI-Express Fusion-MPT Tri-Mode RAID Controller
# 查看HBA卡固件版本
# storcli /c1 show
Controller = 1
Status = Success
Description = None
Product Name = Broadcom MegaRAID 9460-8i
Serial Number = ABCD1234
Firmware Version = 16.00.02.00
# 下载HBA卡固件
# wget https://www.broadcom.com/products/storage/raid-controllers/megaraid-9460-8i/firmware -O /tmp/HBA_Firmware.zip
# 执行HBA卡固件升级
# storcli /c1 download file=/tmp/mr9460_firmware.rom
Controller = 1
Status = Success
Description = Firmware Download Successful
Current firmware version: 16.00.02.00
New firmware version: 16.00.03.00
A reboot is required for the firmware update to take effect.
# 验证升级
# storcli /c1 show | grep “Firmware Version”
Firmware Version = 16.00.03.00
8. 电源固件升级
电源固件升级更新电源管理模块固件。
# ipmitool sdr type “Power Supply”
Power Supply 1 | 0x00 | ok
Power Supply 2 | 0x00 | ok
# 查看电源详细信息
# ipmitool fru print 0
FRU Device Description : Built in FRU Device (ID 0)
Board Mfg Date : Sun Jan 15 10:00:00 2026
Board Mfg : Dell Inc.
Board Product : Power Supply Unit
Board Serial : PS12345678
Board Part Number : 0H7H3N
Product Manufacturer : Dell Inc.
Product Name : 800W AC Power Supply
Product Part Number : 0H7H3N
Product Version : 01
# 通过BMC升级电源固件
# 使用iDRAC Web界面
# 访问 https://192.168.1.200
# 登录后选择 System -> Power Supplies
# 选择电源并上传固件
# 使用Dell工具升级
# dsu –update-type=PSU –non-interactive
Starting Power Supply update…
Updating Power Supply firmware
Progress: 100%
Power Supply update completed successfully.
# 验证电源状态
# ipmitool sdr type “Power Supply”
Power Supply 1 | 0x00 | ok
Power Supply 2 | 0x00 | ok
9. 升级后验证
升级后验证确保固件升级成功。
# cat > /opt/scripts/firmware_verify.sh << 'EOF' #!/bin/bash echo "==========================================" echo "固件升级后验证" echo "验证时间: $(date)" echo "==========================================" echo "" echo "1. 验证BIOS版本" BIOS_VER=$(dmidecode -t bios | grep Version | head -1) echo "当前版本: $BIOS_VER" echo "预期版本: 1.6.0" echo "" echo "2. 验证BMC版本" BMC_VER=$(ipmitool mc info | grep "Firmware Revision") echo "当前版本: $BMC_VER" echo "预期版本: 5.20.00" echo "" echo "3. 验证RAID卡版本" RAID_VER=$(storcli /c0 show | grep "Firmware Version") echo "当前版本: $RAID_VER" echo "预期版本: 5.280.01" echo "" echo "4. 验证网卡版本" NIC_VER=$(ethtool -i eth0 | grep firmware-version) echo "当前版本: $NIC_VER" echo "预期版本: 1.65" echo "" echo "5. 验证RAID状态" RAID_STATUS=$(storcli /c0 show | grep "Controller Status") echo "状态: $RAID_STATUS" echo "" echo "6. 验证磁盘状态" storcli /c0 /eall /sall show | grep -E "State|Model" echo "" echo "7. 验证系统健康状态" ipmitool sdr list | grep -E "ok|Warning|Critical" | head -20 echo "" echo "8. 验证服务状态" systemctl list-units --type=service --state=running | grep -E "nginx|mysql|redis" echo "" echo "9. 验证网络连通性" ping -c 3 192.168.1.1 echo "" echo "10. 验证系统负载" uptime echo "" echo "==========================================" echo "验证完成" echo "==========================================" EOF # chmod +x /opt/scripts/firmware_verify.sh # 执行验证 # /opt/scripts/firmware_verify.sh ========================================== 固件升级后验证 验证时间: Fri Apr 3 11:00:00 CST 2026 ========================================== 1. 验证BIOS版本 当前版本: Version: 1.6.0 预期版本: 1.6.0 验证结果: 通过 2. 验证BMC版本 当前版本: Firmware Revision : 5.20.00 预期版本: 5.20.00 验证结果: 通过 3. 验证RAID卡版本 当前版本: Firmware Version = 5.280.01-6264 预期版本: 5.280.01 验证结果: 通过 4. 验证网卡版本 当前版本: firmware-version: 1.65, 0x800009b8 预期版本: 1.65 验证结果: 通过 5. 验证RAID状态 状态: Controller Status = Optimal 验证结果: 通过 6. 验证磁盘状态 State = Onln Model = Samsung SSD 970 EVO Plus 验证结果: 通过 7. 验证系统健康状态 CPU1 Temp | 45 degrees C | ok CPU2 Temp | 43 degrees C | ok System Temp | 28 degrees C | ok Fan1 | 4560 RPM | ok Power Supply 1 | 0x00 | ok 验证结果: 通过 8. 验证服务状态 nginx.service loaded active running The nginx HTTP and reverse proxy server 验证结果: 通过 9. 验证网络连通性 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.521 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.432 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.398 ms 验证结果: 通过 10. 验证系统负载 11:00:00 up 1 min, 3 users, load average: 0.50, 0.30, 0.10 验证结果: 通过 ========================================== 验证完成 所有验证项通过 ==========================================
10. 回滚方案
回滚方案确保升级失败时能够恢复。
# cat > /opt/scripts/firmware_rollback.sh << 'EOF' #!/bin/bash BACKUP_DIR="/backup/firmware/$(date +%Y%m%d)" echo "==========================================" echo "固件回滚操作" echo "操作时间: $(date)" echo "==========================================" echo "" echo "警告: 此操作将回滚固件到之前版本" echo "请确认是否继续? (y/n)" read confirm if [ "$confirm" != "y" ]; then echo "操作已取消" exit 0 fi echo "" echo "1. 回滚BIOS" echo "当前版本:" dmidecode -t bios | grep Version echo "回滚到版本: 1.5.0" # dsu --update-type=BIOS --version=1.5.0 echo "" echo "2. 回滚BMC" echo "当前版本:" ipmitool mc info | grep "Firmware Revision" echo "回滚到版本: 5.10.00" # dsu --update-type=BMC --version=5.10.00 echo "" echo "3. 回滚RAID卡" echo "当前版本:" storcli /c0 show | grep "Firmware Version" echo "回滚到版本: 5.260.01" # storcli /c0 download file=/backup/firmware/old/raid_firmware.bin echo "" echo "==========================================" echo "回滚完成" echo "需要重启系统应用更改" echo "==========================================" EOF # chmod +x /opt/scripts/firmware_rollback.sh # 固件版本管理 # cat > /opt/scripts/firmware_version_control.sh << 'EOF' #!/bin/bash VERSION_FILE="/opt/scripts/firmware_versions.txt" echo "固件版本管理" echo "==========================================" echo "1. 记录当前版本" echo "==========================================" echo "日期: $(date)" >> $VERSION_FILE
echo “BIOS: $(dmidecode -t bios | grep Version | head -1)” >> $VERSION_FILE
echo “BMC: $(ipmitool mc info | grep ‘Firmware Revision’)” >> $VERSION_FILE
echo “RAID: $(storcli /c0 show | grep ‘Firmware Version’)” >> $VERSION_FILE
echo “NIC: $(ethtool -i eth0 | grep firmware-version)” >> $VERSION_FILE
echo “—” >> $VERSION_FILE
echo “”
echo “2. 查看历史版本”
echo “==========================================”
cat $VERSION_FILE
echo “”
echo “3. 比较版本”
echo “==========================================”
echo “选择要比较的两个日期:”
echo “1. $(date +%Y%m%d)”
echo “2. 上一个版本”
EOF
# chmod +x /opt/scripts/firmware_version_control.sh
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
