Reboot into firmware interface on boot

This is a very unexpected and inconvenient error for me.

The computer worked fine yesterday, I updated like normal yesterday, unfortunately I don’t remember which packages were updated.

Now I only get the option to reboot into firmware interface on systemd splash screen and the computer boots into bios after that.

This is a problem, I am currently halfway through month long vacation in Vietnam, I do not have access to different computer, USB or anything of that kind. Only my phone.

Is there anything I can do except reinstall EOS when I get back home? I do have USB with EOS iso on it at home.

I haven’t been able to enable TTY or anything else during startup.

Can you download a USB thru the phone and use an app to write it to a USB you can find somewhere? Convince someone to loan you?

Theoretically you could setup the phone so the phone USB port looked like a USB drive. Don’t know any software that would do that, but it is possible with a raspberry pi zero or any linux with USB OTG capability. So maybe there is a phone app that can do that?

I know no software on phone that can write iso to a USB.

Going to change this to I don’t know about any software that I trust that can do this

I don’t know any either, I have heard that there are apps, and it is not something that is that difficult, but getting raw access to the USB might be interesting on andoid or iOS. Maybe someone else can write a USB for you?

I’ve see various pages on recovering from grub / EFI boot issues, depends on grub or systemd-boot to some extent.

You might have to enable EFI firmware shell so you can boot into that?
Boot the EFI shell and navigate around the FS*: and BLK*: devices, using cd and ls, and try and find a .efi file to run. IIRC selecting a fs/blk device is just ‘fs0:’ or might be ‘cd fs0:’

/EFI/BOOT/BOOTX64.EFI
/EFI/grub/grubx64.efi
/EFI/systemd/systemd-bootx64.efi

Won’t work if the upgrade killed your bootloader .EFI file of course, but it sounds like you aren’t getting that far.

Might be worth visiting the BIOS and make sure you still have your boot device enabled.

If the upgrade killed your grub or systemd-boot setup, that isn’t going to help much.

No good telling you that you should have been more prepared, I’m sure you will be at least have a boot USB with you next time. Lots of options for redundancy, you just have to think it is worth the hassle.

Yeah, I will be better prepared next time. This is the first time the system crashes and it is not my fault. This distro has been stable for me for over a year so I was very confident that I didn’t need backup USB.

I suspect that the bootloader is borked. I have no other selection than to reboot into firmware interface when I boot up.

Here is what happens.

Seems like your bootloader entries disappeared for some reason. You should boot into a live ISO, chroot, and run reinstall-kernels. This assumes that you have either kernel-install-for-dracut or kernel-install-for-mkinitcpio installed.

https://wiki.archlinux.org/title/chroot
Here’s a quick guide on how to use arch-chroot if you need it. Basically, the key steps are:

  1. Mount your root and esp partitions.
  2. Run arch-chroot <mount point for root partition>

Linux Boot Loader is probably systemd-boot

I didn’t see an EFI shell in the boot options.
I you can find and enable it then you might be able to at least poke around and see what lives on your EFI partition?

I thought so, will have the option to do so in August.

Sorry I can’t give more info.

The bootloader is borked, will fix this when I get home in August.

Found this: https://f-droid.org/packages/eu.depau.etchdroid/ EtchDroid, supposedly non root.

Also found drivedroid to make your phone emulate a drive, but it requires root on the phone.

If you don’t fix the laptop, maybe just enjoy the countryside : - )

I’ll just do it in August when I get home, the least hassle in my opinion.

For the record, it would be interesting to see which were the packages that you updated last. You can do this (before reinstalling :wink:) after booting with the USB installer drive.

So, if you have time to do so in August, please run this terminal command:

tail -n200 /var/log/pacman.log | eos-sendlog

and show the returned address here.

After chrooting?

But sure I’ll do that. Hoping that installing kernel and dracut through chroot again will solve my issue.

Yes.

Hope so too. :smiley:

OK, just got home after over 24 hour travel from Vietnam, and I am having slight problem with chrooting. I am following this tutorial https://discovery.endeavouros.com/system-rescue/arch-chroot/2022/12/
and at sudo cat /mnt/etc/fstab command I get

cat: /mnt/etc/fstab: No such file or directory

I have successfully mounted /dev/nvme0n1p2, at least I think I have.

To @manuel

tail -n200 /var/log/pacman.log | eos-sendlog
tail: cannot open '/var/log/pacman.log' for reading: No such file or directory

And finally

sudo mount /dev/sda1 /mnt/efi
mount: /mnt/efi: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.

Now, I am kind of WAY TOO TIRED to be working on this right now, having gone through 7 time zones in little over 24 hours and I am feeling quite jet-lagged. I’ll sign in tomorrow and see what is what.

*Whole terminal from when I started this, I might be chrooting wrong

