충돌이 발생한 커널을 부팅하기 위해 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의 경우 컴파일된 linux -4.13.16ksa가 없는 efi.signed vmlinuz(vmlinuz-4.13.0-38-generic.efi.signed)를 로드한다는 것입니다. efi 서명.
이것이 문제가 될 수 있습니까? 이 문제를 어떻게 해결할 수 있나요?