游乐游手机版
首页/系统平台/文章详情

Linux系统dmesg命令查看内核日志的方法

时间:2026-06-24 08:31
直接dmesg易被海量信息淹没,应加-lerr,warn过滤,-T转换时间戳,-w实时监控,清空前用dmesg>备份。避免grep-ierror误判,关键需结合系统表现(如内存、CPU状态)判断日志严重性。建议定期归档或使用journalctl管理。

直接执行 dmesg 命令查看内核日志,恐怕是许多工程师面临系统异常时的第一反应。然而,结果往往不尽如人意:屏幕上飞速滚过数万行历史启动信息,真正的问题早已淹没在海量数据中,难以定位。

实际上,内核日志是一座金矿,关键在于掌握正确的“挖掘”技巧。核心在于利用 dmesg 自带的过滤与格式化功能,并结合具体场景进行解读。

Linux怎么查看内核日志dmesg信息

仅筛选 error/warning 级别,别再通过 grep 搜关键词了

内核自身为每条日志都标记了清晰的级别标签,例如 errwarninfo。这些内部标记比在字符串中搜索 “error”“fail” 可靠得多。

  • 最直接的方式:dmesg -l err,warn。该命令直接过滤出错误和警告级别的信息,绝大多数硬件异常、驱动加载失败或 I/O 超时问题,最终都会落入这个范围。
  • 想要更醒目?加上 -L 参数开启彩色输出:dmesg -L -l err,warn。鲜红色的高亮关键错误行,扫一眼即可定位。
  • 需要警惕的是类似 dmesg | grep -i error 的写法。许多日志本身只是信息记录,但内容恰好包含“error”这个词,这样一 grep,反而引入大量无用信息,干扰判断。

时间戳务必使用 -T,别再纠结开机秒数了

dmesg 默认显示的时间戳是系统启动以来的秒数(如 [1.234567])。这个数值每次重启都会归零,若系统经历过休眠,则完全无法与现实时间对齐,排查历史问题时基本失效。

  • 正确的做法是使用 dmesg -T。它会将时间戳转换为易读的本地时间格式,例如:[Wed Jun 11 13:22:45 2026]
  • 组合使用是常见操作:dmesg -T -l err,warn 既能获取关键信息,又能知道具体发生时间。
  • 有一个例外:部分较老旧的 Linux 内核可能不支持 -T 参数。若发现命令无效,可以改用 journalctl -k --since "1 minute ago" 查看指定时间段内的内核日志。

实时监控关键硬件事件,-w 才是唯一选择

像 USB 设备热插拔、NVMe 固态硬盘链路中断、网卡意外重置这类瞬态事件,等你去翻阅历史日志时,它们早已被新消息顶出缓冲区。

  • 此时你需要 dmesg -w。这是内核原生支持的实时监控模式,持续监听并输出新产生的日志,当环形缓冲区翻转时,它能确保你不丢失任何消息。
  • 注意,有些文档会提到 dmesg -fdmesg --follow,但它们已被官方标记为可能弃用或不稳定,在某些内核版本下甚至会卡住,因此不推荐。
  • 实战中,可以配合 grep 进行过滤:dmesg -w | grep -i "usb\|nvme\|ata"。当你插入一块硬盘或试图复现问题时,终端立刻就会给出响应。
  • 如果执行 dmesg -w 后没有任何输出,先别慌。这可能是因为内核在编译时未启用 CONFIG_PRINTK 或启用了限制(常见于某些容器或精简内核),这种情况下改用 journalctl -k -f 即可。

清空日志是危险操作,务必先导出备份

内核日志缓冲区大小有限(通常 128KB 到 256KB),遵循环形队列规则,旧消息会被新日志覆盖。但在排查问题时,贸然清空缓冲区,很可能将刚刚发现的关键线索冲掉。

  • 最稳妥的习惯是:清空前,先用 dmesg > /tmp/dmesg-before.log 将当前日志完整导出备份。
  • 如果需要边导出边清空,使用 dmesg -c。该命令会先读取并输出当前全部内容,再清空缓冲区,相当于“一键备份并清空”。
  • 绝对不要 使用 dmesg -C。它只做一件事:清空缓冲区,并且不输出任何内容。一旦执行,除非你有其他地方的日志备份(如 journalctl -k/var/log/kern.log),否则丢失的日志线索几乎无法找回。

话说回来,掌握这些命令参数只是第一步。真正的难点在于判断:哪条日志是需要立即处理的致命错误,哪条只是无关紧要的噪音?例如:

  • 短时间内连续出现三次 buffer I/O errorUNC error 这类日志,往往意味着硬盘很可能已经开始出现坏块,数据有丢失风险。
  • 而像 ACPI: EC: GPE storm detected 这样的警告,很多时候只是主板的固件(BIOS/UEFI)存在微小缺陷,系统已经自动处理,通常无需人工干预。

这类判断,源于对系统整体表现(如卡顿、服务中断、设备失联)与日志信息的反复对照,是经验积累的结果,远非堆砌命令参数就能解决。

来源:https://www.php.cn/faq/2692044.html
上一篇MacBook外接鼠标滚轮反向滚动的调整方法 下一篇如何在Ubuntu 20.04 LTS上安装Elgg社交网络平台详细步骤教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送