[liveuser@eos-2023.03.06 ~]$ sudo lsblk -f
NAME        FSTYPE  FSVER     LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
loop0       squashf 4.0                                                              0   100% /run/archiso/airootfs
sda                                                                                           
├─sda1      exfat   1.0       Ventoy      BC49-03DA                                           
│ └─ventoy  iso9660 Joliet Ex EOS_202303  2023-03-06-14-54-40-00                     0   100% /run/archiso/bootmnt
└─sda2      vfat    FAT16     VTOYEFI     B228-8EFB                                           
nvme0n1                                                                                       
├─nvme0n1p1 vfat    FAT32                 93A1-A3B1                                           
└─nvme0n1p2 btrfs             endeavouros e29ffbfa-0041-486b-8fed-f4bf7422e802                
[liveuser@eos-2023.03.06 ~]$ sudo mount /dev/nvme0n1p2 /mnt
[liveuser@eos-2023.03.06 ~]$ sudo cat /mnt/etc/fstab
cat: /mnt/etc/fstab: No such file or directory
[liveuser@eos-2023.03.06 ~]$ sudo cat /mnt/etc/fstab
cat: /mnt/etc/fstab: No such file or directory
[liveuser@eos-2023.03.06 ~]$ tail -n200 /var/log/pacman.log | eos-sendlog
tail: cannot open '/var/log/pacman.log' for reading: No such file or directory

[liveuser@eos-2023.03.06 ~]$ sudo mount /dev/sda1 /mnt/efi
mount: /mnt/efi: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.

After this command you could try command

ls -l /mnt

It should show the root (/) folder contents.
If that looks OK, then you should arch-chroot to do other commands.

You are using a Btrfs filesystem for your system partition.

Before doing arch-chroot /mnt you would need to adapt your mount commands to to take account for the system’s subvolumes.

BTRFS filesystem installs

you need to know your subvol names and their associated mount points inside the system path.

Per default EndeavourOS uses this scheme:

btrfsSubvolumes:- mountPoint: /subvolume: /@- mountPoint: /homesubvolume: /@home- mountPoint: /var/cachesubvolume: /@cache- mountPoint: /var/logsubvolume: /@log

Not all subvolumes need to get mounted to use arch-chroot it needs mainly the / (@) if you only want to repair grub per example

sudo mount -o subvol=@ /dev/sdXn /mnt

sudo mount -o subvol=@log /dev/sdXn /mnt/var/log

sudo mount -o subvol=@cache /dev/sdXn /mnt/var/cache

sudo mount -o subvol=@home /dev/sdXn /mnt/home

And your ESP needs to get mounted also … as it is not inside your BTRFS scheme and using its own fat32 partition:

sudo mount /dev/sdXn /mnt/efi

where in all cases /dev/sdXn needs to be changed according to what is used on your install as partition/device path and the mount path for the ESP needs to get changed according to your installed system in case. If it is /efi you need to mount on /mnt/efi if it is /boot/efi it would be /mnt/boot/efi

Now you will be able to arch-chroot into your BTRFS system, as you can see above under Run arch-chroot to login to the installed system.

https://discovery.endeavouros.com/system-rescue/arch-chroot/2022/12/

Good morning, unbelievable how much a sleep can do for you.

@manuel and @pebcak I feel like I am getting mixed results when following your information here.

[liveuser@eos-2023.03.06 ~]$ ls -l /mnt
total 0
drwxr-xr-x 1 root root 128 May 11 13:12 @
drwxr-xr-x 1 root root 108 May 12 10:52 @cache
drwxr-xr-x 1 root root  16 May 11 13:13 @home
drwxr-xr-x 1 root root 262 Jul 15 09:53 @log
[liveuser@eos-2023.03.06 ~]$ sudo mount -o subvol=@ /dev/nvme0n1p2 /mnt
mount: /mnt: /dev/nvme0n1p2 already mounted on /mnt.
       dmesg(1) may have more information after failed mount system call.
[liveuser@eos-2023.03.06 ~]$ sudo mount -o subvol=@log /dev/nvme0n1p2 /mnt/var/log
mount: /mnt/var/log: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
[liveuser@eos-2023.03.06 ~]$ sudo mount -o subvol=@cache /dev/nvme0n1p2 /mnt/var/cache
mount: /mnt/var/cache: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
[liveuser@eos-2023.03.06 ~]$ sudo mount -o subvol=@home /dev/nvme0n1p2 /mnt/home
mount: /mnt/home: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
[liveuser@eos-2023.03.06 ~]$ sudo mount /dev/nvme0n1p2 /mnt/efi
mount: /mnt/efi: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.

I find it hard to believe that ls -l /mnt shows me the mounting points but I can’t mount any of them. This is a standart BTRFS install. I am not getting why it won’t mount.

Unmount whatever is mounted at /mnt first:

sudo umount -R /mnt

and start over following the instructions for Btrfs system.

That seems also being giving me weird behaviour

[liveuser@eos-2023.03.06 ~]$ sudo umount -R /mnt
[liveuser@eos-2023.03.06 ~]$ sudo mount -o subvol=@log /dev/nvme0n1p2 /mnt/var/log
mount: /mnt/var/log: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.

I’ll try unmounting again.