GRUB menu redirects to BIOS

I have my laptop (Dell XPS 15) dual booted with Windows 11 and Manjaro Plasma KDE. This has been working well for me for about a year or so. However, after updating my installation with pamac update the command exited early reporting some sort of error. It didn’t seem too troubling at the time and I ran pamac update a second time and the command completed without any errors. Thinking everything was well I completed my work and shut my computer down.

When I booted up the system again I was taken to the GRUB menu like usual and I selected my Manjaro installation. After selection, I was instead taken into some command prompt saying that my kernel wasn’t installed. I found this post and followed its instructions.

If I try booting now I am taken directly into the BIOS settings as if I had selected the “UEFI firmware settings” option from the GRUB menu (or pressed my ‘F2’ key during startup). When I have my boot priority set to GRUB I am taken back to the BIOS settings after the computer seems to restart. I am able to boot into Windows if I set its boot manager as priority.

I’ve followed the instructions described here to try and recover or reinstall GRUB, but to no avail. I am currently able to access Manjaro through a live USB.

Though I have some familiarity with Manjaro and the CLI, I still feel very new to all of this. Any help would be greatly appreciated.

Try this:

Edit
Sorry, wrong link, I meant to post this:

I had this happen twice, after a Windows 10 update. I couldn’t edit my boot menu, so I just reinstalled Linux. When it happened a third time, I relegated Windows a separate laptop.

I mean, if you are ok with letting windows own you, sure…
Me, I would NEVER GIVE UP, FIGHT UNTIL I CAN’T WALK! :wink:
(maybe safest to clarify I’m sarcastic here)

1 Like

Always a very good idea!

1 Like

Thank you @bedna. I will try that suggestion.

As for

I wish I had that option. I’m a student, so I need the portability of a laptop. I find myself using Manjaro more and more, but I still need Windows for certain pieces of software.

Please, post the output of

fdisk -l
lsblk -f
blkid
efibootmgr

(there are 4 different commands in there)

Dude, did you even read what he wrote? He cant even get past bios at this moment. :joy:

@tcd Download an iso and put it on a usb stick, boot with that, chroot and follow the guide on reinstalling grub.

If you get errors, copy them and post them here.
You probably want to run an update of your system (in the terminal, not gui) while in chroot but let’s see what this does first.

fdisk -l
https://0x0.st/Hty4.txt

lsblk -f

NAME        FSTYPE   FSVER       LABEL            UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
loop0       squashfs 4.0                                                                     0   100% /run/miso/sfs/livefs
loop1       squashfs 4.0                                                                     0   100% /run/miso/sfs/mhwdfs
loop2       squashfs 4.0                                                                     0   100% /run/miso/sfs/desktopfs
loop3       squashfs 4.0                                                                     0   100% /run/miso/sfs/rootfs
sda         iso9660  Joliet Exte MANJARO_KDE_2304 2023-10-15-12-00-38-00                     0   100% /run/miso/bootmnt
├─sda1      iso9660  Joliet Exte MANJARO_KDE_2304 2023-10-15-12-00-38-00                              
└─sda2      vfat     FAT12       MISO_EFI         EA58-776D                                           
nvme0n1                                                                                               
├─nvme0n1p1 vfat     FAT32       ESP              D68C-B595                                           
├─nvme0n1p2                                                                                           
├─nvme0n1p3 ntfs                 OS               68BCDFE1BCDFA7B8                                    
├─nvme0n1p4 ntfs                                  3A26F8AD26F86AF1                                    
├─nvme0n1p5 ntfs                 Image            DAEC15B1EC1588C1                                    
├─nvme0n1p6 ntfs                 DELLSUPPORT      06F82AF1F82ADF25                                    
├─nvme0n1p7 ext4     1.0                          a7817728-0a28-490d-aa51-d8b1b99bcad5                
├─nvme0n1p8 ext4     1.0                          3a59b7d6-336a-4055-bd94-e649bae76616                
└─nvme0n1p9 swap     1                            50e53c39-8e21-430f-aa6c-815fcfd00d96 

blkid

