Exit_boot() failed!

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.

Seems like somehow the boot partition maybe didn’t write correctly to your HDD. Might have to reinstall

Same problem here on a VM. Tried to fix that using the install iso but -no luck- same result. The latest ISO do not boot.

I was able to boot by hitting “space” at the boot and choosing an older kernel.

secure boot should be enabled in bios using other os not windows uefi mode Clear Linux uses secure boot

This is not correct. Clear Linux does not have secure boot signing out of box in the current state unless you’re signing some parts yourself.

The issue reported here seems to be a bug in the newest release as we’re seeing multiple reports across IRC, GitHub, and here.

Yes tou are right I use Clear Linux on an ASUS Z170 motherboard no problem, the bios gives me the option of using Microsoft Secure Boot or other OS which is what I use, and it gives me opitimized functions when booting but not Microsoft Secure Boot.

Looks like an issue with the system bios after enabling a kernel flag that is sensitive to hardware behavior. We are looking at potential resolutions for impacted systems.

@bdawg the USB probably works because it is using an older kernel than one that got installed.
There are more details on the issue and a workaround here:

For reference, this is being tracked on GitHub here:

I think its used the kernel from EFI partition not from USB.

berne@clr-513a74aa1080450cbd5fc773fcc467dc~/Documents/clearlinux $ ls -l /boot/EFI/org.clearlinux/
total 41792
-rwxr-xr-x 1 root root  1196031 Apr  7 16:01 bootloaderx64.efi
-rwxr-xr-x 1 root root  3022848 Apr  7 10:35 freestanding-00-intel-ucode.cpio
-rwxr-xr-x 1 root root 23657436 Apr  7 10:35 freestanding-clr-init.cpio.gz
-rwxr-xr-x 1 root root    15328 Apr  7 10:35 freestanding-i915-firmware.cpio.xz
-rwxr-xr-x 1 root root    81256 Apr  8 13:11 initrd-org.clearlinux.native.5.6.2-932
-rwxr-xr-x 1 root root 14728800 Apr  8 13:11 kernel-org.clearlinux.native.5.6.2-932
-rwxr-xr-x 1 root root    92608 Apr  7 16:01 loaderx64.efi
berne@clr-513a74aa1080450cbd5fc773fcc467dc~/Documents/clearlinux $ uname -a
Linux clr-513a74aa1080450cbd5fc773fcc467dc 5.6.2-932.native #1 SMP Mon Apr 6 14:04:15 PDT 2020 x86_64 GNU/Linux
berne@clr-513a74aa1080450cbd5fc773fcc467dc~/Documents/clearlinux $ swupd bundle-list | grep -i kernel
Error: Failed to retrieve 32780 MoM manifest
Warning: Could not determine which installed bundles are experimental

 - kernel-install
 - kernel-native
berne@clr-513a74aa1080450cbd5fc773fcc467dc~/Documents/clearlinux $ swupd bundle-info kernel-native
Error: This program must be run as root..aborting

berne@clr-513a74aa1080450cbd5fc773fcc467dc~/Documents/clearlinux $ sudo swupd bundle-info kernel-native
 Info for bundle: kernel-native

Status: Explicitly installed

Bundle kernel-native is up to date:
 - Installed bundle last updated in version: 32780
 - Latest available version: 32760

Bundle size:
 - Size of bundle: 168.62 MB
 - Size bundle takes on disk (includes dependencies): 677.03 MB

uname matches what’s in EFI partition.

I see that the kernel-native bundle latest available version was rolled back, as I’m on a later version than is available now.

Thanks for the GitHub references, at the time I couldn’t find anything.

How to downgrade?
Can a downgrade be done on a bundle level or is the whole OS tied to version?

 sudo swupd update --verbose --version 32760
Update started
Error: Requested version for update (32760) must be greater than current version (32780)
Update failed

It’s preferable to update to the newer version once it becomes available (today probably).

Also when I was investigating the EFI partition to check the settings, the system automatically removed the older kernel, and all related files, the loader config etc. So that only the latest kernel was left. I think this is too aggressive. Considering that the current kernel and configuration wouldn’t boot. It was just lucky that I found it would with the right USB attached.

I think the default should leave the previous kernel, related files, and configuration, so that the user can try booting it if the latest has problems.

Is there a way to change the number of previous configurations that will be kept?

This is actually the default on Clear Linux. I’m not sure what happened in your case but that shouldn’t happen with updates after a system is installed.