news 2026/4/17 21:09:28

使用 dmesg 工具诊断Linux系统问题基本用法案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 dmesg 工具诊断Linux系统问题基本用法案例

dmesgDiagnosticMessage)是 Linux 中显示内核环形缓冲区(ring buffer)内容的强大工具。以下是详细解析:

一、dmesg 基础

作用

  • 显示内核启动信息
  • 查看硬件设备检测和驱动加载信息
  • 追踪内核级错误和警告
  • 诊断系统问题和性能事件

基本用法

# 查看所有内核消息dmesg# 显示人性化时间戳(需要 sudo 权限查看正确时间)dmesg-T# 或 dmesg --ctime# 按时间格式显示dmesg-t# 只显示消息,无时间戳dmesg--time-format ctime# 人类可读时间dmesg--time-format delta# 相对时间差dmesg--time-format iso# ISO 8601 格式

二、关键信息分类解析

1. 系统启动信息

dmesg|grep-i"boot\|initial"

典型信息:

  • Linux version ...- 内核版本
  • Command line: ...- 内核启动参数
  • Boot ...- 引导信息
  • Memory: ...- 内存检测

2. 硬件检测信息

# CPU 信息dmesg|grep-i"cpu\|processor"# 内存信息dmesg|grep-i"memory\|mem"# 存储设备dmesg|grep-i"disk\|sda\|nvme\|usb"# PCI 设备dmesg|grep-i"pci"# USB 设备dmesg|grep-i"usb"

3. 驱动加载信息

# 网络驱动dmesg|grep-i"eth\|network\|driver.*loaded"# 显卡驱动dmesg|grep-i"drm\|gpu\|radeon\|nvidia\|intel"# 文件系统dmesg|grep-i"filesystem\|ext4\|xfs\|btrfs"

4. 错误和警告信息

# 错误级别筛选dmesg--level=err,warn# 查看所有错误dmesg|grep-E"error|fail|invalid|unsupported"# 查看警告dmesg|grep-E"warning|deprecated"

dmesg 日志级别:

  • emerg(0) - 系统不可用
  • alert(1) - 必须立即处理
  • crit(2) - 严重情况
  • err(3) - 错误条件
  • warn(4) - 警告条件
  • notice(5) - 正常但重要
  • info(6) - 信息性消息
  • debug(7) - 调试级消息

三、实用命令组合

实时监控

# 实时查看新内核消息watch-n1"dmesg | tail -20"# 监控特定设备dmesg-w|grep-i"usb\|sda"

时间范围查询

# 查看最近5分钟的消息dmesg--since"5 minutes ago"# 查看特定时间段dmesg--since"2024-01-15 10:00:00"--until"2024-01-15 11:00:00"# 查看从上次重启以来的消息dmesg-T --since=$(uptime-s)

过滤和格式化

# 按设备/驱动过滤dmesg|grep-E"\[sd[a-z]\]|\[nvme\]"# 查看最近100条消息dmesg|tail-100# 查看并分页显示dmesg|less# 彩色输出(需要ccze)dmesg|ccze -A

四、dmesg 高级应用

1. OOM(内存不足)分析

# 查看所有OOM事件dmesg|grep-i"oom\|out.of.memory"# 查看被kill的进程dmesg|grep-i"killed.process"# 查看详细内存信息dmesg|grep-A5 -B5"Out of memory"

2. 硬件故障诊断

# 硬盘错误dmesg|grep-i"disk\|sector\|io.error\|smart"# 内存错误dmesg|grep-i"mem.*error\|ecc\|mce"# CPU 错误dmesg|grep-i"cpu.*error\|mce\|thermal"# 网络问题dmesg|grep-i"network\|link\|eth.*down"

3. 性能问题排查

# IRQ 冲突dmesg|grep-i"irq.*conflict"# DMA 问题dmesg|grep-i"dma"# 时钟同步dmesg|grep-i"clock\|tsc"

五、dmesg 配置和管理

缓冲区设置

# 查看缓冲区大小cat/proc/sys/kernel/dmesg_restrictcat/proc/sys/kernel/printk# 调整缓冲区(临时)sudosysctl -w kernel.dmesg_restrict=0sudosysctl -w kernel.printk="4 4 1 7"# 清除缓冲区(谨慎使用)sudodmesg-C

永久日志保存

# 保存当前dmesg到文件dmesg>/var/log/dmesg.log# 保存带时间戳的版本dmesg-T>/var/log/dmesg_timestamped.log# 系统启动时自动保存# 查看服务:systemctl status dmesg.servicels-la /var/log/dmesg*

六、journalctl 替代方案

systemd 系统可以使用journalctl查看内核日志:

# 查看内核日志journalctl -k# 实时查看journalctl -k -f# 按时间过滤journalctl -k --since"1 hour ago"# 按优先级journalctl -k -p err

七、实用示例

案例1:诊断USB设备问题

# 插入USB设备后查看日志dmesg|tail-20# 查看USB设备详细信息dmesg|grep-A10 -B5"usb.*new"

案例2:诊断网络中断

# 查看网络驱动加载和中断dmesg|grep-i"eth0\|interrupt\|link"

案例3:系统启动缓慢分析

# 查看启动时间线dmesg|grep-E"\[.*s\]"|head-30

八、注意事项

  1. 权限要求:某些选项需要 root 权限
  2. 环形缓冲区:旧消息会被新消息覆盖
  3. 时间戳:默认显示相对时间,-T选项转换为本地时间
  4. 非持久化:重启后缓冲区会被清空(除非配置保存)

dmesg是系统管理员和开发者诊断 Linux 系统问题的必备工具,熟练掌握可以帮助快速定位硬件、驱动和内核级别的问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 19:44:03

深度学习毕设项目推荐-基于python-CNN深度学习对棉花叶病识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 21:57:15

(新界面)宇视NVR云台守望功能配置指导

(新界面)宇视NVR云台守望功能配置指导一.功能介绍云台守望功能是云台在执行预置位、预置位巡航或轨迹巡航过程中,若被其他动作打断,则在等待时间后自动回到守望的预置位或巡航中,继续执行指定动作。旧版本N…

作者头像 李华
网站建设 2026/4/16 20:43:36

2025全球RWA合规白皮书:12万亿资产数字化背后的法律密码

引言:当钢筋水泥遇见区块链代码2025年,全球资产数字化浪潮正以摧枯拉朽之势重塑传统经济格局。从东南亚价值12亿美元的商业地产代币化项目,到香港朗新科技将9000台充电桩收益权转化为链上数字资产;从新加坡光伏电站通过智能合约实…

作者头像 李华
网站建设 2026/4/15 13:09:00

深度学习毕设项目:基于python-CNN机器学习卷积神经网络的胡萝卜是否变质识别基于python-CNN卷积神经网络的胡萝卜是否变质识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/17 19:19:59

【计算机毕业设计案例】基于python的胡萝卜是否变质识别基于python-CNN卷积神经网络的胡萝卜是否变质识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 9:27:29

本章节我们将讨论如何在 React 中使用表单。 DOM 元素有所不同

React 表单与事件 本章节我们将讨论如何在 React 中使用表单。HTML 表单元素与 React 中的其他 DOM 元素有所不同,因为表单元素生来就保留一些内部状态。在 HTML 当中&#xff0c;像 <input>, <textarea>, 和 <select> 这类表单元素会维持自身状态&#xff0…

作者头像 李华