在 Linux 中,dmesg(display message)用于显示内核环形缓冲区(kernel ring buffer)的日志,包含系统启动、硬件检测、驱动加载、内核错误、设备插拔、OOM 等信息。下面从基本用法 → 常见内容 → 分析方法 → 实战示例逐步说明。
dmesg
dmesg -w
或
dmesg --follow
dmesg -l err,warn
常见级别:
emerg:系统不可用alert:必须立即处理crit:严重err:错误warn:警告info:信息debug:调试dmesg -T
(人类可读时间,如 Mon Jan 1 10:00:00 2024)
dmesg | grep usb
dmesg | tail -n 50
典型格式:
[ 1.234567] usb 1-1: new high-speed USB device number 2 using xhci_hcd
说明:
[ 1.234567]:系统启动后经过的秒数usb 1-1:设备位置xhci_hcd:使用的驱动关键词:
failederrortimeoutresetno such device示例:
usb 1-2: device descriptor read/64, error -71
✅ 分析:
关键词:
Out of memorykilled processoom-kill示例:
Out of memory: Killed process 1234 (java)
✅ 分析:
/var/log/messages 或 free -h关键词:
EXT4-fs errorI/O errorread-only file system示例:
EXT4-fs error (device sda1): remounting filesystem read-only
✅ 分析:
fsck关键词:
eth0: link uplink downfirmware关键词:
BUG:Call Tracepanic✅ 一般需要结合:
journalctl -k
现代 Linux(CentOS 7+、Ubuntu 16+):
journalctl -k # 内核日志
journalctl -k -p err # 内核错误
journalctl -b -1 -k # 上一次启动
dmesg -T -l err,warn
dmesg -T | tail -100
lspci
lsusb
dmesg | grep usb
看到:
usb 1-1: device not accepting address
✅ 结论:接口或 U 盘硬件问题
dmesg -T | grep -i oom
✅ 定位内存耗尽进程
✅ dmesg 分析核心:
如果你有具体的 dmesg 日志内容,可以直接贴出来,我可以帮你逐行分析。