SAS/SATA盘信息无法获取问题分析
更新时间: 2026/06/02
在Gitcode上查看源码

问题背景

  • 单板类型:自研板;
  • 软件版本:openUBMC 25.06;
  • 涉及功能:硬盘,web页面硬盘信息显示;
  • 触发条件:背板上接了两个sata盘,系统侧装了iBMA,BMC的web页面查询硬盘信息。
  • 业务表现:预期硬盘信息显示正常;实际因硬盘信息缺失。

问题复现步骤

硬盘背板上接上两个SATA盘,系统侧安装BMA,BMC页面查看硬盘信息。

关键日志信息

web页面硬盘信息: iBMA上报硬件日志信息:

定位过程

  1. 查看host_agent是否收到了硬盘信息,目前从日志上看iBMA已发送,且属性信息显示有数值,确认已经收到;
  2. 查看sr中有没有PcieAddrInfo_SAS对象,因此丝印文件中有没有硬盘丝印,发现丝印为空;
  3. 确认硬盘背板是否配置PCIeAddrInfo,没有配置的话无法上报丝印;sas/sata盘更新是通过silktext来映射到对应的盘的。基本逻辑大概是:hostagent上面silktext=Disk2,那么就会跟硬盘的Name匹配,如果匹配上了,就会把相关数据更新到对应的Drive对象上。
  4. 配置了PcieAddrInfo_SAS之后,silkconfig.json中硬盘丝印正常生成,但host_agent的.SilkScreen字段依旧是null,还是无法获取硬盘信息;
  5. 排查槽位号是否能对上;检查Drive对象的NodeId、RelativeSlot等属性,PcieAddrInfo_SAS对象的Location、SlotID、ControllerType、ContainerSlot等属性;

问题原因

硬盘丝印信息不正确,即PcieAddrInfo_SAS对象中的Bus、Device、Function、PortID这几个属性配置不正确,导致BMC无法正确的上报丝印信息,系统侧无法根据正确的根据丝印信息上报SAS/SATA盘信息。

解决方案

PcieAddrInfo_SAS对象中的Bus、Device、Function、PortID这几个属性重新配置到正确值。