I recently installed Clear Linux (Desktop). I’m running the latest version 32780.
Linux Kernel 5.6.2-932.native #1 SMP Mon Apr 6 14:04:15 PDT 2020 x86_64 GNU/Linux.
Lenovo ThinkPad X1 Carbon (7th Gen).
When I power on the machine or reboot, I get an error:
exit_boot() failed! efi_main() failed!
If I insert the USB with the installer media, then it will boot successfully.
The boot order is Linux Bootloader, followed by USB. So it is booting off the internal HDD (SSD).
Why does having the USB stick make a difference?
I’d like to be able to boot without any external USB sticks plugged in.
When booted, I ran
swupd diagnose and
swupd verify --picky, it came back clean. Actually verify deleted some
.uuid files in some font directories but that’s it.
I mounted the EFI partition and looked at the boot conf etc, they looked correct, the root=UUID= matched the partition with LUKS, and the rd.luks.uuid= matched the LUKS volume.
I changed the timeout with
clr-boot-manager and I can see that the Linux bootloader is running. Its when the kernel starts that it crashes.
Googling I found that the error messages are from the kernel: https://elixir.bootlin.com/linux/latest/source/arch/x86/boot/compressed/eboot.c
Currently Secure Boot is disabled.
If I plugin a different USB, one with rEFInd on it, if I leave boot order default HDD, I get the exit_boot failed error. If I boot rEFInd, it finds the Linux Bootloader, some other bootloader thing related to it, and the Linux Kernel (Clear Linux). If I try to boot any of these via rEFInd, they fail, I get the
exit_boot() failed() error.
How can I fix this?
Or how can I troubleshoot it?
It seems weird that booting off the HDD works when the right USB is plugged in, and fails if a different USB is plugged in, or none.
It would be helpful if exit_boot() gave a more verbose error message, so you knew which bit failed and maybe why.