当前位置: 首页 > news >正文

Linux 内核日志诊断:dmesg 命令完整详解(硬件故障排查实战)

1. 命令简介

dmesg 命令是 Linux 系统中一个核心的诊断工具,用于显示和控制内核环形缓冲区的内容。内核在启动和运行过程中,会将硬件检测、设备驱动初始化、系统错误等重要信息实时写入此环形缓冲区。

通过 dmesg,系统管理员和开发者可以:

查看系统启动时的详细日志。 诊断硬件故障(如硬盘错误、内存问题)。 排查设备驱动加载失败的原因。 实时监控内核的运行状态。 这些信息对于系统调试和性能分析至关重要。开机时来不及查看的信息,都可以通过此命令回顾。默认情况下,这些日志也会被保存到 /var/log/dmesg 文件中。

2. 语法格式

bash

运行

dmesg [选项]...

3. 常用选项及说明

dmesg 提供了丰富的选项来过滤、格式化和控制输出。

表格

选项说明
-H, --human人性化显示。输出更易读的时间戳,并启用交互式分页器(如 less)进行浏览。
-k, --kernel仅显示内核消息。这是默认行为。
-l, --level <列表>按日志级别过滤。只显示指定级别的消息。级别包括:emerg, alert, crit, err, warn, notice, info, debug。
-T, --ctime显示人类可读的日历时间戳(例如 Mon May 27 14:12:34 2024),而非默认的内核启动后的相对时间。
-t, --notime不显示任何时间戳。
-x, --decode解码设施和级别为可读的字符串。例如,将 kern.info 显示为 kernel: info。
-L, --color[=always|auto|never]对消息级别进行颜色高亮。auto 为默认值,仅在输出到终端时着色。
-r, --raw打印原始的缓冲区消息,包含原始的日志级别前缀(如 <6> 代表 info 级别)。
-f, --facility <列表>按设施(产生消息的子系统)过滤。例如:kern, user, mail, daemon 等。
-s, --buffer-size <大小>设置用于查询环形缓冲区的大小(字节)。如果缓冲区被部分覆盖,可使用此选项尝试读取更多历史消息。
-c, --clear显示后清空环形缓冲区。此操作通常需要 root 权限,请谨慎使用。
-C, --clear直接清空环形缓冲区,不显示内容。需要 root 权限。
-h, --help显示帮助信息。
-V, --version显示版本信息。

日志级别说明内核消息有不同的严重级别,数字越小越严重:

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

4. 示例用法

查看所有内核消息(默认行为)

bash

运行

dmesg

以人性化格式查看,并启用分页

bash

运行

dmesg -H

bash

运行

dmesg --human | less

查看带有人类可读时间戳的消息

bash

运行

dmesg -T

仅查看错误 (err) 和警告 (warn) 级别的消息

bash

运行

dmesg -l err,warn

或使用级别编号

bash

运行

dmesg -l 3,4

结合 grep 搜索特定信息

查看硬盘(如 sda)相关的信息:

bash

运行

dmesg | grep -i sda

查看 USB 设备连接信息:

bash

运行

dmesg | grep -i usb

查看内存信息:

bash

运行

dmesg | grep -i memory

使用正则表达式搜索多个关键词(如网卡 eth0 和 wlan0):

bash

运行

dmesg | grep -E "eth0|wlan0"

查看最近发生的内核事件(最后 20 行)

bash

运行

dmesg | tail -20

查看特定设施(如内核 kern)的消息

bash

运行

dmesg -f kern

清空环形缓冲区(需要 root 权限)

bash

运行

sudo dmesg -C

5. 注意事项

权限要求:普通用户通常可以读取 dmesg 输出。但某些系统出于安全考虑,可能通过 kernel.dmesg_restrict sysctl 参数(值为 1)限制普通用户访问。此时,需要使用 sudo 或以 root 身份运行。清空缓冲区 (-c, -C) 操作始终需要 root 权限。

缓冲区覆盖:内核环形缓冲区大小有限,当新消息产生时,旧消息会被覆盖。因此,重要的启动信息应及时查看或保存。

