Grub rescue

Hey there, I’m new to all this so my apologies if I seem clueless :sweat_smile:
Recently, I got EndeavourOS running on my PC. I bought a new hard drive and hooked it up, made a flash drive with EOS on it, and installed it. Everything works fine, but there is one issue. Whenever I go into my PC’s BIOS and set EOS as the one to boot with, it brings me to grub rescue. However, if I go into BIOS and manually select EOS as the one to boot, it boots fine. Why does this happen and how can I fix it? Thank you!

Hey @joshtrademark ,
Welcome to the forum.
Read this and do what applies to you.

I followed the steps, but when I run grub-install it spits this out at me:

Installing for x86_64-efi platform.
grub-install: warning: disk does not exist, so falling back to partition device /dev/nvme0n1p1.
grub-install: warning: disk does not exist, so falling back to partition device /dev/nvme0n1p1.
grub-install: warning: disk does not exist, so falling back to partition device /dev/nvme0n1p1.
grub-install: error: disk `hostdisk//dev/nvme0n1p1’ not found.

Show us the output of this command pls.
sudo lsblk --output NAME,FSTYPE,LABEL,UUID

NAME FSTYPE LABEL UUID
sda
├─sda1
└─sda2 ext4 endeavouros 29dd651a-c09b-4903-a5ff-b47d7f322fe3
sr0
nvme0n1
├─nvme0n1p1 vfat F496-F9A5
├─nvme0n1p2
└─nvme0n1p3 ntfs DA128DE2128DC3CB

and
cat /etc/fstab
Edit:
Petsam is more knowledgeable. I do not interfere from now on.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=F496-F9A5                            /boot/efi      vfat    fmask=0137,dmask=0027 0 2
UUID=29dd651a-c09b-4903-a5ff-b47d7f322fe3 /              ext4    noatime    0 1

Which command exactly? Post he full command, please.
Have you set disk mode to AHCI in the BIOS?
Also, post input and output of these terminal commands:

efibootmgr -u
lsblk -fo +PARTUUID
sudo parted -l
cat /proc/cmdline

That’s the whole command, just “grub-install”.

I have not. My BIOS is a bit funky (ASUS), I had trouble turning off secure boot because it’s hidden under a different name. I’ll look into it and see if I can change it.

Here’s the inputs and outputs of those commands:

efibootmgr -u

BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001,0003,0004
Boot0000* endeavouros   HD(1,GPT,a4ba354e-53c3-4ba3-b662-f048b4e5be8b,0x800,0x32000)/\EFI\ENDEAVOUROS\GRUBX64.EFI
Boot0001* Windows Boot Manager  HD(1,GPT,a4ba354e-53c3-4ba3-b662-f048b4e5be8b,0x800,0x32000)/\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI䥗䑎坏S
Boot0003* Hard Drive    BBS(HD,,0x0)
Boot0004* CD/DVD Drive  BBS(CDROM,,0x0)

lsblk -fo +PARTUUID

NAME FSTYPE FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS PARTUUID
sda                                                                                           
├─sda1
│                                                                                             665ca24e-6cf4-4466-9f28-77ed33192cd3
└─sda2
     ext4   1.0   endeavouros 29dd651a-c09b-4903-a5ff-b47d7f322fe3    850G     2% /           60c8d291-0993-44d7-9cb2-da23f3ba5607
sr0                                                                                           
nvme0n1
│                                                                                             
├─nvme0n1p1
│    vfat   FAT32             F496-F9A5                              69.3M    28% /boot/efi   a4ba354e-53c3-4ba3-b662-f048b4e5be8b
├─nvme0n1p2
│                                                                                             0d0f5d96-2caf-4d69-a6b8-3748023b4090
└─nvme0n1p3
     ntfs                     DA128DE2128DC3CB                                                4aa33fff-9804-438c-abf0-2ebcbef0cb76

sudo parted -l

Model: ATA ST1000DM010-2EP1 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      17.4kB  16.8MB  16.8MB               Microsoft reserved partition  msftres
 2      16.8MB  1000GB  1000GB  ext4         endeavouros


Model: Samsung SSD 990 PRO 4TB (nvme)
Disk /dev/nvme0n1: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  106MB   105MB   fat32        EFI system partition          boot, esp, no_automount
 2      106MB   123MB   16.8MB               Microsoft reserved partition  msftres, no_automount
 3      123MB   4001GB  4001GB  ntfs         Basic data partition          msftdata


cat /proc/cmdline

BOOT_IMAGE=/boot/vmlinuz-linux-lts root=UUID=29dd651a-c09b-4903-a5ff-b47d7f322fe3 rw nowatchdog nvme_load=YES nvidia_drm.modeset=1 loglevel=3

One more interesting case :smile: .
Edit: I deleted some wrong assumption of mine (no_automount only affects WinOS. Linux uses fstab) :no_mouth:

I wonder what is the difference (for your UEFI/BIOS firmware) between these two:

It looks like the default OS to boot is EnOS, so why would you need to manually change to EnOS . What was the reason? Is there something else to know?

I would suggest:

  • Make sure BIOS disk mode is AHCI
  • Make sure /boot/efi is mounted
  • Install bootloader with sudo grub-install --efi-directory=/boot/efi --force --verbose (post output)
  • Add a default entry using --removable
sudo grub-install --efi-directory=/boot/efi --removable --force --verbose

(post output)

If something fails, post, for reassesment :man_shrugging:

1 Like