Loading BIOS (Grub1) endlessly after system update ussing Garuda Assistant

Time to recommend rEFInd:
rEFInd is a Bootloader such as Grub, but it's not broken and equally as good imo.

I find that rEFInd is easier to fix (refind-install), easier to maintain (it detects pretty much everything automatically), has more useful features (memtest, uefi shell integration and allows for usb boot) and looks much better than grub (google the themes). It even has snapper backup boot support. On top of that it's much harder to break, as it only fails to boot specific entries if they are wrong, and doesn't need rebuilding the config like grub does (update-grub). The config file has thorough documentation and explains every setting in reasonable detail.

To get it, install refind from the arch repos. Then run refind-install. You can then just reboot your system which will then greet you with refind. By default it detects all installed OS' and allow you to choose what you want to boot. The first entry (as the label sais) is probably your garuda drive. The second entry is probably grub, which rEFInd detects, too. just ignore that or select it and press delete to hide it. (You can always unhide it later).

If you want to configure it, the config file is located in /boot/efi/EFI/refind/refind.conf
In case you want to be able to boot into your btrfs backups, then the package refind-btrfs is the solution. You can find it's config file at /etc/refind-btrfs.conf (You can test your config via sudo refind-btrfs.

The Arch Wiki, even though intimidating at first is probably a good start if you want to configure any of refind: rEFInd - ArchWiki

my refind.conf: https://server.chonkyrabbit.eu/lettermbox/o2ar

my refind-btrfs.conf:https://server.chonkyrabbit.eu/lettermbox/3du7

Whenever grub-update is executed, the bootloader will be reset to it. To make sure you stick with refind, runn refind-install after a grub or kernel update.

I hope this helps!

2 Likes

thanks for advice!

Question: is it save to completely erase GRUB from my computer after I installed rEfind?

when I restarted the system, it didn’t greet me with refind. It still takes me to GRUB, and I need to go through the F12 boot menu to access the refind. But if I have to manually press F12 and go to bootloader menu, then I might as well just directly select “Garuda” instead of picking refind. Am I doing something wrong?

No, it is best to leave it alone because it has dependency relationships with some other Garuda packages.

You need to set rEFInd as the primary/first boot option in your BIOS boot order, or with efibootmgr.

2 Likes

refind-install does that too if I remember correctly. @amab8901 did you update your system afterwards by any chance?

nope, I didn't update my system afterwards. Just refind-install and directly afterwards restarted computer. I'll try doing sudo pacman -Sy first to see if it works better.

EDIT: nope. I tried restarting computer both with and without preceding sudo pacman -Sy (I ran refind-install as the last command before reboot in both cases). I still don't get greeted by refind.

Also, after I installed refind, my BIOS menu is unavailable. When I press the F2 BIOS key during boot, it gets stuck in a blank screen and even ctrl+alt+delete doesn't restart the boot - but pressing the power button still works for rebooting.

Your issue makes no sense to me.

Did you run refind-install with root?

yes, I ran sudo refind-install, and here is the output:

[amab@amab-aspirea31556 ~] $ sudo refind-install
[sudo] password for amab:          
ShimSource is none
Installing rEFInd on Linux....
ESP was found at /boot/efi using vfat
Found rEFInd installation in /boot/efi/EFI/refind; upgrading it.
Installing driver for btrfs (btrfs_x64.efi)
Copied rEFInd binary files

Notice: Backed up existing icons directory as icons-backup.
Existing refind.conf file found; copying sample file as refind.conf-sample
to avoid overwriting your customizations.

An existing rEFInd boot entry exists, but isn't set as the default boot
manager. The boot order is being adjusted to make rEFInd the default boot
manager. If this is NOT what you want, you should use efibootmgr to
manually adjust your EFI's boot order.
Creating new NVRAM entry
rEFInd is set as the default boot manager.
Existing //boot/refind_linux.conf found; not overwriting.

Installation has completed successfully.

Afterwards, when I reboot, I'm still greeted with GRUB rescue just like before

download (1)

2 Likes

What is the output of efibootmgr?

2 Likes

efibootmgr gives the following output:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0001,0002,2001,2002,2003,0000
Boot0000* garuda	HD(1,GPT,ac07a783-5ec9-224e-a440-42dd28a56f2d,0x1000,0x82000)/File(\EFI\garuda\grubx64.efi)
Boot0001* rEFInd Boot Manager	HD(1,GPT,ac07a783-5ec9-224e-a440-42dd28a56f2d,0x1000,0x82000)/File(\EFI\refind\refind_x64.efi)
Boot0002* HDD0: KINGSTON RBUSNS8154P3256GJ1	PciRoot(0x0)/Pci(0x1d,0x4)/Pci(0x0,0x0)/NVMe(0x1,00-26-B7-68-3F-A8-06-D5)/HD(1,GPT,ac07a783-5ec9-224e-a440-42dd28a56f2d,0x1000,0x82000)RC
Boot2001* EFI USB Device	RC
Boot2002* EFI DVD/CDROM	RC
Boot2003* EFI Network	RC

I suspect that KINGSTON refers to the broken GRUB bootloader since it was previously on first spot before I moved the rEFInd into 1st spot

Hmm, that is puzzling. Are you sure the boot order is not being set in the BIOS menu?

You can try deactivating the broken boot entry:

sudo efibootmgr -A -b 0000
1 Like

