After Bios update grub is gone

Hi guys,

I have updated my bios. After the update (and no update error), grub is gone. I have a dual boot machine, and now it only boots windows (I no longer see the hard disk endevour os on boot select and bios boot setup).

I read this guide https://discovery.endeavouros.com/system-rescue/repair-a-non-booting-grub/2021/03/ and many forum posts, but they did not help me.

I then created a boot media with the latest iso of endevour. In the terminal I mounted all the disks as the guide says, but in the sudo arch-chroot /mnt
I got this error
sudo arch-chroot /mnt
chroot: failed to execute ‘/bin/bash’ command: No such files or directories

Any suggestions will be appreciated

The BIOS update probably reset your EFI.

First, check in your BIOS if EndeavourOS is on the list of UEFI boot options. It may just not be selected in the BIOS anymore.

If it is isn’t, then you need to reinstall grub.

If the instructions are not working for you, please share the output of sudo parted -l so we can see what you are working with.

Thanks for the reply!
unfortunally the endevourOS is not anymore listed on UEFI boot option.

Here is my output of parted

Model: ATA SanDisk SDSSDH3 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 17.8MB 16.8MB Microsoft reserved partition msftres, no_automount
2 17.8MB 1000GB 1000GB Basic data partition msftdata

Model: USB Flash Disk (scsi)
Disk /dev/sdb: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
2 2738MB 2901MB 163MB primary fat16 esp

Model: WDS100T1X0E-00AFY0 (nvme)
Disk /dev/nvme0n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 2097kB 1051MB 1049MB fat32 boot, esp
2 1051MB 991GB 990GB btrfs endeavouros
3 991GB 1000GB 9449MB linux-swap(v1) swap

Model: MSI M480 PRO 1TB (nvme)
Disk /dev/nvme1n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 1000GB 1000GB primary ntfs
2 1000GB 1000GB 16.8MB primary

I have already do that

sudo mount /dev/nvme0n1p1 /mnt/efi
sudo mount /dev/nvme0n1p2 /mnt

First, are you sure you were using grub? We use systemd-boot by default but offer grub as an option.

If you are using grub, reboot onto this ISO to have a clean setup and then try this:

sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo arch-chroot /mnt

That should get you into a chroot where you can reinstall grub.

That is backwards. You can’t mount the EFI partition before the root.

OK, i have do that. Now i got this

[root@EndeavourOS /]# grub-install --target=i386-pc /dev/nvme0n1
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won’t be possible.
grub-install: error: filesystem `btrfs’ doesn’t support blocklists.
[root@EndeavourOS /]#

Yes im using grub to manage the dual boot with windows

That is the command for a BIOS system. You are using UEFI. I hope that failed and didn’t write data to the root of this disk.

Try:

grub-install --target=x86_64-efi --efi-directory=/boot/efi

Oh, i have copy from that page, i did-t notice it for a BIOS and not for UEFI…

Anyway using that i got this
grub-install: error: failed to get canonical path of `/boot/efi’.

What does findmnt --real show?

This

[root@EndeavourOS /]# findmnt --real
TARGET SOURCE FSTYPE OPTIONS
/ /dev/nvme0n1p2 btrfs rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/
`-/mnt /dev/nvme0n1p2 btrfs rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/

You are using Btrfs filesystem.

You would need to follow the chroot instructions for Btrfs.

You couldn’t be in a chroot like that.

Did the arch-choot command fail?

Reboot again and then do this:

sudo mount /dev/nvme0n1p2 /mnt -o subvol=@
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo arch-chroot /mnt

If anything fails, stop.

Ok i have reboot, now i have done all commands and nothing gone wrong. Now i can try to reinstall grub?

Yes, use the command I posted above.

Installation finished. No error reported. Now it seems work, i can restart or there is another step?

Yes, try restarting

Unfortunately i cannot see the disk on boot. On bios as boot option i have only windows and the media

Boot onto the ISO again and run sudo efibootmgr and share the output here

This is the output

[root@EndeavourOS /]# sudo efibootmgr
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0005,0000,0003
Boot0000* Windows Boot Manager  HD(1,GPT,ff58da87-24c9-4a0f-89ec-14fed546aefc,0x1000,0x1f4000)/\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000000000100000010000000040000007fff0400
Boot0003* endeavouros   HD(1,GPT,ff58da87-24c9-4a0f-89ec-14fed546aefc,0x1000,0x1f4000)/\EFI\ENDEAVOUROS\GRUBX64.EFI
Boot0004* UEFI: USB Flash Disk 1100     PciRoot(0x0)/Pci(0x8,0x1)/Pci(0x0,0x3)/USB(2,0)/USB(1,0)/CDROM(1,0x519980,0x4da98)0000424f
Boot0005* UEFI: USB Flash Disk 1100, Partition 2        PciRoot(0x0)/Pci(0x8,0x1)/Pci(0x0,0x3)/USB(2,0)/USB(1,0)/HD(2,MBR,0xe06d72b0,0x519980,0x4d800)0000424f

Try:

sudo efibootmgr -o 0003,0000

If that runs without error, try rebooting.