我正在尝试使用 Linux 的内核崩溃转储来启动崩溃内核。主机和崩溃内核均编译为linux-4.13.16内核。不幸的是,崩溃发生后崩溃内核无法启动。
iomem 报告为崩溃内核保留的空间,kdump 报告其已准备好进行 kdump:
28000000-37ffffff:内核崩溃
$ sudo kdump-config show
DUMP_MODE: kdump
USE_KDUMP: 1
KDUMP_SYSCTL: kernel.panic_on_oops=1
KDUMP_COREDIR: /var/crash
crashkernel addr: 0x28000000
/var/lib/kdump/vmlinuz: symbolic link to /boot/vmlinuz-4.13.16ksa
kdump initrd:
/var/lib/kdump/initrd.img: symbolic link to /var/lib/kdump/initrd.img-4.13.16ksa
current state: ready to kdump
kexec command:
/sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-4.13.16ksa root=UUID=3254c608-d885-4dfc-b20b-fa4e69564dca ro quiet splash vt.handoff=7 irqpoll noirqdistrib nr_cpus=1 nousb systemd.unit=kdump-tools.service" --initrd=/var/lib/kdump/initrd.img /var/lib/kdump/vmlinuz
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.13.16ksa root=UUID=3254c608-d885-4dfc-b20b-fa4e69564dca ro quiet splash crashkernel=384M-2G:128M,2G-:256M vt.handoff=7
使用 sysrq-trigger 触发崩溃后,它不会加载崩溃内核。
我已经使用通用内核 linux-4.8.0-36-generic 进行了测试,它可以成功运行。
系统日志文件是这里。
linux-4.8.0-36-generic 和 linux-4.13.16ksa 都有相同的 .config 文件。我能看到的唯一区别是,在启动过程中,对于 linux-4.13.0-38,它加载 efi.signed vmlinuz(vmlinuz-4.13.0-38-generic.efi.signed) ,其中编译后的 linux-4.13.16ksa没有 efi 签名。
这会是一个问题吗?我该如何解决这个问题?