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 提供的是更底层、由内核直接产生的原始日志,两者功能互补。
相关推荐
杜子不疼.1 分钟前
【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛
linux·服务器·前端
CSCN新手听安5 分钟前
【linux】网络基础(三)TCP服务端网络版本计算器的优化,Json的使用,服务器守护进程化daemon,重谈OSI七层模型
linux·服务器·网络·c++·tcp/ip·json
普马萨特16 分钟前
GPS、WiFi、基站定位:为什么在 Agent 时代不仅不受影响,反而更重要
linux·运维·服务器
予枫的编程笔记41 分钟前
【Linux入门篇】Ubuntu和CentOS包管理不一样?apt与yum对比实操,看完再也不混淆
linux·人工智能·ubuntu·centos·linux包管理·linux新手教程·rpm离线安装
RisunJan1 小时前
Linux命令-lpr(从命令行提交文件到打印机打印)
linux·运维·服务器
历程里程碑1 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun1 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
codingWhat1 小时前
Linux 入门指南
linux
Y1rong1 小时前
linux之信号量
linux
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][tty]sysrq
linux·笔记·学习