Personally, I would choose gparted
to do the partitioning. If you want to use Linux, you should really start getting accustomed to its basic toolset.
2 Likes
I also noticed that there is a strange esp flag in the btrfs system partition (post #17).
As far as I understand:
- The efi system partition
/dev/sdb2
is/was the one used for the "old"/dev/sdb
disk, used in the past for windows 10. - Now, with the "new"
/dev/sdc
disk, windows 10 was reinstalled there. I think it was installed in legacy mode (on an MBR in sdc?). Maybe this could be confirmed withsudo fdisk -l /dev/sdc
, checking ifDisklabel type: dos
. - A first option could be to install the grub in the "old"
/dev/sdb2
. I don't know if this is possible, I think so, but at that point, I don't know if the os-prober will detect the windos installation on sdc, to show it in the GRUB. This is something that could be tried. The downside would be that probably the intention is to use now the "old" sdb only for data storage? - A second option could be to try to install the GRUB in Legacy/BIOS with
grub-install /dev/sdc
- The best option would be of course to do everything from scratch in sdc: partitioning with Gparted in GPT creating an EFI system partition, a partition for windows and one for Garuda; install windows on its partition and then Garuda on its own partition...
I know, I'm a little lost... maybe there's something simple I'm missing?
PS: But I don't think we can and should go much further. In the end this is an issue caused by dual booting, which is unsupported...
A few options are listed, maybe others will come, but that's it from my side.
4 Likes
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...