Grub 2:2.06.r322.gd9b4638c5-1 won't boot and goes straight to the BIOS after update

Sorry again for being that illiterate! How would I know!
I just followed the steps you mentioned in your tutorial thread about converting to systemd-boot. [Tutorial] Convert to systemd-boot

You can see in findmnt --real

[limo@lenovo ~]$ findmnt --real
TARGET       SOURCE             FSTYPE     OPTIONS
/            /dev/sda2[/@]      btrfs      rw,noatime,compress=zstd:3,ssd,space_cache=v2,subvolid=256,subvol=/
├─/run/media/limo/USB_Backup
│            /dev/sdb1          btrfs      ro,nosuid,nodev,relatime,space_cache=v2,subvolid=5,subvol=/
├─/tmp/.mount_pcloudZ6RDMw
│            pcloud             fuse.pclou ro,nosuid,nodev,relatime,user_id=1000,group_id=1001
├─/home      /dev/sda2[/@home]  btrfs      rw,noatime,compress=zstd:3,ssd,space_cache=v2,subvolid=257,subvol=/
├─/var/cache /dev/sda2[/@cache] btrfs      rw,noatime,compress=zstd:3,ssd,space_cache=v2,subvolid=258,subvol=/
├─/var/log   /dev/sda2[/@log]   btrfs      rw,noatime,compress=zstd:3,ssd,space_cache=v2,subvolid=259,subvol=/
└─/efi       /dev/sda1          vfat       rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,short
[limo@lenovo ~]$ 

So,…?
How should I proceed?
Are these following steps OK?

It is mounted at /efi

They are still not OK for the same reason I told you above. You need to replace “esp” with your actual ESP location. In this case, /efi

So instead of:

it should be

sudo grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

changing to –efi-directory=/efi
Right?

Yes, that looks better

1 Like

OK, see you - in a few minutes- after I boot in Grub safe and alive (hopefully).
Just for the record I did:

yay -Rc kernel-install-mkinitcpio
[limo@lenovo ~]$ sudo grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
sudo: grub-install: command not found
yay grub-install
sudo grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
[limo@lenovo ~]$ yay grub-install
[limo@lenovo ~]$ sudo grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
sudo: grub-install: command not found
[limo@lenovo ~]$ grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
bash: grub-install: command not found
[limo@lenovo ~]$ 

I messed things up?
Trying again

yay grub

Then selected 1, went fine I think

[limo@lenovo ~]$ sudo grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
Installing for x86_64-efi platform.
Installation finished. No error reported.
[limo@lenovo ~]$ 

sudo grub-mkconfig -o /boot/grub/grub.cfg

Rebooting! :worried:

Rebooted!
Got a black screen with a title Grub…
and only one entry with text “*UEFI Firmware Settings”

I can get another menu (as if pressed F12 during restart) with some options:
-Grub (which gives the screen described above)

  • SSD…
  • Lan,…

I could come back here selecting second option (boot from SSD) which booted me from systemd-boot as before!

What did I do wrong?

I got

[limo@lenovo ~]$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
[limo@lenovo ~]$ 

Reading the Wiki I uncommented GRUB_DISABLE_OS_PROBER=false

What’s wrong?

You don’t need to enable OS_PROBER unless you are dual-booting. If you aren’t, it is better to keep it disabled.

Can you share:

ls /etc/grub.d

[limo@lenovo ~]$ ls /etc/grub.d
00_header 10_linux.bak 30_os-prober 30_uefi-firmware 40_custom README
10_linux 20_linux_xen 30_os-prober.bak 35_fwupd 41_custom
[limo@lenovo ~]$

Hashed it as it was before in file /etc/default/grub

UPDATE:
Does this give a clue?

[limo@lenovo ~]$ grub-install
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
[limo@lenovo ~]$ 


No, I told you that would happen above and described exactly how to solve it.

Also, that command needs sudo.

That being said, it isn’t a grub-install issue, it is a grub-mkconfig issue.

It is possible that grub is incapable of finding your ESP. Try mounting your ESP at /boot/efi

[limo@lenovo ~]$ sudo mount /boot/efi
[sudo] password for limo: 
mount: /boot/efi: can't find in /etc/fstab.
[limo@lenovo ~]$ 

Sorry I am causing you a lot of headache.

If you want to do it that way, you have to modify /etc/fstab first.

The command is missing which drive’s partition (/dev/sda1) to mount at /boot/efi:

sudo mount /dev/sda1 /boot/efi

This probably already was what didn’t work before, when trying to mount /dev/sda1 at /efi…

1 Like

I don’t mind doing it anyway! This is the way I learnt here before.

[limo@lenovo ~]$ sudo mount /dev/sda1 /boot/efi
mount: /boot/efi: mount point does not exist.
       dmesg(1) may have more information after failed mount system call.
[limo@lenovo ~]$ 

So then,
sudo mount /dev/sda1 /efi

I have

├─/var/log   /dev/sda2[/@log]   btrfs      rw,noatime,compress=zstd:3,ssd,space_cache=v2,subvolid=259,subvol=/
└─/efi       /dev/sda1          vfat       rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,short

I got now

[limo@lenovo ~]$ sudo mount /dev/sda1 /efi
mount: /efi: /dev/sda1 already mounted on /efi.
       dmesg(1) may have more information after failed mount system call.
[limo@lenovo ~]$