当前位置:

首页 > 系统应用 > Linux怎么查看内核日志dmesg信息

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

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

直接键入 dmesg 查看内核日志,恐怕是很多工程师面对系统异常时的第一个下意识动作。但结果往往令人失望:屏幕上飞快滚动着几万行历史启动信息,真正的错误早就淹没在信息海洋里,无处寻觅。

其实,内核日志是个金矿,只是你需要一套正确的“挖掘”方法。关键在于利用 dmesg 自身的过滤和格式化能力,配合明确的场景进行解读。

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

只看 error/warning 级别,别再 grep 关键词了

内核自己为每条日志都打上了清晰的级别标签,比如 err、warn、info。这些内部标记,可比你在字符串里搜索 “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 -f 或 dmesg --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 error 或 UNC error 这类日志,往往意味着硬盘很可能已经开始出现坏块,数据有丢失风险。
  • 而像 ACPI: EC: GPE storm detected 这样的警告,很多时候只是主板的固件(BIOS/UEFI)存在微小缺陷,系统已经自动处理,通常无需人工干预。

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

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
系统应用 Linux
相关文章 更多
Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Postman macOS版
Postman macOS版
Mac

Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。

Docker Desktop macOS版
Docker Desktop macOS版
Mac

Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

Android Studio macOS版
Android Studio macOS版
Mac

Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。

WINDOWS 更多
PixPix 网页版
PixPix 网页版
Windows

PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。

Postman Windows版
Postman Windows版
Windows

Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等

Docker Desktop Windows版
Docker Desktop Windows版
Windows

Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。