centos dmesg日志中与系统更新相关的信息
一、dmesg能体现与更新直接相关的变化
-
新内核启动信息:重启到更新后的内核时,dmesg 首部会出现类似“linux version … (gcc …) #1 smp …”的内核版本行,明确显示已加载的新内核版本与构建信息。这是判断内核更新是否生效的最直接证据。示例片段:linux version 3.10.0-1160.11.1.el8.x86_64 … #1 smp mon dec 13 17:21:42 utc 2021。该信息通常位于本次启动的 dmesg 输出最前面。
-
驱动与硬件初始化变化:内核或驱动更新后,设备探测、模块加载与初始化顺序可能改变,dmesg 会出现新驱动的“注册/初始化/探测成功或失败”的日志,以及存储、网卡等设备的重新识别信息(如 scsi/sd、eth 设备的探测与链路状态变化)。这类信息有助于确认更新是否带来驱动层面的行为差异。
-
错误、警告与内核“污点”:若更新引入兼容性或稳定性问题,dmesg 可能出现 err/warn 级别消息,甚至 oops/panic 与 “tainted” 标记(表示内核因专有/外部模块等原因进入受污染状态)。这些提示对定位更新后的异常非常关键。
二、dmesg通常不直接包含的内容
- 软件包级变更清单:诸如“哪些 rpm 包被安装/升级/回滚”的明细属于用户空间的包管理日志(如 yum/dnf 的历史与事务日志),并不写入内核环形缓冲区,因而不在 dmesg 中体现。需要查看更新事务时应查询包管理日志或系统日志的用户空间记录。
三、如何快速定位与更新相关的内核日志
- 查看本次启动的内核版本行:dmesg | head -n 20(关注 “linux version … #1 smp …” 行是否对应新版本)。
- 仅看错误与警告:dmesg -l err,warn(快速筛查更新后是否引入异常)。
- 查看易读时间戳并滚动跟踪:dmesg -t -w(便于观察设备探测与模块加载的时间线)。
- 按关键字聚焦设备与驱动:例如 dmesg | egrep “sd|eth|usb|nvidia|i915”(分别对应存储、网卡、usb、显卡等常见更新点)。
- 对比两次启动的差异:保存更新前后两次的 dmesg 快照(如 dmesg > dmesg.before 与 dmesg > dmesg.after),再用 diff 比对,定位新增/变更的探测与错误信息。
四、版本差异与日志持久化提示
- 在 centos 8 及后续版本,系统启动时的内核环形缓冲区内容通常由 systemd-journal 捕获,并通过 rsyslog/imjournal 写入 /var/log/messages;传统文件 /var/log/dmesg 可能不再默认生成。因此,除了 dmesg 命令外,也可在 /var/log/messages 或通过 journalctl 检索本次与上次启动的内核日志(如 journalctl -b 与 journalctl -b -1)。