首页/系统/服务器硬件与 RAID 速查/ipmitool raw 底层命令排查
带外管理72 条

ipmitool raw 底层命令排查

工具未封装的 IPMI 能力可用 raw 直接下发:按 NetFn 与 CMD 组包,返回值按规范解析,用于验证命令支持性与对照工具输出。

raw 命令解决什么问题

ipmitool 只封装了常用命令,一些冷门能力(厂商扩展命令、未提供子命令的规范命令)没有现成入口,这时可以用 raw 直接下发原始 IPMI 请求:按 NetFn 与 CMD 组包,再按对应命令的响应定义解析返回字节。它最常见的用途是验证某条命令是否被 BMC 支持,以及和封装命令的输出交叉核对。

基本信息

命令格式raw <netfn> <cmd> [数据字节...]
NetFn 含义0x00 机箱、0x04 传感器与事件、0x06 应用、0x0A 存储
返回值原始字节流,按对应命令的响应定义逐字节解析
权限要求只读类命令用普通带外账号即可;写操作需谨慎
典型用途验证命令支持性、与封装命令交叉核对、厂商扩展命令

典型使用场景

  • 验证某条命令是否被支持:封装工具报错时用 raw 看底层返回码
  • 交叉核对:把 raw 的原始字节与 ipmitool 封装输出对齐,确认解析无误
  • 厂商扩展命令:部分带外功能只在 IPMI 规范外实现,只能靠 raw 调用
  • 排障取证:把原始请求与响应字节附在工单里,便于厂商复现
  • 自动化脚本:需要精确控制参数字节时用 raw 而非封装命令

raw 示例

raw 示例
# Get Device ID:NetFn 0x06,CMD 0x01
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass raw 0x06 0x01
# Get Chassis Status:NetFn 0x00,CMD 0x01
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass raw 0x00 0x01
# Get SEL Info:NetFn 0x0A,CMD 0x40
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass raw 0x0a 0x40
# Get Sensor Reading:NetFn 0x04,CMD 0x2D,需带传感器编号
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass raw 0x04 0x2d 0x20

常用 NetFn 与命令对照

NetFnCMD命令用途
0x060x01Get Device ID查询 BMC 固件版本、规范版本与能力位
0x000x01Get Chassis Status读取机箱电源与状态位
0x0A0x40Get SEL Info查询 SEL 条目数与最新记录编号
0x040x2DGet Sensor Reading读取指定传感器的原始读数
返回字节要按规范逐位解析,不认识某个字节时不要凭推测下结论:先查该命令的响应定义,或在测试设备上对照封装命令的输出验证。
raw 也能发出写类命令(断电、改启动项、清 SEL):在生产设备上只用只读命令,任何写操作先到测试机验证参数。
带外连接方式会影响可用命令:-I lanplus 走 IPMI 2.0 的 RMCP+ 加密通道,大多数现代 BMC 用它;老设备可能只支持 -I lan,具体以设备手册与实测为准。命令被支持但参数越界时,BMC 通常返回完成码而非直接报错,这也是需要逐字节解析响应的原因。

易错点

  • 凭记忆组包:参数或数据字节错误,可能得到意外结果
  • 在生产设备试错:写类命令的影响不可逆,应先测试机验证
  • 不认识返回码就下结论:把“命令不支持”误判成“设备无此功能”
  • 不记录原始请求与响应:复现问题时缺少第一手证据
  • 把 raw 输出当成封装命令的等价物:字段含义与顺序可能不同

数据来源与参考

  • IPMI v2.0 规范(NetFn 与命令表)
  • ipmitool 手册(raw)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