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 和 wlan0bash运行dmesg | grep -E eth0|wlan0查看最近发生的内核事件最后 20 行bash运行dmesg | tail -20查看特定设施如内核 kern的消息bash运行dmesg -f kern清空环形缓冲区需要 root 权限bash运行sudo dmesg -C5. 注意事项权限要求普通用户通常可以读取 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?pwd7uz8

相关新闻

最新新闻

CUTTag与RNA-seq多组学关联分析:5大核心套路与实操指南

CUTTag与RNA-seq多组学关联分析:5大核心套路与实操指南

1. 项目概述:从单组学到多组学关联的必然之路在表观遗传学和转录组学研究领域,我们早已不满足于“单打独斗”式的数据分析。过去,我们可能分别做一次CUT&Tag实验来描绘组蛋白修饰或转录因子的结合图谱,再单独做一次RNA-seq来测…

2026/8/13 1:33:46
航空数据分析实战:从ADS-B数据到航班离港轨迹可视化

航空数据分析实战:从ADS-B数据到航班离港轨迹可视化

最近在做一个航空数据分析的小项目,需要处理大量的航班起降数据。在整理香港国际机场的离港航班信息时,我发现了一个有趣的现象:从同一个机场起飞的航班,其飞行轨迹、高度变化、速度曲线等数据背后,其实隐藏着一套复杂…

2026/8/13 1:33:46
彻底告别重复图片!AntiDupl.NET开源图片去重工具终极指南

彻底告别重复图片!AntiDupl.NET开源图片去重工具终极指南

彻底告别重复图片!AntiDupl.NET开源图片去重工具终极指南 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾因电脑中堆积如山的重复图片而烦恼&#…

2026/8/13 1:33:46
AI智能体工作流:从模糊需求到清晰开发任务的自动化拆解实践

AI智能体工作流:从模糊需求到清晰开发任务的自动化拆解实践

最近在技术社区里,一个名为“这能赢啊”的项目悄然走红。乍一看,这个标题充满了游戏化的轻松感,甚至带点调侃,很容易让人误以为又是一个昙花一现的“玩具”项目。但当你真正深入其中,会发现它瞄准了一个非常具体且高频…

2026/8/13 1:33:46
破解AMD Ryzen内存性能瓶颈:ZenTimings实战指南

破解AMD Ryzen内存性能瓶颈:ZenTimings实战指南

破解AMD Ryzen内存性能瓶颈:ZenTimings实战指南 【免费下载链接】ZenTimings 项目地址: https://gitcode.com/gh_mirrors/ze/ZenTimings 当你在AMD Ryzen平台上进行内存超频时,是否曾遇到这样的困境:BIOS中设置的参数与系统实际运行的…

2026/8/13 1:33:46
Insomnia API测试工具:5分钟掌握环境变量与自动化测试实战

Insomnia API测试工具:5分钟掌握环境变量与自动化测试实战

1. 项目概述:为什么Insomnia能成为API测试的“瑞士军刀”?如果你和我一样,每天都要和十几个甚至几十个API打交道,那你肯定懂那种在Postman、命令行curl、浏览器开发者工具之间反复横跳的烦躁。数据格式对不对?认证头加…

2026/8/13 1:28:45