使用kump调试内核崩溃
引言
Kump是一项在发生内核崩溃时创建崩溃转储的服务。它使用kexec引导到辅助内核(称为捕获内核),然后将内核内存的内容(称为崩溃转储或vmcore)导出到文件系统。然后可以分析vmcore的内容,找出内核崩溃的根本原因。
配置kump需要设置 crashkernel
内核参数,并启用kump system d服务。在引导第一个内核时,必须为崩溃的内核保留内存。 crashkernel=auto
通常不会在Fedora CoreOS上保留足够的内存,因此建议指定 crashkernel=300M
。
默认情况下,vmcore将保存在 /var/crash
。还可以将转储写入本地系统上的其他位置,或通过编辑通过网络发送转储 /etc/kdump.conf
。有关其他信息,请参阅 kdump.conf(5)
中的评论 /etc/kdump.conf
和 /etc/sysconfig/kdump
。
通过Ignition配置kump
KDUMP配置示例
variant: fcos
version: 1.4.0
kernel_arguments:
should_exist:
- 'crashkernel=300M'
systemd:
units:
- name: kdump.service
enabled: true
在初始资源调配后配置kump
设置crashcore参数
+
sudo rpm-ostree kargs --append='crashkernel=300M'
更多信息 关于如何通过以下方式修改卡格斯 rpm-ostree
。
启用kump系统d服务。
+
sudo systemctl enable kdump.service
重新启动系统。
+
sudo systemctl reboot
强烈建议在设置后测试配置 kdump 服务,特别注意为崩溃内核保留的内存量。有关如何测试kump是否已正确武装以及如何分析转储的信息,请参阅 Fedora的kump文档 和 Kump上的Linux内核文档 。
|