本帖最后由 郑全 于 2026-8-8 10:16 编辑
如果我们想看看服务器的CPU,内存,缓存,制造商等信息,最快的方式,就是使用 dmidecode。
下面我们看看 这个工具的介绍:
什么是 dmidecode?
dmidecode 是 Linux 系统中用于读取和解析系统 DMI(Desktop Management Interface,桌面管理接口) 表的命令行工具,它能够将硬件信息以可读的文本格式输出。
DMI 表由系统固件(BIOS/UEFI)提供,遵循 SMBIOS(System Management BIOS) 规范,包含了关于 BIOS、系统、主板、处理器、内存、缓存等组件的详细信息。
主要用途
dmidecode 在系统管理和硬件审计中非常有用,常见场景包括:
- 硬件资产盘点:获取服务器型号、序列号、UUID 等信息
- BIOS 版本验证:在固件升级前检查当前版本
- 内存规划:查看内存插槽数量、已占用 DIMM 信息、最大支持容量
- 硬件验证:确认固件报告的硬件信息,独立于驱动程序
- 故障诊断:排查硬件兼容性问题
基本用法与常用选项
执行 dmidecode 通常需要 root 权限,因为它需要直接访问 /dev/mem 或 sysfs 中的 SMBIOS 数据。
常用命令示例
用途
sudo dmidecode 显示所有 DMI 信息
sudo dmidecode -t system 显示系统制造商、型号、序列号、UUID
sudo dmidecode -t bios 显示 BIOS 版本、发布日期等信息
sudo dmidecode -t processor 显示 CPU 信息
sudo dmidecode -t memory 显示内存信息(阵列、插槽、DIMM 详情)
sudo dmidecode -t cache 显示 CPU 缓存信息
sudo dmidecode -s system-serial-number 只显示系统序列号
sudo dmidecode -s bios-version 只显示 BIOS 版本
-t 选项支持的常见类型(DMI Type)
-t 选项支持按类型过滤,可以使用关键词或数字代码:
关键字 数字代码 说明
bios 0 BIOS 信息
system 1 系统信息
baseboard 2 主板信息
chassis 3 机箱信息
processor 4 处理器信息
memory 16, 17 内存阵列与设备信息
cache 7 CPU 缓存信息
-s 选项支持的常用字符串关键字
-s 选项用于提取单个字段值,适合脚本使用:
bios-vendor, bios-version, bios-release-date
system-manufacturer, system-product-name, system-version, system-serial-number, system-uuid
baseboard-manufacturer, baseboard-product-name, baseboard-serial-number
processor-manufacturer, processor-version, processor-frequency
与其他工具的区别
dmidecode 与 lshw、lscpu、lspci 等工具不同,它读取的是 固件暴露的 SMBIOS/DMI 数据,报告的是 BIOS/UEFI 声称的硬件信息,而非内核当前正在使用的运行时信息。因此,dmidecode 适合用于资产盘点、审计和硬件身份识别,而 lscpu 等工具则更适合查看 CPU 拓扑、NUMA 节点等运行时状态。
注意事项
权限要求:必须使用 sudo 或 root 用户运行
信息准确性:DMI 数据依赖于硬件厂商填写,部分信息可能缺失或错误(如虚拟化环境会返回虚拟数据)
安全限制:序列号等敏感信息需防止泄露,可通过 SELinux/AppArmor 限制访问
看看一个虚拟机中的情况:
[root@servera test]# dmidecode -t processor
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x0400, DMI type 4, 42 bytes
Processor Information
Socket Designation: CPU 0
Type: Central Processor
Family: Other
Manufacturer: Red Hat
ID: A2 06 0B 00 FF FB 8B 0F
Version: RHEL-7.6.0 PC (Q35 + ICH9, 2009)
Voltage: Unknown
External Clock: Unknown
Max Speed: 2000 MHz
Current Speed: 2000 MHz
Status: Populated, Enabled
Upgrade: Other
L1 Cache Handle: Not Provided
L2 Cache Handle: Not Provided
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
Core Count: 1
Core Enabled: 1
Thread Count: 1
Characteristics: None
Handle 0x0401, DMI type 4, 42 bytes
Processor Information
Socket Designation: CPU 1
Type: Central Processor
Family: Other
Manufacturer: Red Hat
ID: A2 06 0B 00 FF FB 8B 0F
Version: RHEL-7.6.0 PC (Q35 + ICH9, 2009)
Voltage: Unknown
External Clock: Unknown
Max Speed: 2000 MHz
Current Speed: 2000 MHz
Status: Populated, Enabled
Upgrade: Other
L1 Cache Handle: Not Provided
L2 Cache Handle: Not Provided
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
Core Count: 1
Core Enabled: 1
Thread Count: 1
Characteristics: None
如果不知道输入什么类型关键字,只需要在 -t 后面乱输入,就会告诉你正确的应该输入什么?
[root@servera test]# dmidecode -t aa
Invalid type keyword: aa
Valid type keywords are:
bios
system
baseboard
chassis
processor
memory
cache
connector
slot
[root@servera test]# dmidecode -t baseboard
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
dmidecode 在系统管理和硬件审计中非常有用,常见场景包括:
硬件资产盘点:获取服务器型号、序列号、UUID 等信息
BIOS 版本验证:在固件升级前检查当前版本
内存规划:查看内存插槽数量、已占用
[root@servera test]# dmidecode -t cache
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
[root@servera test]# dmidecode -t connector
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
[root@servera test]# dmidecode -t slot
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
[root@servera test]# dmidecode -t memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
Location: Other
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 2 GB
Error Information Handle: Not Provided
Number Of Devices: 1
Handle 0x1100, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM 0
Bank Locator: Not Specified
Type: RAM
Type Detail: Other
Speed: Unknown
Manufacturer: Red Hat
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
Rank: Unknown
Configured Memory Speed: Unknown
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
[root@servera test]# dmidecode -t chassis
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present
好了,可以去物理机上试试吧 。看看有什么惊喜。
|