最可靠的方式是用 sudo dmidecode -t memory 查看 part number、manufacturer 和 speed 等字段;/proc/meminfo 和 lscpu 不含内存条硬件信息,lshw 可能缺失型号,/sys/firmware/dmi/tables/ 可作无工具备选但需 sudo 且有匹配风险。

用 dmidecode 查内存条型号(需 root)
Linux 下最可靠的方式是读取 BIOS/UEFI 固件提供的 SMBIOS 表,dmidecode 就是干这个的。它不依赖驱动或内核模块,直接解析硬件固件信息,型号、频率、制造商、序列号基本都能拿到。
执行命令:
sudo dmidecode -t memory
- 重点看
Part Number(型号编码,如M378A2K43CB1-CTD)、Manufacturer(厂商,如Samsung)、Speed(标称频率,如3200 MT/s) - 注意:同一插槽可能输出多段重复信息,
Size为No Module Installed的表示空插槽,别误当成有效条 - 非 root 用户执行会提示
Permission denied,因为 /dev/mem 受限,不能绕过 sudo 用普通权限查全量信息
lshw 输出更紧凑但可能缺细节
lshw 是通用硬件探测工具,对内存的支持比 dmidecode 弱一点——它依赖内核识别结果和 sysfs 导出字段,有些主板会省略 part_number 或把厂商写成 NO DIMM。
常用命令:
sudo lshw -class memory | grep -A 10 "bank:"
- 适合快速确认插槽数量、已用容量、是否 DDR4/DDR5,但别指望靠它拿到准确型号
- 某些 ARM 设备或精简发行版(如 Alpine)默认没装
lshw,得先apk add lshw或apt install lshw - 输出里
description: DIMM Synchronous后面没跟具体参数?大概率是 BIOS 没填或内核没导出,这时候得切回dmidecode
从 /sys/firmware/dmi/tables/ 手动提取(不用 sudo,但有局限)
现代内核(≥5.10)默认启用 DMI 表导出到 sysfs,路径是 /sys/firmware/dmi/tables/。你可以用 strings 直接扫二进制数据,避开 dmidecode 的权限问题。
示例:
sudo strings /sys/firmware/dmi/tables/DMI | grep -A 1 -B 1 "Part Number\|Manufacturer"
- 不需要安装额外工具,但必须有
sudo读/sys/firmware/dmi/tables/(普通用户无权访问该目录) - 输出是原始字符串流,没有结构化字段,容易漏匹配或误匹配(比如 “Samsung” 出现在其他字段里)
- 部分国产 BIOS 或老旧主板禁用了 DMI sysfs 导出,此时目录为空或报错
No such file or directory
别信 cat /proc/meminfo 查型号
/proc/meminfo 只提供内核视角的内存统计(如 MemTotal、MemAvailable),完全不包含物理内存条的硬件信息。有人试过 grep “model” 或 “type”,结果当然什么都没有。
- 它连 DDR3 还是 DDR4 都不告诉你,更别说颗粒型号
- 混淆点在于:名字带 “mem” 就以为能查硬件——其实它是内存子系统运行时状态快照,不是硬件数据库
- 真想确认代际,看
dmidecode -t memory里的Type字段(值为DDR4或LPDDR5),不是/proc/meminfo
dmidecode -t memory 是第一选择;如果被限制 sudo 权限又必须查,优先检查 /sys/firmware/dmi/tables/ 是否可读,而不是去翻 /proc 或 lscpu——那些地方根本没存内存条型号。











