重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 124|回复: 0
打印 上一主题 下一主题

[基础命令] IT服务器资产盘点的利器:dmidecode

[复制链接]
跳转到指定楼层
楼主
发表于 4 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 郑全 于 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



好了,可以去物理机上试试吧 。看看有什么惊喜。





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-8-12 12:06 , Processed in 0.278030 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表