Ubuntu - 为什么 /var/log/dmesg 会在启动后停止更新?不显示控制台显示的 panic/cpu_hung 错误

Tom*_*m G 4 linux ubuntu logging

所以我在主机上有一个 Ubuntu 10.04 安装虚拟机。最新的 2.6.38-15-server 内核。/var/log/dmesg 仅显示启动,但之后将停止记录。它不会显示我正在尝试排除故障的 trace/cpu_hung 错误。/var/log/dmesg.0 , dmesg.1 什么都没有 - 我对崩溃期间显示在控制台上的文本进行了字符串搜索,并且在 /var/log/* 的任何地方都没有记录任何内容。

由于 dmesg 中没有显示任何内容,我必须致电提供商并要求他们截取控制台的屏幕截图。

为什么 /var/log/dmesg 不记录内核恐慌之类的?

Pie*_*ier 7

无论您是否修复启动时间后的内核日志记录都无助于内核恐慌消息。当您的内核崩溃时,它会停止调度,因此您的日志守护进程将永远不会写下内核消息。如果您想获取这些信息,您可以查看kdump完整的内核核心转储和/或netconsole内核模块,以通过 UDP 将内核消息发送到远程syslog服务器。

至于让内核消息进入/var/log/dmesg过去的启动时间但在严重的内核崩溃之外,尝试在/etc/syslog.conf(或/etc/rsyslog.conf如果使用rsyslog)中包含这样的内容:

kern.* /var/log/dmesg
Run Code Online (Sandbox Code Playgroud)

对于rsyslog,该文件还必须包含:

$ModLoad imklog.so
Run Code Online (Sandbox Code Playgroud)

如果您正在使用syslog-ng,请告诉我,覆盖起来会有点棘手。