服务器运行多年,想确认 BIOS 日期、主板序列号、硬盘出厂时间,这些命令一次性给出答案。
dmidecode:读 SMBIOS 表
dmidecode 从 DMI/SMBIOS 表读取硬件描述,包含 BIOS 日期、系统厂商、序列号等信息,无需探测实际硬件 [1]。BIOS 出厂日期对应关键字 bios-release-date [2]。
sudo dmidecode -t bios
或只输出特定字段:
sudo dmidecode -s bios-release-date
sudo dmidecode -s system-manufacturer
sudo dmidecode -s system-serial-number
适用:x86/IA-64 物理机,DMI 表由 BIOS 固件写入。WSL2 中 dmidecode 会报告 “No SMBIOS nor DMI entry point found”,因为 /dev/mem 不暴露真实固件表。
/sys/class/dmi/id/:内核直接暴露
Linux 内核通过 sysfs 把 DMI 字段暴露为文本文件,如 bios_date、product_serial、board_vendor,直接 cat 即可 [1]。这些文件属于 CONFIG_DMIID 编译选项,大多数发行版默认启用。
cat /sys/class/dmi/id/bios_date
cat /sys/class/dmi/id/product_serial
需要 root 权限;WSL2 中该目录为空,与 dmidecode 表现一致。
smartctl:查硬盘出厂信息
smartctl -i 输出硬盘型号、序列号和固件版本 [3]。部分硬盘在 Device Model 或 Serial number 行隐含批次信息,但 ATA 标准未强制要求写入制造日期字段。
sudo smartctl -i /dev/sda
需要 smartmontools 包;WSL2 虚拟磁盘返回 “Msft Virtual Disk”,SMART 命令失败,无法获取真实硬盘信息。
lshw:树状硬件清单
lshw 以树状结构输出硬件配置,支持 DMI、PCI、CPUID 等多种探测方式 [4]。
sudo lshw -short -class system,memory,processor
输出包含制造商、产品名称、序列号字段;WSL2 中显示为 “Computer” 和 “Virtual Disk”。
排错速查表
| 现象 | 原因 | 处理 |
|---|---|---|
| dmidecode 报 “No SMBIOS” | WSL/容器/云主机无真实 DMI 表 | 改用可用的上层信息(内核版本、发行版) |
| /sys/class/dmi/id/ 空目录 | 内核未编译 CONFIG_DMIID | 安装 dmidecode 替代 |
| smartctl 报 “mandatory SMART failed” | 磁盘不支持 SMART 或为虚拟磁盘 | 加 -T permissive 或换物理机 |
| lshw 输出不全 | 缺少权限或未安装 lshw | sudo apt install lshw |
回滚与局限性
- 以上命令均为只读查询,无回滚操作;不要在输出中解析用于破坏性脚本。
- WSL2、容器、云实例通常屏蔽 DMI/SMBIOS 表,
dmidecode、/sys/class/dmi/id/、lshw均返回虚拟化信息,不能反映物理机出厂日期。 - 硬盘制造日期并非 ATA 标准必填字段,
smartctl -i不一定返回可解析的日期。 - 本机测试中
dmidecode返回 “No SMBIOS nor DMI entry point found”,smartctl返回 “Msft Virtual Disk”,/sys/class/dmi/id/为空,lshw显示 “Virtual Disk”。
附录
- 测试机:WSL2 Ubuntu 24.04.4 LTS
- 内核:Linux 6.6.114.1-microsoft-standard-WSL2
- 测试日期:2026-11-02
- 观察结果:
dmidecode报无 SMBIOS 表;/sys/class/dmi/id/为空;smartctl -i /dev/sda返回 “Msft Virtual Disk” 且 SMART 命令失败;lshw -short显示 “Computer”、”Virtual Disk” 等虚拟化信息。
参考资料
- [1] dmidecode(8) — Debian buster(dmidecode-deb)
- [2] dmidecode(8) — Ubuntu noble(dmidecode-ubuntu)
- [3] smartctl(8) — Ubuntu noble(smartctl-ubuntu)
- [4] lshw(1) — Debian buster(lshw-deb)
文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。