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
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!
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…
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 ~]$