/dev/loop1: BLOCK_SIZE="262144" TYPE="squashfs"
/dev/nvme0n1p9: UUID="50e53c39-8e21-430f-aa6c-815fcfd00d96" TYPE="swap" PARTUUID="2b1a6333-1845-b244-875a-37c896faa7f9"
/dev/nvme0n1p7: UUID="a7817728-0a28-490d-aa51-d8b1b99bcad5" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="8be7e9a1-dda6-8f4a-b55f-cc91b83c12c2"
/dev/nvme0n1p5: LABEL="Image" BLOCK_SIZE="512" UUID="DAEC15B1EC1588C1" TYPE="ntfs" PARTUUID="9b859db3-010e-4fce-944e-da8898751905"
/dev/nvme0n1p3: LABEL="OS" BLOCK_SIZE="512" UUID="68BCDFE1BCDFA7B8" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="7d5934e3-72ac-4ff3-9e30-3470311b75e9"
/dev/nvme0n1p1: LABEL_FATBOOT="ESP" LABEL="ESP" UUID="D68C-B595" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="9e67e13d-5f32-4365-b0fc-ef845b63f67a"
/dev/nvme0n1p8: UUID="3a59b7d6-336a-4055-bd94-e649bae76616" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="8b4ab64e-aa97-9f44-b925-51ab2dbe277c"
/dev/nvme0n1p6: LABEL="DELLSUPPORT" BLOCK_SIZE="512" UUID="06F82AF1F82ADF25" TYPE="ntfs" PARTUUID="25aeb11c-9eae-4365-83b1-a33eaf4dafae"
/dev/nvme0n1p4: BLOCK_SIZE="512" UUID="3A26F8AD26F86AF1" TYPE="ntfs" PARTUUID="03b1b53f-4735-43a0-a4fc-cad9cc0e18e9"
/dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="f36ac7a7-645d-42ec-916a-8973a53700a5"
/dev/loop2: BLOCK_SIZE="262144" TYPE="squashfs"
/dev/loop0: BLOCK_SIZE="262144" TYPE="squashfs"
/dev/sda2: SEC_TYPE="msdos" LABEL_FATBOOT="MISO_EFI" LABEL="MISO_EFI" UUID="EA58-776D" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="ff95a72f-02"
/dev/sda1: BLOCK_SIZE="2048" UUID="2023-10-15-12-00-38-00" LABEL="MANJARO_KDE_2304" TYPE="iso9660" PARTUUID="ff95a72f-01"
/dev/loop3: BLOCK_SIZE="262144" TYPE="squashfs"

efibootmgr

