GRUB menu not showing after BIOS update

I have a dual boot setup with Windows on my internal SSD, and Garuda installed on my external HDD, and it was working perfectly fine, until I updated my BIOS.

I'm not sure what went wrong, but I could only access the grub rescue prompt after the update. I tried booting into a live USB and ran the grub repair(Garuda Assistant) and grub-update, but this didn't seem to fix the issue.

I found out that I was, however, able to manually point to garuda.efi through the live USB boot menu, which opened up the GRUB prompt of my install!

From what I can see, it's some issue with grub not being able to locate the efi file.

Other potentially useful points:

  1. When I do grub-update after booting from the install(happens with live USB as well), the logs show "Found ... .efi" boot entry, but doesn't detect the garuda.efi file.

  2. I'm not sure if this is an important detail, but when it was working fine, the GRUB rescue prompt showed up even after I unplug the external HDD containing Garuda. After plugging it back in, the grub menu would show up normally.

Any help is much appreciated, and I thank you for your time!

Maybe the BIOS update has re-enabled secure boot and or fast boot, and you could try to disable them?

3 Likes

When you update a BIOS it resets the settings to optimal defaults which are ironically not optimal for linux :sweat_smile: Most motherboards allow you to save a profile of your BIOS settings so that you can reload them after an update. Like @filo said secure boot, raid, ahci, csm, etc could have all been changed.

6 Likes

So I don't remember making any changes to the Boot options, and I can confirm that those options are set to the correct values.

If secure boot was enabled, or other options were changed, I probably wouldn't have been able to even boot into the live usb :stuck_out_tongue:

I see you already tried with the Grub Repair from Garuda Assistant.
I don't know if this is actually the same, but I'd try to chroot from the live USB into your system and reinstall the grub (and update-grub) according to:

In addition to this, my last ideas are to check:

  • the boot type and order in BIOS
  • the efibootmgr -v from the live USB
4 Likes

@filo I tried that as well to no avail :disappointed:. From what I can see, it's some issue with grub not being able to locate the efi file.

When I do grub-update after booting from the install(happens with live USB as well), the logs show "Found ... .efi" boot entry, but doesn't detect the garuda.efi file.

Hi again, I don't want to waste your time, I just found some ideas on the Internet... :slight_smile:
Feel free to disregard at all.
I saw cases solving the grub rescue with either (from rescue):

set root=(hd0,gpt6)
set prefix=(hd0,gpt6)/boot/grub
insmod normal
normal

or

configfile (hd0,gpt2)/boot/grub/grub.cfg

Then update-grub and finally install grub.
Of course with disk and partitions to be adjusted according to your case

2 Likes

Try first your BIOS setup, if there is an option to create a custom boot entry, in which case you would be prompted to select the grub efi file in /boot/efi tree, inside a folder named garuda.

If there is no such capability, boot to your installed garuda system and re-install grub (read Archwiki or search the forum for how-to). IIRC there is an --external option for grub-install command on UEFI installing, that you should use.

For long term, for an external drive system on UEFI, it is better to create an $ESP fat partition on the external drive and point it explicitly when re-installing grub. Of course, this needs relevant changes in fstab (replace /boot/efi UUID). Read more at Archwiki on grub and UEFI articles.

2 Likes

My external HDD partition tree is as follows:

sda           8:0    0 931.5G  0 disk 
├─sda1        8:1    0   330M  0 part /boot/efi
├─sda2        8:2    0    16G  0 part [SWAP]
├─sda3        8:3    0   300G  0 part /home
│                                     /var/log
│                                     /var/tmp
│                                     /var/cache
│                                     /root
│                                     /srv
│                                     /
└─sda4        8:4    0 615.2G  0 part

I wanted to know if it was normal for the .efi file (present in sda1) to be on one partition, and the grub.cfg file (present in sda3) to be on another?

@filo I managed to run the configfile (hd1,gpt3)/boot/grub/grub.cfg command and I was able to boot into my system without needing the live USB! However, running the update-grub command didn't fix it.

@petsam looking at my partions, do I need to create an additional fat partition, or can I make do with the existing ones?

