Linux系统中获取主板或整机序列号需依赖固件信息,常用方法包括:一、sudo dmidecode -t system | grep "Serial Number";二、sudo lshw -class system 查找serial字段;三、cat /sys/devices/virtual/dmi/id/product_serial;四、sudo smartctl -i /dev/sda | grep "Serial Number"。

如果您需要在Linux系统中获取主板或整机的序列号,通常无法通过标准系统命令直接读取,必须依赖硬件固件提供的信息。以下是几种可靠的方法来提取系统序列号及相关硬件信息:
一、使用dmidecode命令查看系统序列号
dmidecode工具可解析系统BIOS中存储的SMBIOS/DMI表,其中包含制造商、产品名称、序列号等关键硬件标识信息。该命令需root权限运行,输出内容结构清晰,序列号通常位于“System Information”段落中。
1、以root用户身份执行命令:sudo dmidecode -t system
2、在输出结果中查找以Serial Number:开头的行
3、若需仅显示序列号内容,可结合grep过滤:sudo dmidecode -t system | grep "Serial Number"
二、使用lshw命令提取序列号
lshw是一款详细列出硬件配置的工具,其输出包含系统 chassis 和 motherboard 的序列号字段,适用于部分厂商(如Dell、HP)预装固件支持良好的设备。
1、安装lshw(如未安装):sudo apt install lshw(Debian/Ubuntu)或sudo yum install lshw(RHEL/CentOS)
2、运行命令获取系统级信息:sudo lshw -class system
3、在输出中定位serial:字段,该值即为系统序列号
三、读取/sys/devices/virtual/dmi/id/目录下的文件
内核在启动时将部分DMI信息映射至sysfs虚拟文件系统,无需额外工具即可访问。该路径下提供的序列号为只读接口,兼容性高,但某些OEM设备可能为空或返回"None"。
1、检查序列号文件是否存在且可读:cat /sys/devices/virtual/dmi/id/product_serial
2、若返回空或"None",尝试查看系统SKU或板卡序列:cat /sys/devices/virtual/dmi/id/board_serial
3、确认权限是否受限,必要时加sudo:sudo cat /sys/devices/virtual/dmi/id/product_serial
四、使用smartctl从硬盘获取主机序列号(间接方式)
部分服务器平台(如Dell PowerEdge)会在主引导硬盘的SMART信息中嵌入主机序列号,尤其适用于无法通过DMI获取序列号的虚拟化宿主机或老旧固件环境。
1、安装smartmontools:sudo apt install smartmontools或sudo yum install smartmontools
2、识别系统主硬盘设备名(如/dev/sda):lsblk -d -o NAME,MODEL,SIZE
3、读取设备SMART信息并搜索序列关键词:sudo smartctl -i /dev/sda | grep "Serial Number\|Product"










