温馨提示×

linux dmesg日志如何分析

小樊
31
2026-10-15 05:56:49
栏目: 智能运维

在 Linux 中,dmesg(display message)用于显示内核环形缓冲区(kernel ring buffer)的日志,包含系统启动、硬件检测、驱动加载、内核错误、设备插拔、OOM 等信息。下面从基本用法 → 常见内容 → 分析方法 → 实战示例逐步说明。


一、基本用法

1. 查看 dmesg 日志

dmesg

2. 实时监控(类似 tail -f)

dmesg -w

或

dmesg --follow

3. 按级别过滤(推荐)

dmesg -l err,warn

常见级别:

  • emerg:系统不可用
  • alert:必须立即处理
  • crit:严重
  • err:错误
  • warn:警告
  • info:信息
  • debug:调试

4. 带时间戳

dmesg -T

(人类可读时间,如 Mon Jan 1 10:00:00 2024)

5. 查看某类设备(如 USB)

dmesg | grep usb

6. 查看最近 N 条

dmesg | tail -n 50

二、dmesg 日志结构

典型格式:

[    1.234567] usb 1-1: new high-speed USB device number 2 using xhci_hcd

说明:

  • [ 1.234567]:系统启动后经过的秒数
  • usb 1-1:设备位置
  • xhci_hcd:使用的驱动

三、常见日志类型与分析思路

1️⃣ 硬件 / 驱动问题

关键词:

  • failed
  • error
  • timeout
  • reset
  • no such device

示例:

usb 1-2: device descriptor read/64, error -71

✅ 分析:

  • USB 设备通信失败
  • 可能是线材、供电、接口或驱动问题

2️⃣ 内存问题(OOM)

关键词:

  • Out of memory
  • killed process
  • oom-kill

示例:

Out of memory: Killed process 1234 (java)

✅ 分析:

  • 某进程占用内存过多
  • 查看 /var/log/messages 或 free -h

3️⃣ 文件系统 / 磁盘

关键词:

  • EXT4-fs error
  • I/O error
  • read-only file system

示例:

EXT4-fs error (device sda1): remounting filesystem read-only

✅ 分析:

  • 磁盘错误或坏块
  • 建议 fsck

4️⃣ 网卡 / 网络

关键词:

  • eth0: link up
  • link down
  • firmware

5️⃣ 内核崩溃 / 硬件故障

关键词:

  • BUG:
  • Call Trace
  • panic

✅ 一般需要结合:

journalctl -k

四、结合 systemd 系统(推荐)

现代 Linux(CentOS 7+、Ubuntu 16+):

journalctl -k          # 内核日志
journalctl -k -p err   # 内核错误
journalctl -b -1 -k    # 上一次启动

五、实战分析流程(标准思路)

  1. 先过滤错误
dmesg -T -l err,warn
  1. 找时间异常
dmesg -T | tail -100
  1. 结合设备
lspci
lsusb
  1. 确认是否复现
  • 重启
  • 插拔设备
  • 加载/卸载模块

六、常见排错示例

示例 1:U 盘无法识别

dmesg | grep usb

看到:

usb 1-1: device not accepting address

✅ 结论:接口或 U 盘硬件问题


示例 2:服务器突然卡死

dmesg -T | grep -i oom

✅ 定位内存耗尽进程


七、小结

✅ dmesg 分析核心:

  • 看级别(err/warn)
  • 看时间(是否异常点)
  • 看设备(usb / sda / eth)
  • 结合 journalctl

如果你有具体的 dmesg 日志内容,可以直接贴出来,我可以帮你逐行分析。

0 踩