BootCurrent: 0005
Timeout: 0 seconds
BootOrder: 0005,0001,0000,0006
Boot0000* Windows Boot Manager  HD(1,GPT,9e67e13d-5f32-4365-b0fc-ef845b63f67a,0x800,0x145000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d0000005f000100000010000000040000007fff0400
Boot0001* Manjaro-grub  HD(1,GPT,9e67e13d-5f32-4365-b0fc-ef845b63f67a,0x800,0x145000)/File(\EFI\Manjaro-grub\grubx64.efi)
Boot0005* UEFI: ASolid USB 0000 PciRoot(0x0)/Pci(0x14,0x0)/USB(16,0)/CDROM(1,0x7441f8,0x8000)0000424f
Boot0006* UEFI: ASolid USB 0000, Partition 2    PciRoot(0x0)/Pci(0x14,0x0)/USB(16,0)/HD(2,MBR,0xff95a72f,0x7441f8,0x2000)0000424f

I already have the iso on a usb drive.

Are you sharing boot partition with windows?
I only see one boot, and efi reports same UUID.

Make a new partition and install kernels and grub on that.
fat32, 100mb should be fine. Flag it as boot
chroot and make sure the new drive is mounted in /boot/efi

You can do it in f.ex KDE partition manager on your live env

If you share boot partition with windows it is definitely going to break over and over.

Ok. You are booting in UEFI and your system is installed also in UEFI mode (just wanted to be sure).

From the liveUSB execute:

manjaro-chroot -a

To be sure, update your system with:

pacman -Syyu

Reinstall grub with:

grub-install --efi-directory=/boot/efi --bootloader-id=Manjaro-grub --recheck

(I’m using the same id I see in our current configuration)

Update grub configuration:

update-grub

And reboot

If any of the commands gives you any error, please post it here. Good luck!

Making a second ESP is nice but not obligatory. On a first glance bootloader and efi variables seem installed but reinstalling will not hurt.
Can it be that you just have your grub menu hidden? And it remembered and boots the last entry which is bios?
Can you post cat /etc/default/grub

If he want’s these problems over and over and over, ofc using win boot is an option.
As long as he realizes that and is fine with it, I will sleep well. xD

I created the new partition (nvme0n1p10) though I am unsure how to flag it as boot.

I’m not certain about how to properly chroot. I could use manjaro-chroot -a but I wasn’t certain if that would use the old partition and mount it to /boot/efi. I instead followed the directions about a manual chroot outlined here:

I ran the commands
sudo mount /dev/nvme0n1p7 /mnt,
sudo mount /dev/nvme0n1p10 /mnt/boot/efi,
sudo mount /dev/nvme0n1p8 /mnt/home ,
and finally
manjaro-chroot /mnt /bin/bash

I think the below output of lsblk -f shows that I have things mounted in the correct places.

NAME        FSTYPE   FSVER     LABEL            UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
loop0       squashfs 4.0                                                                   0   100% /run/miso/sfs/livefs
loop1       squashfs 4.0                                                                   0   100% /run/miso/sfs/mhwdfs
loop2       squashfs 4.0                                                                   0   100% /run/miso/sfs/desktopfs
loop3       squashfs 4.0                                                                   0   100% /run/miso/sfs/rootfs
sda         iso9660  Joliet Ex MANJARO_KDE_2304 2023-10-15-12-00-38-00                     0   100% /run/miso/bootmnt
├─sda1      iso9660  Joliet Ex MANJARO_KDE_2304 2023-10-15-12-00-38-00                              
└─sda2      vfat     FAT12     MISO_EFI         EA58-776D                                           
nvme0n1                                                                                             
├─nvme0n1p1 vfat     FAT32     ESP              D68C-B595                                           
├─nvme0n1p2                                                                                         
├─nvme0n1p3 ntfs               OS               68BCDFE1BCDFA7B8                                    
├─nvme0n1p4 ntfs                                3A26F8AD26F86AF1                                    
├─nvme0n1p5 ntfs               Image            DAEC15B1EC1588C1                                    
├─nvme0n1p6 ntfs               DELLSUPPORT      06F82AF1F82ADF25                                    
├─nvme0n1p7 ext4     1.0                        a7817728-0a28-490d-aa51-d8b1b99bcad5     13G    67% /mnt
├─nvme0n1p8 ext4     1.0                        3a59b7d6-336a-4055-bd94-e649bae76616   35.6G    47% /mnt/home
├─nvme0n1p9 swap     1                          50e53c39-8e21-430f-aa6c-815fcfd00d96                
└─nvme0n1p10
            vfat     FAT32                      438E-DBD6                              98.3M     0% /mnt/boot/efi

Could you help me know if I’m on the right track and how I can install both the kernels and grub to the appropriate partition?

I ran the commands you (@cfinnberg) specified
the only error I received is the output from update-grub:

Generating grub configuration file ...
Found theme: /usr/share/grub/themes/manjaro/theme.txt
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
grub-probe: error: cannot find a GRUB drive for /dev/sda1.  Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sda1.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
Root filesystem isn't btrfs
If you think an error has occurred, please file a bug report at "https://github.com/Antynea/grub-btrfs"
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
done

That looks like the usb drive to me. Like it is not chrooted.

For the p10 new ESp partition, you can check with gparted for example, it has to have esp and boot flags. You can also set them from there. You can also check from the live session if EFI/manjaro/grubx64.efi exists (it is one of the things grub-install makes).

:+1:
+1. It isn’t usually hidden in my experience but I only do manual installations, so might not always be the case. But if the menu is actually shown, does pressing the arrow keys and selecting to boot from a known good kernel work?

… I also had an issue where I’d set the boot order wrong in the BIOS itself. Try changing that?

Here is the output of cat /etc/default/grub :

GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable Hidden Menu, and optionally hide the timeout count
#GRUB_HIDDEN_TIMEOUT=5
#GRUB_HIDDEN_TIMEOUT_QUIET=true

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter 
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" 
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper 
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/usr/share/grub/background.png"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

You could try changing the first line from =saved to =default and comment out the GRUB_SAVEDEFAULT line (appending a #) or change it to =false if your GRUB menu isn’t showing, which it looks like it should be from what you’ve posted.

I just ran tree /boot and here are the first few lines of output:

/boot
|-- efi
|   `-- EFI
|       `-- Manjaro-GRUB
|           `-- grubx64.efi

I’m assuming that means it exists?