本帖收集各类BMC固件/分区损坏后的修复方法,持续更新,当前已收录以下常见场景
- SSH能连上,WEB连不上
- WEB能连接,SSH连不上
- OS正常,但是SSH、WEB不可用,使用带内通道给bmc传包升级
- 用户密码忘记了,OS使用ipmitool添加BMC账户test
- SSH、WEB、TELNET都连接不上,串口切换BMC分区
- 如果每个分区都损坏,返厂维修
一、SSH能连上,WEB连不上
- 使用xshell或者mobaxterm工具连接上BMC后,通过xftp将正常版本的BMC升级包(image.hpm)放置在tmp目录下
- 使用ipmcset -d upgrade -v /tmp/image.hpm升级后恢复
二、WEB能连接,SSH连不上
- 在BMC固件管理-BMC升级页面直接升级正常版本的BMC升级包。
三、OS正常,但是SSH、WEB不可用,使用veth给bmc传包升级
- 登录待修复BMC节点的OS
- 确保虚拟网口已加载,通过ifconfig veth查看
- 如果看不到虚拟网口,则需要使用insmod命令加载对应操作系统的驱动host_edma_drv.ko和host_veth_drv.ko
- 执行send_file脚本发送BMC包image.hpm到BMC的tmp目录下image.hpm,send_file脚本内容如下
send_file()
{
ssh_ip=$1
src_file=$2
des_path=$3
user="Administrator"
pwd="xxx"
if [ $# -lt 3 ] ; then
echo "Parameter error!"
return 1
fi
expect << EOF
set timeout 300
spawn scp -6r -l 4096 ${src_file} ${user}@${ssh_ip}:${des_path}
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$pwd\r" }
}
expect eof
EOF
return 0
}
# 如虚拟网口地址为`a:b:c:d:e`
send_file "\[a:b:c:d:e%veth\]" image.hpm /tmp/image.hpm
- 在带内执行BMC升级命令,以/tmp/image.hpm升级包为例:
ipmitool -H {ip_address} -I lanplus -p 623 -U Administrator -P {password} raw 0x30 0x91 0xdb 0x07 0x00 0x06 0xAA 0x00 0x00 0x00 0x0e 0x2f 0x74 0x6d 0x70 0x2f 0x69 0x6d 0x61 0x67 0x65 0x2e 0x68 0x70 0x6d
四、用户密码忘记了,OS使用ipmitool添加BMC账户test
- 在OS放入ipmitool工具,增加用户 ipmitool user set name 5 test
- 设置新用户密码 ipmitool user set password 5 ‘Admin@90000’
- 给用户加管理员权限 ipmitool user priv 5 4
- 用户使能 ipmitool user enable 5
PS:权限设置:2是user 3是operator 4是administrator
五、SSH、WEB、TELNET都连接不上,串口切换BMC分区
前期准备工作
- 环境上升级的是debug版本的hpm包
- 环境上有能正常使用的串口
执行步骤
1、近端AC掉电服务或其他可使BMC重启的方法让BMC复位;
2、复位后出现提示时按照提示进入uboot;
3、切换分区,并启动BMC,切换回可用的分区;
4、在可用的分区升级正常的BMC版本恢复环境。
注:由于不同机型具体命令可能有差异,请联系对应项目支持人员获取
六、如果每个分区都损坏
需要联系厂商将机器返厂维修