时间戳:默认时间戳是系统启动后的秒数(和纳秒)。使用 -T 选项可以转换为日历时间,但请注意,如果系统启动后时间被调整过,这个转换可能不准确。

与 /var/log/messages 或 journalctl 的区别:

  • dmesg 直接读取内核内存中的环形缓冲区,内容更偏向硬件和驱动层。
  • /var/log/messages 或 syslog 记录的是由用户空间守护进程(如 rsyslog)转发的、更广泛的系统日志。
  • journalctl -k 命令(在 systemd 系统上)的功能与 dmesg 类似,但能提供更结构化的查询。

生产环境慎用清空操作:-c 和 -C 选项会永久清除环形缓冲区中的历史信息,可能导致问题排查困难,在生产环境中应格外谨慎使用。

Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd=7uz8

http://www.jsqmd.com/news/1381759/

相关文章:

  • 2026年宁波选购马尔轮廓仪 哪家好你可以多了解下这里 - 起跑123
  • Python 如何做文本对比?超全实战教程(精准比对+相似度+可视化差异)
  • 地铁采风111
  • 2026年集运系统大比拼,哪家能在众多竞品中脱颖而出?
  • 2026年选高速内镶贴条式滴灌带生产线正规厂商新润滴灌设备 - 热点品牌推荐
  • 2026年新版参考重庆市渐进老花镜怎么选?围绕容易忽略的风险和核对要点、这些问题要提前避开与区县服务要点全面解析 - 小校长
  • Visual C++运行库修复终极指南:一站式解决Windows应用程序启动问题的完整方案
  • 2026年买车去哪挑新能源汽车车行有哪些成都同展车多多新能源二手车 - 热点品牌推荐
  • 市场低代码管理平台智能管理
  • 2026年太原艺考生美术培训相关机构选择参考指南 - 起跑123
  • llama.cpp 本地部署完全指南:从安装到 OpenAI 兼容 API 服务
  • 高通跃龙IQ-9075平台的开发记录(1): 边缘农业AI助手的端到端部署
  • 2026年朝阳刑事律师事务所联系方式查询指南 北京英淇律师事务所(朝阳服务中心) - 热点品牌推荐
  • 嵌入式面试总结(六)——现代处理器架构
  • 2026年石家庄全自动软化水设备厂家如何选?春之原环境工程(石家庄营销部) - 热点品牌推荐
  • 2026年集运市场大揭秘:哪家集运系统能让你真正省心?
  • 郑州齿轮箱生产供应商哪家正规?选河南昊宇机械设备科技有限公司(郑州运营中心) - 热点品牌推荐
  • 全栈正式宣告死亡?
  • 历城区找中财静音管直营配送商哪家正规咨询济南淼森建材历城销售部 - 热点品牌推荐
  • 高通跃龙IQ-9075平台的开发记录(2): genie-图名称规则与常见问题
  • 2026年8月靠谱的杨浦酒回收公司如何选测评,老酒变现渠道与名酒回收机构分析 - 海棠依旧大
  • 2026年8月重庆市高度近视配镜便宜的店办理流程:从需求确认到服务完成、预约准备与办理步骤 - 小校长
  • 选购戴南正规的不锈钢圆管制造商认准2026年江苏巨登不锈钢管业有限公司(戴南营销部) - 热点品牌推荐
  • 2026年菏泽短视频剪辑实战培训正规服务商推荐一览 - 起跑123
  • 终极指南:如何用BiliDownloader轻松下载B站高清视频
  • 3步彻底清理Windows系统优化工具:让你的“此电脑“恢复整洁
  • 吐鲁番图书馆家具源头工厂推荐怎么选?就近选居易风家具(吐鲁番服务中心) - 热点品牌推荐
  • 2026 年 7 月新发布:让胡路评价高的冷拔无缝钢管生产厂家哪个好,这种让工程人又爱又怕的圆管,原来藏着这么多你不知道的门道?-海隆钢管 - 行业推荐官[官方】--
  • 2026年集运系统生产厂家怎么选?核心选型关键要点一文讲透
  • 终极解决方案:5分钟让Mac通过安卓USB共享上网