I'm really moving through quicksand here... but there must be something we could do to make this permanent.
In one of the sources for possible solutions I mentioned before (actually the first of the two) they also suggested to create a grub.cfg file in the EFI/garuda folder with contents something like:

search.fs_uuid $paste_uuid_here root hd1,gpt3
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

If you want to give it a try... I haven't found sound references for all this stuff to study (maybe this is the so-called "embedding of configuration file into GRUB") but you never can say...

1 Like

If the BIOS was reset and lost the GRUB menu item from its UEFI menu, then wouldn't the easiest solution would be to boot a live installer environment and use the "fix GRUB" item from Garuda Assistant?

That was done in the first step but failed....
I'd be still curious to check the efibootmgr

1 Like

@filo @jonathon @petsam So after digging deep, it turns out that for some reason, grub-install fails to generate firmware boot menu options. So after following this and this, I ran the command sudo efibootmgr -c -d /dev/sda -p 1 -L "Garuda Boot" -l /EFI/Garuda/grubx64.efi -u "root=/dev/sda3/@/boot", and it still didn't work :sob:.

Output of efibootmgr -v after adding entry:

BootCurrent: 0002
Timeout: 2 seconds
BootOrder: 0001,0000,0002,0003
Boot0000* Windows Boot Manager  HD(1,GPT,f80bf604-4ec1-4a27-b7b8-b06e939966da,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0001* Garuda Boot   HD(1,GPT,f80bf604-4ec1-4a27-b7b8-b06e939966da,0x800,0xa5000)/File(\EFI\Garuda\grubx64.efi)r.o.o.t.=./.d.e.v./.s.d.a.3./.@./.b.o.o.t.
Boot0002* UEFI: SanDisk Cruzer Blade 1.26       PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/CDROM(1,0x471278,0x8000)..BO
Boot0003* UEFI: SanDisk Cruzer Blade 1.26, Partition 2  PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/HD(2,MBR,0x88f89123,0x471278,0x2000)..BO

Output of sudo blkid | grep sda:

/dev/sda4: LABEL="P" BLOCK_SIZE="512" UUID="374D1C887D58700B" TYPE="ntfs" PARTUUID="15729ccb-30b9-498d-88b4-95aa6be03bfc"
/dev/sda2: UUID="8053dcaf-93fc-441b-a847-006d662cca6f" TYPE="swap" PARTUUID="25205ba8-f612-934a-8952-561404c7cc3e"
/dev/sda3: UUID="30a8f634-e826-4e97-bc42-24bc85a87f37" UUID_SUB="34252afd-550a-4e62-a020-7c28bd887f14" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="8a54d4da-59c9-f74b-b72a-90229c780461"
/dev/sda1: UUID="D067-98F8" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="2e0982f1-6381-3448-a869-c82eb43a840c"

One thing I noticed was that the UUIDs aren't the same (not sure if this is normal).

@filo I will keep your approach as a last ditch resort as it seems a bit janky xD . Hope you don't mind :stuck_out_tongue:

2 Likes

I'm not really sure this part is needed.
Maybe you could try deleting this entry and recreating without...

Ok I officially have no clue what's going on. I thought that the boot entries from my old Ubuntu install(when grub was first installed on my PC) were perhaps interfering with the boot. On cleaning up things carefully (only the ubuntu boot files and firmware menu entries), i tried reinstalling GRUB again.

Turns out on running grub-install, grub doesn't even get installed, and it doesn't even show the rescue. The install logs look normal to me:

Installing for x86_64-efi platform.
grub-install: info: cannot open `/mnt/rootfs/@/boot/grub/device.map': No such file or directory.
grub-install: info: /dev/sda1 is not present.
grub-install: info: Looking for /dev/sda1.
grub-install: info: /dev/sda is a parent of /dev/sda1.
grub-install: info: /dev/sda1 starts from 2048.
grub-install: info: opening the device hostdisk//dev/sda.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/sda is 1953525168.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/sda is 1953525168.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Partition 0 starts from 2048.
grub-install: info: /dev/sda1 is present.
grub-install: info: Looking for /dev/sda1.
grub-install: info: /dev/sda is a parent of /dev/sda1.
grub-install: info: /dev/sda1 starts from 2048.
grub-install: info: opening the device hostdisk//dev/sda.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/sda is 1953525168.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/sda is 1953525168.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Partition 0 starts from 2048.
grub-install: info: /dev/sda1 is present.
grub-install: info: Looking for /dev/sda1.
grub-install: info: /dev/sda is a parent of /dev/sda1.
grub-install: info: /dev/sda1 starts from 2048.
grub-install: info: opening the device hostdisk//dev/sda.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/sda is 1953525168.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/sda is 1953525168.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/sda.
grub-install: info: Scanning for ldm devices on disk hostdisk//dev/sda.
grub-install: info: scanning hostdisk//dev/sda for LDM.
grub-install: info: no LDM signature found.
grub-install: info: Scanning for lvm devices on disk hostdisk//dev/sda.
grub-install: info: no LVM signature found.
grub-install: info: Partition 0 starts from 2048.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/sda is 1953525168.
grub-install: info: the core size is 0x41a80.
grub-install: info: writing 0x44000 bytes.
grub-install: info: copying `/mnt/rootfs/@/boot/grub/x86_64-efi/core.efi' -> `/mnt/esp/EFI/BOOT/BOOTX64.EFI'.
Installation finished. No error reported.

@filo a huge thank you for spending your time to help me out!

Is there any way I could "elevate" this issue (get more traction xD)?

What more can you get?
You have been provided with the best assistance on the web, but ignored it.

What have you tried and failed from this?
Everything considering your issue is answered in a few small paragraphs at Archwiki
If you had read, as suggested, you would have solved the issue yourself easilly.
Do you expect me pasting Archwiki portions here for you, because your time is too valuable to spend it on reading manuals?
Come on! Man up! It's not that hard.

You have not provided relevant info, only random terminal output (by your judgement). We need the input (ran commands) as well.

Since you can boot from grub command-line, it means your Garuda setup is fine. You just need to properly install grub (as in Archwiki grub installation) and verify with efibootmgr (and finally with a reboot).

Using an external drive for normal operation is not a normal operation.
I suggest you always boot using BIOS quick boot menu (aftrer setting up grub of course).

What I need to know is what is in the external drive esp, that structure I meant, not the partition mount setup you have posted. Where/what .efi files exist and where, with what names,

Also the exact grub-install command (whenever you use it) and how you have chosen parameters.

Everything is in Archwiki, in an easy to understand paper. I speak the Greek-English slang, so maybe you won't understand my explanations better than Archwiki. :wink:

6 Likes

Hi. I really recommend you follow Petsam's advices, he's really great :wink:.
I leave you only one of the references used yesterday, mostly because it seemed to me a good summary for problems similar to yours and contains some useful commands in the grub rescue and some advices in case you cannot find EFI directory (actually there I don't understand why he asks to mount in /boot instead of boot/efi).
https://d7x.promiselabs.net/2019/05/01/booting-grub-from-a-removable-device/
But the reference documentation remains the link to the arch wiki!
This is only my way to step back without "gaps" (I just recognized I didn't leave any reference of my suggestions yesterday) :smiley:

2 Likes

I'm really sorry if I offended/annoyed you in any way, as that wasn't my intention.

I did read your post carefully and go through the relevant Archwiki pages (for UEFI GRUB install, efibootmgr), and many other forum posts to explore other flags I may have missed. My BIOS had no option to create a custom boot option.

I forgot to include the full grub-install command, but other than that, I did post the commands I ran corresponding to each output.

The grub-install command I ran was sudo grub-install --efi-directory=/mnt/esp/ --boot-directory=/mnt/rootfs/@/boot/ --target=x86_64-efi --removable --bootloader-id=grub --recheck, where /mnt/esp -> /dev/sda1 and /mnt/rootfs -> /dev/sda3 with the --removable flag. This didn't seem to make any difference in the outcome unfortunately.

In my previous update I mentioned that grub command line no longer shows up as I tried doing a clean install. I even shifted the grub folder location as instructed here and here, but still no change.

Which is where I'm currently stuck xD

Here you go :slight_smile: . My external drive has the following structure:

/mnt/esp2/
└── EFI
├── boot
│   ├── bootx64.efi
│   └── grub
│       └── grub.cfg
├── Dell
│   └── logs
│       ├── diags_current.xml
│       └── diags_previous.xml
└── Garuda
└── grubx64.efi

My internal drive has the following structure in the boot partition:

/mnt/esp/
├── EFI
│   ├── Boot
│   │   ├── bootx64.efi
│   │   ├── fbx64.efi
│   │   ├── grub
│   │   │   └── grub.cfg
│   │   └── mmx64.efi
│   ├── Dell
│   │   ├── Bios
│   │   │   └── Recovery
│   │   │       ├── BIOS_CUR.RCV
│   │   │       └── BIOS_PRE.rcv
│   │   ├── logs
│   │   │   ├── diags_current.xml
│   │   │   └── diags_previous.xml
│   │   └── SOS
│   │       ├── BCD.LOG1
│   │       ├── BCD.LOG2
│   │       ├── bg-BG
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── bootmgfw.efi
│   │       ├── bootmgr.efi
│   │       ├── BOOTSTAT.DAT
│   │       ├── boot.stl
│   │       ├── cs-CZ
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── da-DK
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── de-DE
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── el-GR
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── en-GB
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── en-US
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── es-ES
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── es-MX
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── et-EE
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── fi-FI
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── Fonts
│   │       │   ├── chs_boot.ttf
│   │       │   ├── cht_boot.ttf
│   │       │   ├── jpn_boot.ttf
│   │       │   ├── kor_boot.ttf
│   │       │   ├── malgun_boot.ttf
│   │       │   ├── malgunn_boot.ttf
│   │       │   ├── meiryo_boot.ttf
│   │       │   ├── meiryon_boot.ttf
│   │       │   ├── msjh_boot.ttf
│   │       │   ├── msjhn_boot.ttf
│   │       │   ├── msyh_boot.ttf
│   │       │   ├── msyhn_boot.ttf
│   │       │   ├── segmono_boot.ttf
│   │       │   ├── segoen_slboot.ttf
│   │       │   ├── segoe_slboot.ttf
│   │       │   └── wgl4_boot.ttf
│   │       ├── fr-CA
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── fr-FR
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── FveTcg_0.log
│   │       ├── FveTcg_1.log
│   │       ├── FveTcg_2.log
│   │       ├── hr-HR
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── hu-HU
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── it-IT
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── ja-JP
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── kd_02_10df.dll
│   │       ├── kd_02_10ec.dll
│   │       ├── kd_02_1137.dll
│   │       ├── kd_02_14e4.dll
│   │       ├── kd_02_15b3.dll
│   │       ├── kd_02_1969.dll
│   │       ├── kd_02_19a2.dll
│   │       ├── kd_02_1af4.dll
│   │       ├── kd_02_8086.dll
│   │       ├── kd_07_1415.dll
│   │       ├── kd_0C_8086.dll
│   │       ├── kdnet_uart16550.dll
│   │       ├── kdstub.dll
│   │       ├── ko-KR
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── lt-LT
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── lv-LV
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── memtest.efi
│   │       ├── nb-NO
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── nl-NL
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── pl-PL
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── pt-BR
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── pt-PT
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── qps-ploc
│   │       │   └── memtest.efi.mui
│   │       ├── Resources
│   │       │   ├── bootres.dll
│   │       │   └── en-US
│   │       │       └── bootres.dll.mui
│   │       ├── ro-RO
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── ru-RU
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── sk-SK
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── sl-SI
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── sr-Latn-RS
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── sv-SE
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── tr-TR
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       ├── uk-UA
│   │       │   ├── bootmgfw.efi.mui
│   │       │   └── bootmgr.efi.mui
│   │       ├── winsipolicy.p7b
│   │       ├── zh-CN
│   │       │   ├── bootmgfw.efi.mui
│   │       │   ├── bootmgr.efi.mui
│   │       │   └── memtest.efi.mui
│   │       └── zh-TW
│   │           ├── bootmgfw.efi.mui
│   │           ├── bootmgr.efi.mui
│   │           └── memtest.efi.mui
│   └── Microsoft
│       ├── Boot
│       │   ├── BCD
│       │   ├── BCD.LOG
│       │   ├── BCD.LOG1
│       │   ├── BCD.LOG2
│       │   ├── bg-BG
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── bootmgfw.efi
│       │   ├── bootmgr.efi
│       │   ├── BOOTSTAT.DAT
│       │   ├── boot.stl
│       │   ├── cs-CZ
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── da-DK
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── de-DE
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── el-GR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── en-GB
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── en-US
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── es-ES
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── es-MX
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── et-EE
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── fi-FI
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── Fonts
│       │   │   ├── chs_boot.ttf
│       │   │   ├── cht_boot.ttf
│       │   │   ├── jpn_boot.ttf
│       │   │   ├── kor_boot.ttf
│       │   │   ├── malgun_boot.ttf
│       │   │   ├── malgunn_boot.ttf
│       │   │   ├── meiryo_boot.ttf
│       │   │   ├── meiryon_boot.ttf
│       │   │   ├── msjh_boot.ttf
│       │   │   ├── msjhn_boot.ttf
│       │   │   ├── msyh_boot.ttf
│       │   │   ├── msyhn_boot.ttf
│       │   │   ├── segmono_boot.ttf
│       │   │   ├── segoen_slboot.ttf
│       │   │   ├── segoe_slboot.ttf
│       │   │   └── wgl4_boot.ttf
│       │   ├── fr-CA
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── fr-FR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── FveTcg_0.log
│       │   ├── FveTcg_1.log
│       │   ├── FveTcg_2.log
│       │   ├── hr-HR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── hu-HU
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── it-IT
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── ja-JP
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── kd_02_10df.dll
│       │   ├── kd_02_10ec.dll
│       │   ├── kd_02_1137.dll
│       │   ├── kd_02_14e4.dll
│       │   ├── kd_02_15b3.dll
│       │   ├── kd_02_1969.dll
│       │   ├── kd_02_19a2.dll
│       │   ├── kd_02_1af4.dll
│       │   ├── kd_02_8086.dll
│       │   ├── kd_07_1415.dll
│       │   ├── kd_0C_8086.dll
│       │   ├── kdnet_uart16550.dll
│       │   ├── kdstub.dll
│       │   ├── ko-KR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── lt-LT
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── lv-LV
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── memtest.efi
│       │   ├── nb-NO
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── nl-NL
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── pl-PL
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── pt-BR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── pt-PT
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── qps-ploc
│       │   │   └── memtest.efi.mui
│       │   ├── Resources
│       │   │   ├── bootres.dll
│       │   │   └── en-US
│       │   │       └── bootres.dll.mui
│       │   ├── ro-RO
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── ru-RU
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── sk-SK
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── sl-SI
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── sr-Latn-RS
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── sv-SE
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── tr-TR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── uk-UA
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── winsipolicy.p7b
│       │   ├── zh-CN
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   └── zh-TW
│       │       ├── bootmgfw.efi.mui
│       │       ├── bootmgr.efi.mui
│       │       └── memtest.efi.mui
│       └── Recovery
│           ├── BCD
│           ├── BCD.LOG
│           ├── BCD.LOG1
│           └── BCD.LOG2
└── System Volume Information
├── AadRecoveryPasswordDelete
└── ClientRecoveryPasswordRotation

Hope all this information helps!

Try this : sudo efibootmgr
Followed by changed boot priorities for me I should write 0003,0004,0001,2001 it could be different in your pc
sudo efibootmgr --bootorder 0003,0004,0001,2001
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0003,0004,0001,2001
Boot0001* Windows Boot Manager
Boot0003* Garuda
Boot0004* ubuntu
Boot2001* EFI USB Device
Boot3001* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk

also : Windows updates will change your boot order so every time that happens boot using escape ( it depends ) and use the command that changes boot order

I also recommend installing you main boot os on the main internal drive because when your external is plugged out grub rescue will appear that's totally normal