Linux dmesg 查看系统启动日志

dmesg 是 Linux 系统中一个用于**显示和控制内核环形缓冲区(kernel ring buffer)**内容的命令行工具。它主要用于查看系统启动过程以及运行时内核生成的硬件检测、驱动加载和错误事件等日志信息。

核心功能与工作原理

  • 功能 :dmesg 的核心作用是帮助用户了解系统启动信息,诊断硬件兼容性问题、内核崩溃以及监控设备状态。它记录的信息包括系统架构、CPU详情、内存映射、所有被检测到的硬件(如硬盘、USB设备)以及内核模块的加载情况等。
  • 工作原理 :内核在启动和运行过程中会将日志信息写入一个固定大小的环形缓冲区。dmesg 命令通过读取 /dev/kmsg 等设备文件来访问这个缓冲区的内容。由于该缓冲区采用循环存储机制,当存满时,新的信息会覆盖旧的信息。

基本语法与常用选项

命令的基本语法为 dmesg [选项]。以下是一些最常用的选项和用法:

选项 功能描述 示例
无选项 显示环形缓冲区中的所有内核消息。 dmesg
-c 或 --clear 显示信息后,清除环形缓冲区内的内容。 dmesg -c
-w 或 --follow 实时监控 新的内核消息,类似于 tail -f 的效果。 dmesg -w
-T 或 --ctime 使用易读的本地时间戳显示每条消息的时间(注意:在系统挂起/恢复后可能不准确)。 dmesg -T
-l, --level 按日志级别过滤 输出。级别包括 emerg, alert, crit, err, warn, notice, info, debug。 dmesg -l err,crit (仅显示错误和严重信息)
-f, --facility 按设施类别过滤 输出。类别包括 kern, user, mail, daemon 等。 dmesg -f daemon (显示守护进程消息)
-H 或 --human 以更人性化、易读的格式输出信息。 dmesg -H
**结合管道 ` `** 与其他命令(如 grep, less, tail)结合,用于搜索、过滤或分页查看。

主要应用场景与实例

  1. 诊断启动问题 :开机后若未能看到启动信息,可直接运行 dmesg 查看完整的启动日志,分析硬件初始化或驱动加载失败的原因。
  2. 排查硬件故障 :当连接或移除硬件(如USB设备、硬盘)时,可以通过 dmesg 查看内核是否识别到该设备及相关的状态信息。例如,使用 dmesg | grep sda 来查看第一块SATA硬盘的检测和挂载详情。
  3. 监控系统事件 :使用 dmesg -w 可以实时观察内核新产生的事件和错误,对于动态调试非常有用。
  4. 保存和分享日志 :可以将内核消息保存到文件中,便于分析或发送给他人协助调试。命令为 dmesg > messages.txt。
  5. 清除缓冲区 :在某些调试场景下,可能需要先使用 dmesg -c 清空现有日志,然后重现问题,以获得干净、相关的日志输出。

注意事项

  • 默认情况下,查看完整的 dmesg 输出可能需要 sudo 权限。
  • 除了通过 dmesg 命令查看,系统启动信息通常也会保存在 /var/log/dmesg 文件中。
  • 与系统日志服务(如 rsyslog/syslog)相比,dmesg 提供的是更底层、由内核直接产生的原始日志,两者功能互补。
相关推荐
dawnsky.liu1 分钟前
在 RHEL 中使用 goose 实现主机运维
linux·运维·aiops
碧海银沙音频科技研究院14 分钟前
基于炬芯ATS308X的BLE 无线方式离线日志传输导出功能实现
java·linux·服务器
kkkkkkkkkk_Z29 分钟前
新手自学嵌入式 | 学习日记: Linux驱动进阶 —— Platform总线与I2C子系统实战
linux·运维·学习
Android系统攻城狮31 分钟前
Linux Gstreamer深度解析之gst_audio_aggregator_set_sink_caps调用流程与实战(九十一)
linux·运维·服务器·gstreamer音视频·音视频进阶
‎ദ്ദിᵔ.˛.ᵔ₎32 分钟前
Linux线程:this指针在pthread中的解决方案
linux
tedcloud12334 分钟前
Docker Compose 部署 Memos:从安装到备份恢复
linux·开发语言·jvm·后端·docker·容器·rust
qq_3775727741 分钟前
typora install linux ubuntu
linux·ubuntu
John_Hui1 小时前
CentOS7安装Nginx
linux·服务器·nginx
qetfw1 小时前
Bash 基础:脚本执行、引号与命令替换验证
linux·开发语言·chrome·bash
怪力左手1 小时前
cuda-toolkit离线安装
linux·运维·人工智能