跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Linux内核日志怎么看_dmesg排错实践

dmesg需聚焦时间、级别、设备、错误信号四锚点:用-T显绝对时间,-l筛选err/warn级日志,-w实时监听硬件事件,操作前备份并确认CONFIG_PRINTK启用。 直接用
dmesg
看内核日志,不是简单敲个命令就完事。关键在“聚焦”——过滤掉干扰信息,抓住时间、级别、设备和错误信号这四个锚点。否则满屏滚动的启动日志,真正出问题的那一行早被刷走了。 带时间戳看,别信默认数字 默认输出里
[ 1.234567]
这种是开机后秒数,系统重启过、挂起过,这个数字就失去参考价值。排查时优先加
-T
显示本地绝对时间:
dmesg -T | tail -n 30
:看最近半分钟发生了什么
dmesg -T | grep -i "nvme\|ata\|sd[a-z]"
:查磁盘类异常,配合时间更容易定位IO卡顿或掉盘时刻 若发现时间跳变(比如从 09:12 突然跳到 09:05),说明系统曾休眠或时间同步过,此时应结合
journalctl --since "2026-03-03 09:00"
交叉验证 按级别筛,先抓 err 和 warn 内核日志分 8 级,日常重点关注
err
(错误)和
warn
(警告),它们往往对应真实故障:
dmesg -l err,warn
:最简筛选,立刻排除大量 info 级的正常加载日志
dmesg -l err,crit,alert,emerg
:更严格,只留致命级事件,适合崩溃后快速定性 注意:
error
不一定出现在日志级别字段里,有时藏在消息正文,所以
grep -i "error\|fail\|timeout\|reset"
仍有必要 实时盯住硬件事件 USB 插拔、磁盘识别、网卡重置这类动作转瞬即逝,翻历史日志大概率漏掉。必须用
-w
持续监听: Docker Desktop(linux) 当前 Docker 最新稳定版本之一,主要针对稳定性和兼容性进行了修复优化,适合生产环境与日常开发使用。该版本继续强化 AI 开发支持、容器日志管理以及 Docker Engine 的安全能力,对 Windows/macOS/Linux 平台兼容性进行了进一步优化。 下载
dmesg -w | grep -i "usb\|xhci\|ehci"
:插 U 盘时终端立刻出响应
dmesg -w | grep -i "nvme\|timeout\|link down"
:监控 NVMe 盘链路异常
-w
比老式
-f
更可靠,缓冲区翻转时自动续读,不会中断 保存与复位要留痕 内核日志不落盘,重启即丢。操作前养成备份习惯: 查问题前先存档:
dmesg > /tmp/dmesg-before.log
复位缓冲区用
dmesg -c
,它会清空并输出当前全部内容,比
dmesg -C
更安全(后者只清不输出) 某些容器或嵌入式环境
dmesg
返回空,先确认是否启用
CONFIG_PRINTK
内核选项,或改用
journalctl -k
替代 不复杂但容易忽略:dmesg 是内核的“第一手记录”,它不美化、不汇总、不延迟。看懂它,等于拿到系统底层运行的原始录像带。

相关文章