如何在 Debian 中启用内核崩溃转储?

Ana*_*dan 10 linux debian crash kernel dump

我想为我的 Debian 5.0.7 机器启用内核崩溃转储。内核版本为 2.2.26 amd64。

我该如何配置?

小智 12

您可能还想查看 Debian 的kdump-tools软件包以自动执行一些必要的启动时间步骤。

步骤大致是,

  1. sudo apt-get install kdump-tools
  2. 设置USE_KDUMP=1/etc/default/kdump-tools
  3. 添加crashkernel=128M到引导加载程序配置中给出的内核命令行(例如/etc/default/grub)。通过nmi_watchdog=1确保抓住困难的挂起也没有什么坏处。
    • 请注意,128MB 只是一个大概的数字。它需要足够大以容纳内核映像和相关联的 init ramdisk。
    • 如果您的 initram 磁盘很大,您可以通过调整来缩小它 /etc/initramfs-tools/initramfs.conf
  4. 确保您的引导加载程序配置已更新(例如sudo update-grub
  5. 确保你的内核是用,
    • CONFIG_RELOCATABLE=y
    • CONFIG_KEXEC=y
    • CONFIG_CRASH_DUMP=y
    • CONFIG_DEBUG_INFO=y
  6. 重启
  7. 验证是否加载了崩溃内核, cat /sys/kernel/kexec_crash_loaded
  8. 可选:测试所有这些是否有效,
    1. sudo sync; echo c | sudo tee /proc/sysrq-trigger
    2. 使用该crash工具查看生成的故障转储
  9. 找到一个好酒的把柄,以减轻您未来在内核调试中的痛苦。


Hen*_*nes 5

简短的回答,但是...

转到您的内核源代码(例如cd /usr/src/linux/)并配置下一个内核的选项(make menuconfig)。转到“处理器类型和功能”。启用“内核崩溃转储”。( CONFIG_CRASH_DUMP=y)

构建新内核,安装。

然后阅读这些以获取更多背景信息: Linux-Crash-HOWTO.pdflkcd utils

  • 并检查它是否已经启用:`grep CONFIG_CRASH /boot/config-$(uname -r)` (3认同)