温馨提示×

dmesg日志报错怎么解决

小樊
43
2026-10-09 10:18:17
栏目: 编程语言

dmesg 是 Linux 内核环形缓冲区日志,报错种类非常多,不能一概而论。要“解决”,通常流程是:

  1. 先看完整报错内容
  2. 判断是硬件 / 驱动 / 文件系统 / 内存 / 内核问题
  3. 针对性处理

下面给你一个通用排查与解决思路,并附常见例子。


一、基本查看方法

dmesg
dmesg | tail -50
dmesg -T        # 显示可读时间
journalctl -k   # systemd 系统看内核日志

二、常见 dmesg 报错 & 解决方向

1️⃣ 硬件 / 驱动类

示例:

nvme nvme0: I/O timeout
usb 1-2: device descriptor read/64, error -71

✅ 解决思路:

  • 检查硬件是否松动、损坏
  • 更新内核 / 驱动
  • 升级 BIOS
  • 禁用相关设备(临时)
lsusb
lspci

2️⃣ 文件系统错误

示例:

EXT4-fs error (device sda1): ext4_find_entry: ...

✅ 解决:

umount /dev/sda1
fsck -y /dev/sda1

⚠️ 不要在挂载状态下修复根分区(用 Live CD)


3️⃣ 内存问题

示例:

BUG: unable to handle page fault
EDAC MC0: UE

✅ 解决:

  • 跑内存测试
memtester 1G 1
  • 拔插 / 更换内存

4️⃣ OOM(内存耗尽)

示例:

Out of memory: Kill process 1234

✅ 解决:

  • 优化进程
  • 增加 swap
free -h
swapon --show

5️⃣ 内核模块报错

示例:

module verification failed

✅ 解决:

  • 禁用 Secure Boot
  • 重新编译模块
  • 使用官方内核

三、建议你这样发问题(方便精准解决)

你可以直接把 dmesg 报错原文 贴出来,例如:

[ 123.456] xxx error ...

并补充:

  • 系统版本(Ubuntu / CentOS / Debian?)
  • 内核版本(uname -a)
  • 是否新装硬件 / 驱动
  • 什么时候开始出现

如果你愿意,把具体报错贴出来,我可以直接告诉你“这是什么问题 + 怎么做”。

0 踩