Cannot boot after update (again)

Hi y’all,

(I’ve created this thread with the same title as my last one as this question is closely related to that one)

After updating a laptop of mine with EndeavourOS installed in it, I cannot boot. The boot manager shows only one entry - 'Reboot to Firmware Interface '.

My attempt at fixing it (in steps)-

  1. Boot through live usb.
  2. Run lsblk, identify partitions to mount.
  3. Mount root partition to /mnt/arch/.
  4. Mount efi partition to /mnt/arch/efi
  5. Run ‘sudo arch-chroot /mnt/arch/ /bin/bash’
  6. Within chroot, run ‘pacman -Syu’, then ‘bootctl install’, then ‘bootctl update’.
  7. Then run ‘reinstall-kernels’.

I get the following error after this -
"
Warning: errors were encountered during the build. The image may not be complete.
/usr/lib/kernel/install.d/50-mkinitcpio-fallback.install failed with error status 1.
"
7. Then run “mkinitcpio -P”.

I get this error -
"
ERROR: specified kernel image does not exist: ‘/efi/b27…/6.4.10-arch1-1/linux’
"

I’m lost as to where the issue is from. I tried to reinstall the kernels using Pacman too, that didn’t help.

Any help is much appreciated! Thank you!

Please post the output of the following commands from the live session:

sudo parted -l
efibootmgr

This may give some initial info about your system for anyone able to help to have some ideas.

EndeavourOS does not use mkinitcpio anymore.
If your installation media was rather recent and you followed some guides telling you to install mkinitcpio, that’s the cause why you are having issues.

if your installation media was rather old, you need other guides to chroot in. The one you mentioned in your first post was written for dracut.

2 Likes

Output of sudo parted -l

Model: SanDisk Dual Drive (scsi)
Disk /dev/sda: 31.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size   Type     File system  Flags
 2      1940MB  2060MB  120MB  primary  fat16        esp


Model: SAMSUNG MZVL21T0HCLR-00BH1 (nvme)
Disk /dev/nvme0n1: 1024GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  1075MB  1074MB  fat32                 boot, esp
 2      1075MB  323GB   322GB   ext4
 3      323GB   990GB   667GB   ext4
 4      990GB   1024GB  34.4GB  linux-swap(v1)        swap

Output of efibootmgr

BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0000,0003,0004,0001
Boot0000* Linux Boot Manager	HD(1,GPT,2ee7d217-9eaf-ef47-af0d-8762de3906b3,0x800,0x200000)/File(\EFI\systemd\systemd-bootx64.efi)0400000049535048
Boot0001  USB NETWORK BOOT:  	PciRoot(0x0)/Pci(0x14,0x0)/USB(12,0)/MAC(0c37968f16f4,0)/IPv6([::]:<->[::]:,0,0)4eac0881119f594d850ee21a522c59b21b10020049535048
Boot0003* SanDisk Dual Drive 4C531001560911113434	PciRoot(0x0)/Pci(0x14,0x0)/USB(3,0)4eac0881119f594d850ee21a522c59b20980010049535048
Boot0004  USB NETWORK BOOT:  	PciRoot(0x0)/Pci(0x14,0x0)/USB(12,0)/MAC(0c37968f16f4,0)/IPv4(0.0.0.00.0.0.0,0,0)4eac0881119f594d850ee21a522c59b21b08020049535048

I’m sorry to ask more. But, I cannot find the older guide. Could you point me towards it?

My iso live usb version → VERSION=2023.03.26

As mentioned further above in the thread, recent EnOS installations use dracut as default tool for creating initramfs images.

Understanding reinstall-kernels

The script reinstall-kernels both regenerate the initrds and create/update the boot entries. It works with both dracut and mkinitcpio as long as you have either kernel-install-for-dracut(The default) or kernel-install-mkinitcpio(AUR) installed.

https://discovery.endeavouros.com/installation/systemd-boot/2022/12/

For reinstall-kernels to work, you would need

either:

kernel-install-for-dracut for dracut

or:

kernel-install-mkinitcpio for mkinitcpio

Have you replaced dracut with mkinitcpio in your system?

Yes. I replaced dracut with mkinitcpio.

Edit:
But, I get this when I run yay -S kernel-install-mkinitcpio

-> Avoid running yay as root/sudo.
AUR Explicit (1): kernel-install-mkinitcpio-1.5-1
:: (0/1) Downloaded PKGBUILD: kernel-install-mkinitcpio
 -> error fetching kernel-install-mkinitcpio: System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down 
	 context: exit status 1

And I get this when I run yay -S kernel-install-for-dracut

-> Avoid running yay as root/sudo.
Sync Explicit (1): kernel-install-for-dracut-1.8-1
resolving dependencies...
looking for conflicting packages...
:: kernel-install-for-dracut and mkinitcpio are in conflict. Remove mkinitcpio? [y/N] 

Did you install kernel-install-mkinitcpio from AUR then?
This is what is needed for the command reinstall-kernels to work.

If you want to replace mkinitcpio with dracut, just run pacman -S kernel-install-for-dracut in chroot.

Then answer y when asked: Remove mkinitcpio? [y/N]

Afterwards, try reinstall-kernels again.

It looks to me like you need to reinstall your kernel(s).

From the arch-chroot, try reinstalling your kernels.

In this situation, you should not be running bootctl install or bootctl update.

They have tried it already, it seems:

:thinking:

Then we need to see the full output from pacman -S linux linux-headers so we can see what is going wrong.