使用 kdump 调试系统崩溃(20.04)

使用 kdump 调试系统崩溃(20.04)

我的笔记本电脑(戴尔 XPS 7390、i7-10710U、16 GB RAM、512 GB SSD)经常随机死机,严重到我不得不强制重启。我尝试使用 kdump 进行调试,因为硬件测试没有发现任何问题。但每当我手动触发内核崩溃(通过echo "c" > /proc/sysrq-trigger)时,我都不会在 /var/crash 中得到任何输出。系统只是冻结,必须强制关闭电源(神奇的 SysRq 键不起作用)。 的输出kdump-config show

USE_KDUMP:        1
KDUMP_SYSCTL:     kernel.panic_on_oops=1
KDUMP_COREDIR:    /var/crash
crashkernel addr: 0x
   /var/lib/kdump/vmlinuz: symbolic link to /boot/vmlinuz-5.4.0-58-generic
kdump initrd: 
   /var/lib/kdump/initrd.img: symbolic link to /var/lib/kdump/initrd.img-5.4.0-58-generic
current state:    ready to kdump

kexec command:
  /sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-5.4.0-58-generic root=UUID=ed8d53ef-c788-452b-abf5-4e3a7086891f ro quiet splash vt.handoff=7 reset_devices systemd.unit=kdump-tools-dump.service nr_cpus=1 irqpoll nousb ata_piix.prefer_ms_hyperv=0" --initrd=/var/lib/kdump/initrd.img /var/lib/kdump/vmlinuz

我的/etc/sysctl.conf文件包括

kernel.unknown_nmi_panic=1
kernel.core_pattern = /var/crash/core.%t.%p
kernel.panic=10

/etc/default/grub.d/kdump-tools.cfg

GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT crashkernel=512M-:512M"

您对哪里配置不正确有任何想法吗?或者我可以用其他方法调试随机系统冻结?谢谢!

答案1

尝试运行

kdump-config test

并增加crashkernel尺寸,但512M应该足够了。

更新/etc/default/grub.d/kdump-tools.cfg

GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT crashkernel=1024M-:768M"

然后运行

update-grub

最后尝试调用 panic:

echo 1 > /proc/sys/kernel/sysrq && echo c > /proc/sysrq-trigger

并检查日志/var/crash/

相关内容