如何在Linux中查看系统的DMI信息 Linux获取主板和机箱型号的方法

如何在Linux中查看系统的DMI信息 Linux获取主板和机箱型号的方法

系统教程

普通用户执行 dmidecode 无法读取主板、机箱等关键字段,因内核禁止非特权进程访问 /dev/mem 映射的 DMI 区域(0xF0000–0xFFFFF),仅 BIOS 版本等少量公开信息可见,其余显示为空或 “To be filled by O.E.M.”。

直接用 dmidecode,但必须加 sudo,否则看不到主板、机箱等关键字段。

为什么普通用户执行 dmidecode 会显示空或报错

DMI 表数据位于物理内存映射区(0xF0000–0xFFFFF),Linux 内核默认禁止非特权进程读取该区域。不加 sudo 时,dmidecode 只能读到极少数公开字段(如 BIOS 版本),大部分硬件标识(如 Board Product NameChassis Type)直接为空或显示为 To be filled by O.E.M.

  • 错误现象:sudo dmidecode -t baseboard 正常输出,而 dmidecode -t baseboard 返回空或大量 To be filled by O.E.M.
  • 根本原因:/dev/mem 访问权限限制,不是命令写错或硬件没信息
  • 替代方案(不推荐):cat /sys/class/dmi/id/board_name 等路径仅暴露部分字段,且依赖内核配置(CONFIG_DMIID=y),不如 dmidecode 全面

快速提取主板和机箱型号的实用命令

不用翻完整输出,用 grep 精准过滤关键字段。注意不同 DMI 类型对应不同硬件层级:

  • 主板型号:sudo dmidecode -t baseboard | grep -E "Manufacturer|Product Name|Version"
  • 机箱型号(含类型):sudo dmidecode -t chassis | grep -E "Manufacturer|Type|Version|Serial Number"
  • 整机品牌(OEM 信息):sudo dmidecode -t system | grep -E "Manufacturer|Product Name|Version|Serial Number"
  • 所有型号一次性查:sudo dmidecode -t baseboard -t chassis -t system 2>/dev/null | grep -E "Manufacturer|Product Name|Type|Serial Number" | grep -v "Not Specified"

其中 Type 字段对机箱特别重要:常见值有 DesktopTowerRack Mount ChassisBlade,而非简单的“机箱型号”字符串。

Docker Desktop(linux)

当前 Docker 最新稳定版本之一,主要针对稳定性和兼容性进行了修复优化,适合生产环境与日常开发使用。该版本继续强化 AI 开发支持、容器日志管理以及 Docker Engine 的安全能力,对 Windows/macOS/Linux 平台兼容性进行了进一步优化。

下载

dmidecode 输出里哪些字段容易被忽略但很关键

厂商填得随意,导致同一块主板在不同机器上显示不同;真正稳定可依赖的是组合字段:

  • Board Asset TagBoard Serial NumberProduct Name 更唯一,尤其在 Dell/HP/Lenovo OEM 机器上
  • Chassis Asset Tag 常与服务器机架编号绑定,比 Serial Number 更适合资产追踪
  • BIOS VersionBIOS Release Date 能间接判断主板代际(例如某款 Intel C621 芯片组主板,不同 BIOS 版本对应不同 CPU 支持列表)
  • 字段值含空格或斜杠时(如 Product Name: ProLiant DL380 Gen10),务必用双引号包裹再用于脚本:sudo dmidecode -t system | awk -F': ' '/Product Name/ {print $2}' | sed 's/^ *//'

别只盯着 “Model” 或 “Name”,Asset TagSerial Number 才是跨系统识别同一块硬件的硬依据。

本文地址:https://www.sztg.com.cn/article/684029.html

如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!

猜您喜欢