0000 refers directly to garuda. garuda is the option I choose in my boot menu (F12) when bypassing GRUB to access the OS. So I'm worried that perhaps sudo efibootmgr -A -b 0000 may result in garuda being unaccessible both directly and through rEFInd boot manager and also through boot menu. Is there a way to deactivate it only temporarily so that it automatically gets restored to previous state after the test?

0000 is the GRUB installed from Garuda, not Garuda itself, so if you Press F12 at boot you shouldn't select it.
You should have been able to reach rEFInd without pressing anything at boot, since it's the first in the order. That's the strange point.
Furthermore, sudo efibootmgr -A -b 0000 just sets that entry inactive (-A sets inactive, -a sets active, -B deletes and is not used there, see man page), so there is no risk in that.

3 Likes

I typed this: sudo efibootmgr -A -b 0000 , and here is the output:

efibootmgr: Boot entry 0 not found
Could not set active state for Boot0000: No such file or directory

In the GRUB rescue terminal at boot time, the error message is different than the typical one I see in online forums about GRUB rescue issues. For me, the GRUB rescue error message is something like symbol something is missing (I don't remember the exact word formulation, I'll go and have a look at it). I suspect that maybe some packages/modules in GRUB stopped being synchronized with each other or something.

EDIT: here is the GRUB rescue message I get when I boot my computer:

Welcome to GRUB!

error: symbol 'grub_debug_malloc' not found.
Entering rescue mode...
grub rescue> _

EDIT 2:
I tried rebooting it now by selecting rEFInd option instead of garuda in the F12 boot menu. Running efibootmgr now gives the following output:

BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0002,2001,2002,2003,0000,0001
Boot0000* garuda	HD(1,GPT,ac07a783-5ec9-224e-a440-42dd28a56f2d,0x1000,0x82000)/File(\EFI\garuda\grubx64.efi)
Boot0001* rEFInd Boot Manager	HD(1,GPT,ac07a783-5ec9-224e-a440-42dd28a56f2d,0x1000,0x82000)/File(\EFI\refind\refind_x64.efi)
Boot0002* HDD0: KINGSTON RBUSNS8154P3256GJ1	PciRoot(0x0)/Pci(0x1d,0x4)/Pci(0x0,0x0)/NVMe(0x1,00-26-B7-68-3F-A8-06-D5)/HD(1,GPT,ac07a783-5ec9-224e-a440-42dd28a56f2d,0x1000,0x82000)RC
Boot2001* EFI USB Device	RC
Boot2002* EFI DVD/CDROM	RC
Boot2003* EFI Network	RC

Note how BootCurrent is now 0001 instead of 0000. But still, running sudo efibootmgr -A -b 0000 gives the same output:

fibootmgr: Boot entry 0 not found
Could not set active state for Boot0000: No such file or directory

Sorry for being gone for so long, I always forget that I started this endeavour.

my efibootmgr looks somewhat similar to yours:

BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0000,000B,0007,0008,0006
Boot0000* Garuda	HD(2,GPT,f240e6b9-7715-b041-a3fa-85dd69568d65,0x22,0x967de)/File(\EFI\GARUDA\GRUBX64.EFI)
Boot0001* rEFInd Boot Manager	HD(2,GPT,f240e6b9-7715-b041-a3fa-85dd69568d65,0x22,0x967de)/File(\EFI\REFIND\REFIND_X64.EFI)
Boot0006  WDC WD20EFRX-68EUZN0	BBS(HD,,0x0)0000424f
Boot0007* Samsung SSD 860 EVO 1TB	BBS(HD,,0x0)0000424f
Boot0008* Samsung SSD 860 EVO 250GB	BBS(HD,,0x0)0000424f
Boot000B* UEFI OS	HD(2,GPT,f240e6b9-7715-b041-a3fa-85dd69568d65,0x22,0x967de)/File(\EFI\BOOT\BOOTX64.EFI)0000424f

Anyways, have you tried changing the boot order manually in the BIOS? I think efibootmgr tries to do about the same thing, but your mobo may not support it or something like that.

I tried changing the boot order via efibootmgr to put rEFInd Boot Manager on 1st spot and Garuda on 2nd spot by using the efibootmgr -o ... command, and I confirmed that the change took effect by running efibootmgr afterwards. But when I rebooted it, it's like the change gets reset to the original order that I had before the boot.

I'm not able to access my BIOS anymore. F2 is my BIOS button (which worked previously, perhaps only when I have Garuda-booting USB inserted). When I press F2, it just enters a blank screen with Acer logo in the middle. The screen just freezes in that condition with apparently lost capability to interact with computer other than cold-rebooting it via power button (which restores ability to interact with computer i.e. F12 boot menu or GRUB rescue terminal, etc)

try running "Reboot to UEFI" (You can find it in your program launcher of choice; It's part of the programs/tools garuda ships by default

2 Likes

thanks for trying to help me. I ended up timeshifting and ruining my computer, then I did live boot (or whatever it’s called, when you insert Garuda-booting USB). And all the bugs and errors were wiped out, and so were all my files and apps. But hey, now at least it’s working without bugs and stuff. Happily, I did have a large-storage USB device that contained an older version of my private files so that I can reconstruct an approximation of the files that I’ve lost. Here’s the post that explains how it went:

awww. Glad it's working now though

1 Like