The problem
A legacy/MBR Windows install won’t show up as a boot option when the BIOS is in pure UEFI mode, and UEFI GRUB can’t chainload it either. So you end up flipping CSM on and off in the BIOS every time you want to switch operating systems.
Converting the Windows disk to GPT fixes both ends of that: Windows becomes a proper UEFI boot entry, and GRUB can finally see it.
1. Boot Windows via CSM
Enable CSM (Compatibility Support Module) in the BIOS. The Windows disk reappears as a boot device — shown as the disk name, not “Windows Boot Manager”. Boot into Windows.
2. Validate the disk for conversion
From an admin Command Prompt:
mbr2gpt /validate /disk:0 /allowFullOS
Check the disk number with diskpart → list disk first. Without /disk: the tool defaults to disk 0, which may not be the one you want.
3. If validation fails: “Cannot find OS partitions”
This means the boot files on the System Reserved partition (the small ~100 MB one) need rebuilding. Give that partition a drive letter:
diskpart
select disk 0
select partition 1
assign letter=S
exit
Then rebuild the boot files:
bcdboot C:\Windows /s S: /f BIOS
Run the validate command again — it should now pass:
MBR2GPT: Validation completed successfully
4. Convert
mbr2gpt /convert /disk:0 /allowFullOS
It takes under a minute. The tool creates an EFI System Partition and installs the UEFI boot files into it.
5. Switch the BIOS back to UEFI
- Disable CSM
- Secure Boot: set OS Type = Other OS (on ASUS boards this means Secure Boot off; “Windows UEFI mode” means enforced)
- Windows Boot Manager now appears as a UEFI boot entry — boot it once to confirm Windows still works
6. Add Windows to GRUB
Boot into Linux:
sudo os-prober
sudo update-grub
If update-grub warns that os-prober will not be executed — the default on Ubuntu-based distros — enable it:
echo 'GRUB_DISABLE_OS_PROBER=false' | sudo tee -a /etc/default/grub
sudo update-grub
Look for a line like:
Found Windows Boot Manager on /dev/nvme0n1p3@/efi/Microsoft/Boot/bootmgfw.efi
Finally, set the Linux/GRUB entry first in the BIOS boot order. Every boot now lands in GRUB with both Linux and Windows Boot Manager as options — no more BIOS trips.
Caveats
Tested with Windows 11 and elementary OS 8 on separate NVMe drives. mbr2gpt requires Windows 10 1703 or newer, a maximum of three primary partitions, and no extended partitions. Back up before converting.