Windows 11 often disappears from the GRUB boot menu because Linux distributions do not automatically scan for Windows partitions after installation or due to Secure Boot and Fast Startup conflicts. To resolve this, you must manually update the GRUB configuration using sudo update-grub on Debian-based systems or sudo grub2-mkconfig -o /boot/grub2/grub.cfg on Red Hat-based systems, ensuring the os-prober utility is enabled and functioning correctly.
Verifying OS-Prober Installation and Status
The primary reason GRUB fails to detect Windows 11 is that modern Linux security policies have disabled theos-prober tool by default. This tool is responsible for scanning other partitions for operating systems during the GRUB generation process. If it is missing or disabled, GRUB will only list the installed Linux kernel.
First, ensure the utility is installed. On Ubuntu, Debian, and Mint, run:
sudo apt install os-prober
On Fedora, RHEL, or CentOS, it is typically pre-installed but may need enabling. Verify its presence with:
which os-prober
If the command returns a path, the binary exists. Next, check if it is active. Many distributions disable it via a configuration file to prevent potential security vulnerabilities associated with probing external filesystems. Check the GRUB configuration directory for a file named 40-force-official-repo.cfg or similar, but more commonly, look for /etc/default/os-prober. If this file does not exist, create it or edit /etc/default/grub to ensure no flags are blocking it. In newer versions of GRUB (2.06+), the detection logic has changed slightly, requiring explicit permission in the GRUB defaults.
Enabling Detection in GRUB Configuration
Even withos-prober installed, GRUB might ignore Windows partitions if the configuration explicitly tells it not to look. You must modify the main GRUB environment file. Open the configuration file located at /etc/default/grub with your preferred text editor:
sudo nano /etc/default/grub
Look for a line starting with GRUB_DISABLE_OS_PROBER. If this line exists and is set to true, change it to false:
GRUB_DISABLE_OS_PROBER=false
If the line does not exist, add it. This setting is critical for recent releases of Ubuntu, Fedora, and Arch Linux, where developers have tightened security around automatic dual-boot detection. After saving the file, you must regenerate the GRUB configuration for the changes to take effect. Do not rely on manual edits to grub.cfg; always use the generation tools provided by your distribution.
Regenerating the GRUB Menu
The method for updating GRUB depends entirely on your Linux distribution's package manager and bootloader management style. Using the wrong command can result in a broken bootloader or a configuration that does not persist across reboots. For Debian-based distributions like Ubuntu, Linux Mint, and Kali, use:sudo update-grub
This script internally calls grub-mkconfig with the correct output path for EFI systems. For Red Hat-based systems such as Fedora, RHEL, AlmaLinux, and Rocky Linux, the command is:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
On Arch Linux and Manjaro, simply running:
sudo grub-mkconfig -o /boot/grub/grub.cfg
is sufficient. After running the appropriate command, reboot your system. If Windows 11 appears in the GRUB menu, the issue is resolved. If it remains missing, proceed to the next troubleshooting steps regarding partition visibility and filesystem compatibility.
Checking Partition Visibility and Filesystem Types
GRUB relies onos-prober to identify the Windows Boot Manager partition, which is usually an FAT32 partition marked as "EFI System Partition" (ESP). If os-prober cannot read this partition, detection fails. Use the lsblk command to view your block devices:
lsblk -f
Identify the partition formatted as FAT32 that is mounted at /boot/efi or has the ESP flag. Ensure that the Windows partition itself (usually NTFS) is accessible. If you recently resized partitions or used disk cloning tools, the UUIDs might have changed, causing mismatches. Additionally, verify that the Windows partition is not hidden by Linux filesystem drivers. Some minimal Linux installs lack full NTFS support utilities, though most modern kernels handle this natively.
Another common issue arises when Windows 11 is installed in UEFI mode but the Linux system is booted in Legacy BIOS mode, or vice versa. GRUB cannot chain-load an operating system from a different firmware interface. Ensure both operating systems were installed in the same mode. You can check your current boot mode with:
efibootmgr -v
If the output shows only Linux entries and no Windows Boot Manager entry, Windows may not be registered in the NVRAM. You may need to boot into Windows and repair the boot record using the Windows Recovery Environment before returning to Linux.
Handling Secure Boot and Fast Startup Conflicts
Windows 11 enforces Secure Boot by default, which can interfere with unsigned GRUB modules or third-party bootloader modifications. While standard GRUB binaries are usually signed, custom configurations might break verification. If you have enabled Secure Boot in your BIOS/UEFI settings, ensure that your Linux distribution supports it. Most major distros (Ubuntu, Fedora, Manjaro) include signed GRUB binaries. If you compiled GRUB from source without signing keys, Secure Boot will prevent it from loading, potentially hiding other OS options if the fallback mechanism fails. Furthermore, Windows 11 enables "Fast Startup" by default, which hibernates the kernel instead of fully shutting down. This can lock the NTFS filesystem, preventing Linux from reading it safely. Whenos-prober attempts to scan a locked NTFS partition, it may fail silently or report errors. Disable Fast Startup in Windows by going to Control Panel > Power Options > Choose what the power buttons do > Change settings that are currently unavailable, and uncheck "Turn on fast startup." Shut down Windows completely, then boot into Linux and run the GRUB update commands again.
Manual Entry Fallback
If automatic detection continues to fail despite all previous steps, you can manually add a Windows 11 entry to GRUB. This requires identifying the specific partition containing the Windows Boot Manager. Uselsblk or fdisk -l to find the EFI partition number. Then, edit /etc/grub.d/40_custom to add a custom menu entry. Replace (hdX,gptY) with your actual partition identifiers found via grub-probe:
menuentry "Windows 11" {
insmod part_gpt
insmod fat
insmod chain
set root='(hd0,gpt1)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
After adding this, run sudo update-grub (or the equivalent for your distro). This method bypasses os-prober entirely but requires careful maintenance if partition layouts change.
Solving Windows 11 Re-install Disk Error after Linux Mint 22 Install provides additional context for storage-related boot failures.
Frequently Asked Questions
Why does my GRUB menu disappear after installing Windows 11?
Installing Windows 11 often overwrites the MBR or EFI boot order, replacing the Linux GRUB loader with the Windows Boot Manager. To restore access, you must boot from a Linux Live USB and reinstall GRUB to the EFI partition, then configure it to chain-load Windows.Can I use rEFInd instead of GRUB for dual booting?
Yes, rEFInd is a highly effective alternative boot manager that automatically detects all operating systems, including Windows 11 and various Linux kernels, without needing complex configuration files. It scans for EFI executables directly, making it more resilient to partition changes than GRUB.What should I do if os-prober returns no results?
Ifos-prober returns nothing, verify that the Windows partition is mounted and readable by Linux. Check dmesg for I/O errors and ensure the partition is not encrypted or locked by Windows Fast Startup. Running os-prober with verbose flags can reveal specific permission or filesystem errors.
Is it safe to manually edit grub.cfg?
No, manually editinggrub.cfg is unsafe because most distributions regenerate this file automatically during updates or kernel upgrades, erasing your changes. Always modify the source files in /etc/grub.d/ or /etc/default/grub and let the system rebuild the configuration.
How do I fix a "No Bootable Device" error after dual boot setup?
This error usually indicates that the UEFI firmware cannot find the EFI System Partition. Enter your BIOS/UEFI settings and check the boot priority list. Ensure the Linux distribution's EFI entry is first, or manually add the\EFI\Microsoft\Boot\bootmgfw.efi path if Windows is the desired target.
Linux Breaks Windows 11 Boot: Dual Booting Debian 12 and Fixing EFI Menu Issues details specific EFI menu corruption scenarios.