我想为我的 Debian 5.0.7 机器启用内核崩溃转储。内核版本是 2.2.26 amd64。
我该如何配置它?
答案1
你可能还想看看 Debian 的kdump-tools
包来自动执行一些必要的启动时步骤。
步骤大致如下,
sudo apt-get install kdump-tools
- 设置
USE_KDUMP=1
/etc/default/kdump-tools
- 添加
crashkernel=128M
到引导加载程序配置中给出的内核命令行(例如/etc/default/grub
)。传递它也不会有什么坏处nmi_watchdog=1
,以确保能捕获到硬挂起。- 请注意,128MB 只是一个大概的数字。它必须足够大才能容纳内核映像和相关的 init ramdisk。
- 如果你的 initram 磁盘很大,你可以通过调整来缩小它
/etc/initramfs-tools/initramfs.conf
- 确保您的引导加载程序配置已更新(例如
sudo update-grub
) - 确保你的内核是使用
CONFIG_RELOCATABLE=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_DEBUG_INFO=y
- 重启
- 验证崩溃内核是否已加载,
cat /sys/kernel/kexec_crash_loaded
- 选修的:测试所有这些是否有效,
sudo sync; echo c | sudo tee /proc/sysrq-trigger
- 使用该
crash
工具查看生成的崩溃转储
- 找一杯好威士忌来缓解你将来内核调试的痛苦。
答案2
简短的回答,但是...
转到内核源代码(例如cd /usr/src/linux/
)并配置下一个内核的选项(make menuconfig
)。转到“处理器类型和功能”。启用“内核崩溃转储”。(CONFIG_CRASH_DUMP=y
)
建立新内核,并安装。
然后阅读这些内容以获取更多背景信息: Linux-Crash-HOWTO.pdf和lkcd 实用程序