Linux怎么使用dmesg_Linux如何查看内核启动硬件消息【技巧】

酷墨同学_1936

酷墨同学_1936

2026-03-28

395人浏览

原创

dmesg 是唯一能实时捕获内核首次识别 usb 设备的工具,比 lsusb 更底层及时;插拔时用 dmesg -w 或 dmesg | grep -i usb | tail -n 10 可快速定位,注意供电问题常被误判为硬件故障。

linux怎么使用dmesg_linux如何查看内核启动硬件消息【技巧】

怎么快速定位刚插上的USB设备是否被识别

dmesg 是唯一能实时看到内核“第一次见到”硬件的工具,比 lsusb 更底层、更及时——lsusb 读的是已枚举完成的设备树,而 dmesg 记录的是从物理信号到驱动绑定的全过程。

  • 插上U盘后立刻执行 dmesg -w,等几秒再拔掉,你会看到一连串带时间戳的 usb 相关日志,比如 usb 2-1: new high-speed USB device number 5 和 usb-storage 2-1:1.0: USB Mass Storage device detected
  • 如果只关心最新几条,用 dmesg | tail -n 20;想过滤关键词,必须加 -i(忽略大小写),否则 USB 和 usb 会漏掉: dmesg | grep -i usb | tail -n 10
  • 常见误判点:看到 device not accepting address 或 error -71 不代表设备坏了,很可能是供电不足或线材接触不良——换端口、换线、不接集线器再试

为什么 dmesg -T 显示的时间有时不准

dmesg -T 把内核内部的“启动后秒数”转成本地时间,但这个转换依赖系统时钟在启动后是否被 NTP 或手动校正过。一旦系统休眠/唤醒、或虚拟机被暂停再恢复,时间戳就会跳变甚至倒退。

  • 真正稳定的是相对时间(dmesg -t)或启动偏移(默认格式,如 [12345.678901]),它永远反映“距内核启动过了多少秒”
  • 排查硬件响应延迟时,应该用默认时间戳算差值:比如从 [12345.678] 的“device found”到 [12345.830] 的“Mass Storage detected”,间隔约 152ms,这比看 -T 输出的“2026-03-28 05:22:11”更有诊断价值
  • 若坚持要用可读时间,且机器不休眠、不虚拟化,可加 sudo 提权运行 dmesg -T(部分发行版限制非 root 查看精确时间)

如何只看错误和严重警告,避免信息过载

开机日志动辄上万行,全扫一遍效率极低。--level 是最干净的过滤方式,它按内核定义的日志级别筛选,比 grep error 可靠得多——后者会匹配到 “error” 字样,但内核实际可能只是在打印 “error injection enabled” 这种调试提示。

  • 只显示真正需要干预的错误:dmesg --level=err,crit,alert
  • 想顺带看看警告(比如驱动降级、固件缺失):dmesg --level=err,warn
  • 注意:debug 级别默认不输出,除非内核编译时启用了 CONFIG_DYNAMIC_DEBUG,所以 --level=debug 很可能返回空——这不是命令错了,是内核没记

环形缓冲区清空后还能找回旧日志吗

不能。dmesg 的 ring buffer 是内存中的固定大小区域(通常 16KB–64KB),新消息进来就覆盖最老的。执行 dmesg -c 后,被清除的内容彻底丢失,无法回溯。

  • 安全做法是先保存再清理:dmesg > /tmp/dmesg.boot.$(date +%s),尤其在复现问题前
  • 系统启动后的完整日志其实还存了一份在磁盘:/var/log/dmesg(部分发行版叫 /var/log/kern.log),但它只记录到上次关机前,不包含运行时新产生的消息
  • 真正持久的方案是启用 journald:systemd 系统中,journalctl -k 会把内核日志落盘并保留多轮重启记录,比纯 dmesg 更适合长期追踪

环形缓冲区的“易失性”是设计使然,不是缺陷——它优先保障实时性和内存开销。想靠它查三天前的硬盘报错?早被覆盖了。该用 journalctl 的地方,别硬扛 dmesg。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

949

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

2680

5

alert怎么实现换行
alert怎么实现换行

alert通过使用br标签来实现换行。更多关于alert相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.07

1277

8

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3910

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3353

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2493

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6010

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5662

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3333

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习