0%

RHEL9中找不到/var/log/dmesg日志文件问题

问题描述

在Rocky Linux 9 服务器上查看启动日志,发现没有/var/log/dmesg文件。

dmesg是什么?

dmesg(diagnostic messages)用于打印kernel ring buffer的所有消息。 kernel会将开机信息存储在ring buffer中,如果开机时来不及查看启动信息,可以通过dmesg命令查看。

Kernel ring buffer(内核环形缓冲区)是一种在Linux内核中使用的数据结构,用于在生产者(如硬件设备、驱动程序或内核线程)和消费者(如用户空间应用程序)之间传输数据。 这种缓冲区通常用于日志记录、性能监控、事件跟踪等场景。

RHEL9找不到/var/log/dmesg日志文件的原因

参考:https://access.redhat.com/solutions/3748981,这里摘录如下:

By design, the /var/log/dmesg file is not generated during boot. The kernel ring buffer is captured within the systemd-journal as well as /var/log/messages, via the imjournal rsyslog plugin.

翻译一下: 根据设计,在RHEL8/RHEL9中,启动期间不会自动生成/var/log/dmesg文件。 内核环形缓冲区(kernel ring buffer)的消息通常会被systemd-journa捕获,存储在/var/log/messagesjournalctl中。这种设计可以提供更现代化的日志管理方式,支持更好的搜索和过滤功能

解决方法

手动执行dmesg生成日志文件

1
dmesg > /var/log/dmesg

或者使用 journalctl命令

1
journalctl -k | tee /var/log/dmesg

参考

【1】https://en.wikipedia.org/wiki/Dmesg
【2】https://www.getpagespeed.com/solutions/the-var-log-dmesg-file-is-not-created-during-boot-for-rocky-linux-8