MY WAY TO SOLVE THE PROBLEM
! FROM LIVE USB !
OPEN TERMINAL | >_
[ PREPARATION ] ::
0. > sudo su
> pacman -Sy grub efibootmgr
1. > mount /dev/nvme0n1p2 /mnt # <-- 'nvme0n1p2' - my root partition on SSD (may differs, depends on the type and name of your device)
2. > garuda-chroot /mnt/@
# !!! When into chroot (you are root and don't need sudo there)
3. > mount /dev/nvme0n1p1 /boot/efi # <-- 'nvme0n1p1' - my boot partition on SSD (may differs, depends on the type and name of your device)
[ GRUB-ISTALL ] ::
4. > grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=garuda --recheck
5. > update-grub # <-- DON'T FORGET.
!!! ERR ::
Could not prepare Boot variable: No space left on device
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.
In case of ERR, follow 6, 7, 8 and 9.
Sometimes when youโre done with 9, you may need to repeat 0 to 5 again, after rebooting the system.
[ OPTIONS ] :: { In case of ERR message }
6. > grub-install --target=x86_64-efi --no-nvram --removable
7. > rm /sys/firmware/efi/efivars/dump-* # <-- VERY IMPORTANT
:: EDIT BOOTLOADER ENTRIES ::
( https://linuxconfig.org/how-to-manage-efi-boot-manager-entries-on-linux )
Now you can check how many entries are there in your boot loader :
> efibootmgr
[ CREATE ] :: { Creates an entry in boot manager }
8. > sudo efibootmgr --create --disk=/dev/nvme0n1p1 --part=1 --label="GarudaSSD" --loader='EFI\garuda\grubx64.efi' # ( \EFI !!! - backslash)
9. > update-grub # <-- DON'T FORGET.
[ DELETE ] :: { If you want to delete some entries from boot manager }
> sudo efibootmgr -b 0009 -B
# > sudo efibootmgr --delete-bootnum{-b} --delete{-B} # <-- DOESN'T WORK ! ! !
> update-grub # <-- DON'T FORGET.
[ BOOT ORDER ] :: { If you want to reorder entries in boot manager }
> sudo efibootmgr -o 0011, 0012, 0000, 0001 # <-- This is an example. You can applay your own order.
[ TIMEOUT ] ::
> sudo efibootmgr -t 5 # <-- Set timeout ( in seconds )
[ FINAL ] ::
> exit # <-- To exit from sudo su
> exit # <-- To exit from sh { or any other shell }
> exit # <-- To exit from terminal
>>> reboot the system...