kdump-config show 显示“尚未准备好进行 kdump”但内存已保留

kdump-config show 显示“尚未准备好进行 kdump”但内存已保留

我正在尝试在我的 Xen domU (pv) 中设置崩溃转储。我为 VM 分配了 3G 内存,应该够用了。它有足够的磁盘空间用于 /(无需单独挂载其他目录)。

root@t-51:~# kdump-config show
DUMP_MODE:        kdump
USE_KDUMP:        1
KDUMP_SYSCTL:     kernel.panic_on_oops=1
KDUMP_COREDIR:    /var/crash
crashkernel addr: 0x2f400000
current state:    Not ready to kdump # <--- this seems to be because /sys/kernel/kexec_crash_loaded is 0

kexec command:
  no kexec command recorded
root@t-51:~# cat /sys/kernel/kexec_crash_loaded 
0
root@t-51:~# dmesg | grep crash
[    0.000000] Command line: root=UUID=0d899955-d348-43a3-9341-527293093b5e ro  quiet splash crashkernel=128M@756M $vt_handoff
[    0.000000] Reserving 128MB of memory at 756MB for crashkernel (System RAM: 2999MB)
[    0.000000] Kernel command line: root=UUID=0d899955-d348-43a3-9341-527293093b5e ro  quiet splash crashkernel=128M@756M $vt_handoff

但是从 dmesg 日志中可以看到,它确实为 crashkernel 保留了内存。为什么显示它尚未准备好?

答案1

您应该会看到服务 kdump-tools 的日志。 sudo service kdump-tools status 然后您可以根据日志来识别问题。

我也遇到了这个问题。首先我检查日志,我看到这样的日志:

Jul 15 16:38:15 generic-2-clone systemd[1]: Starting Kernel crash dump 
capture service...
Jul 15 16:38:16 generic-2-clone kdump-tools[1625]: Starting kdump-tools: 
Could not find a free area of memory of 0x6baf000 bytes...
Jul 15 16:38:16 generic-2-clone kdump-tools[1625]: locate_hole failed
Jul 15 16:38:16 generic-2-clone kdump-tools[1625]:  * failed to load kdump 
kernel.

从日志中,我猜测保留内存对于 kdump 来说不够。然后我修改了/etc/default/grub.d/kexec-tools.config,将保留内存从 128M 改为 256M。然后冷重启。

现在可以了。

答案2

您只需要启用该服务然后重新启动:

systemctl enable kdump-tools

这将使得服务在启动时启动。

相关内容