服务器BIOS/UEFI固件是硬件与操作系统之间的底层桥梁,固件版本过旧会导致硬件兼容性问题、性能瓶颈和安全漏洞。IDC数据中心运维中,BIOS固件升级和UEFI安全启动配置是服务器安全加固的基础环节。本文以戴尔PowerEdge和HPE ProLiant服务器为例,讲解固件升级流程与安全启动配置方法。
服务器BIOS与UEFI固件区别及升级前置检查
传统BIOS(Basic Input/Output System)存储在16位实模式芯片中,UEFI(Unified Extensible Firmware Interface)取代BIOS后提供了图形化界面、GPT大磁盘支持、网络启动和Secure Boot等功能。服务器运维场景下,UEFI是当前主流标准,但部分老旧型号仍使用Legacy BIOS模式。
升级前必须完成以下检查:
1. 记录当前固件版本和服务器Service Tag / iLO IP地址
2. 确认服务器已接入UPS不间断电源,升级过程中断电会导致主板砖化
3. 备份当前BIOS配置(导出配置文件或截图记录关键参数)
4. 确认操作系统支持目标固件版本,部分内核模块对固件版本有依赖
# 查看当前UEFI/BIOS版本
# Dell服务器
dmidecode -t bios | grep -E "Version|Release Date|Vendor"
# HPE服务器
dmidecode -t bios | grep -E "Version|Release"
hpiLO> show /system1/firmware1
# 查看当前启动模式
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "Legacy BIOS"
# 查看Secure Boot状态
mokutil --sb-state
Dell PowerEdge服务器BIOS固件升级操作
Dell提供DSU(Dell System Update)工具和iDRAC远程管理接口两种升级路径。DSU适合批量操作,iDRAC适合单台远程升级。
# 安装DSU工具
wget -q -O - https://linux.dell.com/repo/hardware/dsu/bootstrap.cgi | bash
yum install -y dell-system-update
# 列出可用固件更新
dsu --inventory
# 执行所有组件固件升级
dsu --update
# 仅升级BIOS
dsu --update --components=BIOS
# 通过iDRAC REST API远程升级
curl -k -u root:calvin -X POST "https://192.168.1.100/redfish/v1/Managers/iDRAC.Embedded.1" -H "Content-Type: application/json" -d '{
"InstallService": {
"Install": {
"URI": "https://downloads.dell.com/bios/PE_R760_1.10.0.EXE",
"Target": "BIOS"
}
}
}'
HPE ProLiant服务器使用iLO RESTful API或Smart Update Tools:
# HPE iLO RESTful API升级固件
curl -k -u administrator:password -X POST "https://192.168.1.200/redfish/v1/Managers/1/UpdateService/" -H "Content-Type: application/json" -d '{
"Action": "Install",
"InstallFrom": "https://downloads.hpe.com/firmware/RP1.2.3.flash",
"Component": "BIOS"
}'
# 使用SUT(Smart Update Tools)离线升级
./hpsum --bios --file HP-ProLiant-BIOS-2.94.scexe
UEFI Secure Boot安全启动启用与密钥管理
Secure Boot通过数字签名链验证引导加载程序和内核模块的合法性,防止未授权固件和rootkit加载。服务器安全加固中,Secure Boot是防范固件级攻击的关键防线。
启用Secure Boot前需确认:
1. 操作系统内核已签名(RHEL/CentOS 8+、Ubuntu 20.04+默认支持)
2. 第三方内核模块(如NVIDIA驱动、DKMS模块)已注册MOK密钥
3. 自定义引导程序已使用可信密钥签名
# 查看Secure Boot状态和已注册密钥
mokutil --sb-state
mokutil --list-enrolled
# 导入自定义MOK(Machine Owner Key)密钥
# 生成密钥对
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Custom Kernel Module Signer/" -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500
# 注册MOK密钥到UEFI(交互式,需在控制台确认)
mokutil --import MOK.der
# 使用MOK密钥签名内核模块
/usr/src/kernels/$(uname -r)/scripts/sign-file sha256 MOK.priv MOK.der /lib/modules/$(uname -r)/extra/nvidia.ko
# 通过UEFI变量直接管理密钥
efivars -l | grep SecureBoot
# 列出db(信任密钥库)和dbx(吊销密钥库)
efi-readvar -l
固件升级后兼容性验证与回滚方案
升级完成后需验证以下项目:
1. 操作系统正常启动,无内核panic或驱动加载失败
2. iDRAC/iLO管理接口可正常访问
3. PCIe设备识别正常(GPU、RAID卡、网卡)
4. 内存频率和时序符合预期(部分BIOS更新会重置XMP/EXPO配置)
5. 服务器风扇转速和温度阈值正常
# 验证硬件识别
lspci -nn | grep -E "NVIDIA|Controller|Ethernet"
dmidecode -t memory | grep -E "Speed|Type|Size"
sensors | grep -E "fan|temp"
# 检查dmesg中的固件相关日志
dmesg | grep -iE "firmware|bios|uefi|secure.boot"
journalctl -b -k | grep -i secure
固件回滚操作依赖于UEFI的双BIOS芯片设计。Dell服务器在iDRAC界面提供”Rollback to Previous Version”选项;HPE服务器通过iLO的”Firmware Recovery”功能回滚。命令行方式:
# Dell iDRAC回滚BIOS
racadm set BIOS.BIOSSettings.BiosFirmwareVersion PreviousVersion
racadm jobqueue create BIOS.Setup.1-1 -s TIME_NOW
# 重启服务器使回滚生效
racadm serveraction powercycle
# HPE iLO回滚需要双BIOS芯片支持
# 通过iLO Web界面: Firmware & ROM Flash -> Previous Version
无双BIOS芯片的服务器需重新刷写旧版本固件文件。对于物理机架设环境,建议在维护窗口期完成升级,保留至少1小时的验证时间窗口,确保升级失败时可快速恢复服务。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/fu-wu-qi-bios-gu-jian-sheng-ji-yu-uefi-an-quan-qi-dong-pei/