(Posting here rather than the Ubuntu subsite because I don't think it's specifically related to Ubuntu...)
I've previously been successfully using
kexec-reboot -lr from the exceptionally useful page here.
After an upgrade from 18.04 to 20.04, running this command still reboots the system, but it now does a 'hard' reboot where it drops all the way to EFI/firmware instead of just reloading and restarting the kernel. This adds several minutes to the boot time on my server (and defeats the whole point of using this invocation...)
The command that's being run according to the verbose output of kexec-reboot is:
Running /sbin/kexec -l /boot/vmlinuz-5.4.0-54-generic --append='root=UUID=69a4d39e-361f-41e7-9ad3-866cb9dae202 ro intel_iommu=on' --initrd=/boot/initrd.img-5.4.0-54-generic
Running that command directly (i.e. not from the kexec-reboot convenience script) gives the same behavior.
I've checked syslog and dmesg for messages that seem relevant and I can't find anything, but I'm also likely not aware of all the various places I could look. Other than just the verbose flag, what other things can I use to troubleshoot this?
Update 11/26: If I manually build the kexec line as describe above and then run
kexec -e (As described here) it does indeed just boot the kernel directly. Looking at the kexec-reboot code shows that the final call there is
shutdown -r now, so I'm now trying to figure out why
shutdown -r now is different behavior than it was before...