dmesg日志是Linux内核的实时记录,可用于诊断硬件故障、驱动异常和内核问题。常用方法包括:用grep过滤错误和警告,按CPU、内存等关键词检查硬件状态,实时监视新消息,查看模块加载情况,以及将日志保存为文件。
dmesg日志诊断内核问题方法
时间:2026-06-26
浏览:310
文章目录
dmesg 这个名字,全称是“display message”或“driver message”,简单说就是 Linux 内核的“日记本”。系统从开机到运行,内核干了什么、发现了什么、抱怨了什么,全记在这里。所以想诊断内核相关的问题,翻这本日记往往能一针见血。下面就把几个常用的诊断方法逐一拆开看看。

先翻翻开机那会儿的记录
机器刚启动时,硬件自检、驱动加载、初始化流程……这些关键信息全藏在 dmesg 的早期输出里。直接敲 dmesg 内容太多?用管道交给 less 就舒服多了,上下翻页随你。
dmesg | less
逮住错误和警告
内核不开心的时候,会在日志里留下“error”或“warning”标记。如果终端支持颜色配置,这些行通常会高亮显示。手动过滤也很简单:
dmesg | grep -i error
dmesg | grep -i warning
看到这些信息,硬件故障、驱动冲突或配置异常的可能性就浮出水面了。
瞄一眼硬件状态
CPU、内存、磁盘、网卡……硬件相关的消息在 dmesg 里占了大头。想知道某类硬件是否被正确识别、有没有报错,直接按关键词搜:
dmesg | grep -i cpu
dmesg | grep -i memory
dmesg | grep -i disk
dmesg | grep -i network
盯住某个设备不放
如果怀疑某个具体的设备(比如网卡 eth0 或者磁盘 sda)出了问题,把设备名或文件路径扔给 grep 就行:
dmesg | grep -i "eth0"
dmesg | grep -i "sda"
实时盯着内核“说话”
有时系统在运行中会不断产生新消息,比如热插拔设备、驱动异常。用 watch 配合 dmesg 就能做到“现场直播”,每秒刷新一次:
watch -n 1 'dmesg | less'
注意这里用 less 是为了分页显示,实际场景中更推荐 watch -n 1 'dmesg | tail -n 50' 只看最新内容,效率更高。
检查内核模块的加载情况
模块加载或卸载时,内核也会记上一笔。想看系统里装了哪些模块、它们有没有异常,过滤 module 关键词:
dmesg | grep -i module
按关键字精准定位
如果已经知道问题可能与某个关键词相关,比如“USB”、“ACPI”、“PCIe”,直接搜就是了:
dmesg | grep -i "keyword"
把日志存下来,慢慢分析或发给别人
有问题的机器不方便一直登录?或者想请同事帮忙看看?把 dmesg 输出重定向到文件就搞定了:
dmesg > dmesg_output.txt
总结一下:dmesg 可以说是 Linux 内核问题的“第一现场”。硬件没认出来、驱动崩溃、内核 panic 前的蛛丝马迹,往往都藏在里面。花几分钟翻一翻,很多棘手问题的根源就能浮出水面。
实用工具推荐
绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
选择画质和输出格式,预览压缩前后的大小。