安装内核崩溃转储实用程序(需要重新启动)

安装内核崩溃转储实用程序(需要重新启动)

我的笔记本电脑设置为媒体服务器 - 当它通过 HDMI 电缆插入电视启动时,它通常会出现内核恐慌(但并非总是如此)。

内核崩溃是:

在此处输入图片描述

有什么想法吗?我正在运行 Ubuntu 13.04,但在 12.04 和 12.10 上也发生了同样的情况。

答案1

我建议在内核崩溃时保存内核崩溃转储,以便找出崩溃的根本原因。

Ubuntu 依赖于kexec生成内核崩溃转储。

它是如何工作的? =>当内核崩溃发生时,内核依靠 kexec 机制在系统启动时分配的内存中快速重新启动内核的新实例(见下文)。这允许现有内存区域保持不变,以便安全地将其内容复制到存储中。

安装内核崩溃转储实用程序(需要重新启动)

sudo apt-get install linux-crashdump

确认

1. 启动参数

cat /proc/cmdline 
BOOT_IMAGE=/vmlinuz-3.8.0-29-generic root=/dev/mapper/ubuntu-root ro crashkernel=384M-2G:64M,2G-:128M splash quiet vt.handoff=7

意思是

  • 如果 RAM 小于 384M,则不保留任何内容(这是“救援”情况)
  • 如果 RAM 大小在 386M 至 2G 之间(不含),则保留 64M
  • 如果 RAM 大小大于 2G,则保留 128M

注意:crashkernel=384M-2G:64M,2G-:128M这可能会导致 RAM 小于 2GB 的系统出现问题

重启后第二次验证

cat /sys/kernel/kexec_crash_loaded

如果为 1 => 表示崩溃内核已加载,如果为 0,则表示出现了问题。

也可以通过运行以下命令来加载崩溃内核:sudo /etc/init.d/kdump start

kdump-tools注意:自 13.04 Raring 起,通过运行修改后可以使用新机制实现相同的行为/etc/default/kdump-tools(请参阅特定于版本的说明):sudo kdump-config load

保存崩溃转储

/proc/sys/kernel/sysrq通过按 +c(需要为 1)或echo c | sudo tee /proc/sysrq-trigger(与 相同echo c > /proc/sysrq-trigger)可以导致崩溃。

如果一切正常,应该会有一些延迟(取决于内存大小)。然后系统会再次重新启动进入正常模式。完成后,系统将重新启动到其正常运行模式。内核崩溃转储文件可以在 / 目录中找到var/crash

请参阅 Ubuntu 服务器 =>内核崩溃转储

检查崩溃转储參考 => 崩溃转储方法

相关内容