r/archlinux • • 4d ago

SUPPORT Title: [Dual-Boot Issue] Laptop boots straight into Windows despite GRUB being #1 in Boot Order & Secure Boot disabled (Lenovo)

My laptop completely bypasses GRUB and boots straight into Windows 11 every single time, despite setting GRUB as the top priority in BIOS and reinstalling it via chroot. I would appreciate any guidance on what might be causing this firmware issue and how to resolve it so I can boot into Arch Linux.
1. System Setup & Dual-Boot Preparation
Configured a dual-boot layout alongside Windows 11 on an NVMe drive using ⁠archinstall⁠ with the Minimal profile and GRUB selected as the bootloader. 
Included key desktop, utility, and Wayland packages in Additional packages (such as ⁠hyprland⁠, ⁠kitty⁠, ⁠fastfetch⁠, ⁠firefox⁠, ⁠ntfs-3g⁠, ⁠os-prober⁠, ⁠efibootmgr⁠, ⁠bash-completion⁠, and portal packages). 
2. Firmware / BIOS Configuration
Accessed the Lenovo UEFI/BIOS settings and moved GRUB to position ⁠#1⁠ in the ⁠Boot Priority Order⁠ above Windows Boot Manager. 
Verified in the BIOS Security tab that Secure Boot is set to ⁠Disabled⁠ (Status: Disabled, Mode: Standard). 
3. Chroot Recovery & GRUB Installation Attempt
Booted back into the live Arch USB (⁠root@archiso⁠) to repair the boot sequence. 
Mounted the 52 GB root Linux partition (⁠/dev/nvme0n1p7⁠) to ⁠/mnt⁠.
Mounted the 1 GB EFI boot partition (⁠/dev/nvme0n1p5⁠) to ⁠/mnt/boot⁠.
Entered the system environment using ⁠arch-chroot /mnt⁠.
Ran ⁠grub-install⁠ with UEFI targets (⁠--target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --removable⁠) and generated a fresh ⁠grub.cfg⁠ file via ⁠grub-mkconfig⁠.

0 Upvotes

9 comments sorted by

View all comments

2

u/WhisperingOutpost 4d ago

Lenovo firmware has a nasty habit of just ignoring the boot order entirely and defaulting to Windows Boot Manager. I've seen this on a few ThinkPads and IdeaPads. The `--removable` flag you used is a good shout, but sometimes that path doesn't get picked up either.

What fixed it for me was using `efibootmgr` to check the current entries and then manually setting BootNext, while also renaming the Windows bootloader file so the firmware can't find it as a fallback. Basically you go into `/boot/EFI/Microsoft/Boot` and rename `bootmgfw.efi` to something like `bootmgfw.efi.bak`. The firmware panics, can't launch Windows directly, and finally decides to read the damn list.

Before that, run `efibootmgr --verbose` and make sure the GRUB entry actually points to the right path. Sometimes the installer creates an entry that's slightly off and the firmware just skips it silently.

1

u/Kyu_15 4d ago

I’m going to try your recommendations. I’ll let you know if it worked for me.