最准确的方法是sudo dmidecode -t baseboard查看Manufacturer、Product Name和Version;非root可用cat /sys/class/dmi/id/{board_vendor,board_name,board_version};虚拟机中结果为虚拟平台标识,应结合systemd-detect-virt判断。

用 dmidecode 查主板型号(需 root 权限)
dmidecode 是最直接、最权威的方式,它读取 BIOS/UEFI 的 DMI 表,包含真实硬件标识。普通用户执行会提示权限不足,必须加 sudo:
sudo dmidecode -t baseboard
输出中重点关注三行:
-
Manufacturer:主板厂商(如 ASUSTeK、Gigabyte、Dell) -
Product Name:主板型号(如 PRIME B550M-A、06XRY9) -
Version:主板 PCB 版本(有时含修订号)
注意:部分 OEM 厂商(如 Dell、HP)会把 Product Name 设为整机型号(如 “OptiPlex 7080”),而非主板代号;此时可结合 sudo dmidecode -t system 对照看 SKU Number 或 Family 字段辅助判断。
不依赖 root 的替代方案:lshw 和 cat /sys/class/dmi/id/
lshw 默认仍需 sudo 才能显示完整主板信息,但部分字段(如厂商和型号)在非 root 下也能读到:
sudo lshw -class motherboard -short
更轻量且无需 root 的方式是读取 sysfs 接口(内核 2.6+ 均支持):
-
cat /sys/class/dmi/id/board_vendor→ 厂商 -
cat /sys/class/dmi/id/board_name→ 型号 -
cat /sys/class/dmi/id/board_version→ 版本
这些文件内容简洁,适合脚本调用。但某些精简发行版(如 Alpine、CoreOS)或虚拟机可能为空——因为内核未启用 CONFIG_DMIID 或固件未提供 DMI 数据。
虚拟机里查主板?别信 dmidecode 返回的“Intel Corporation”
在 VMware、VirtualBox、KVM 等环境中,dmidecode -t baseboard 显示的往往是虚拟化平台伪造的固定值(如 Manufacturer: Intel Corporation, Product Name: 440BX Desktop Reference Platform),和物理主板完全无关。
此时应优先看虚拟化平台本身的信息:
- VMware:
sudo dmidecode -s system-product-name通常返回 “VMware Virtual Platform” - KVM/QEMU:
cat /sys/class/dmi/id/sys_vendor多为 “QEMU”,cat /sys/class/dmi/id/product_name多为 “Standard PC (Q35 + ICH9, 2009)”
这些不是“错误”,而是虚拟化的正常表现。想确认是否为虚拟机,直接运行 systemd-detect-virt 更可靠。
为什么 lspci | grep -i "host bridge" 不推荐作为主板型号依据
这条命令确实能列出芯片组对应的 Host Bridge(如 “Intel Corporation Device 461c”),但它只反映 CPU 与 PCH 的桥接芯片型号,不是主板品牌+型号组合。同一芯片组(如 H610、B650)会被 dozens 家厂商用于不同命名的主板,仅靠 PCI ID 无法定位具体型号。
而且:
- ARM 平台无传统 Host Bridge 概念
- Apple Silicon Mac(通过 Asahi Linux)不暴露此类 PCI 设备
- 部分超极本或 mini-PC 的 SoC 集成度高,
lspci可能连 Host Bridge 都不显示
真正需要精确识别主板型号时,还是得回到 dmidecode 或 /sys/class/dmi/id/ ——前提是系统启用了 DMI 支持且固件提供了完整信息。这点容易被忽略:有些国产 BIOS 或老旧主板会故意清空 board_name 字段,导致所有方法都返回空。











