Computer BIOS boot with UEFI
Here's a long technical explanation.
The short version is: in Windows boot modes are tied to specific partition table styles. You were booting in BIOS mode, so your partition table uses MBR style. To boot in UEFI mode, you need a GPT partition table.
Recent versions of Windows come with a mbr2gpt
tool that will do the conversion without data loss given that some prerequisites are met. If they are not, the tool should fail gracefully.
After the conversion Windows will not be able to boot until you switch to UEFI boot mode. Make sure your backups are up to date before proceeding.
Open an administrator's command prompt: press Win, type cmd
and press Ctrl+Shift+Enter. Confirm the UAC dialog if it appears.
First type mbr2gpt /validate /allowFullOS
Enter. Hopefully you'll see a "Validation completed successfully" message. That means that the prerequisites are met. Use mbr2gpt /convert /allowFullOS
Enter to proceed with the conversion. Then reboot into BIOS and change boot mode.
If the validation fails, you're out of luck. It's possible to convert such systems, but it's not straightforward and the procedure differs on case-by-case basis, so for a beginner I'd recommend reinstalling Windows instead. You may also have to manually erase the partition table in this case (this will destroy all your data). You can do this in the Windows installer by pressing Shift+F10, entering diskpart
Enter, then select disk 0
Enter and clean
Enter.
Since GPT is not by standard required for UEFI booting, you can stick with the MBR partition table and shrink the main system partition by 512M (or even less) and create an EFI System Partition with the gained space.
Then use bcdboot
with /f UEFI
to install the UEFI variant of Windows Boot Manager to it, which will make the installation bootable by either native UEFI or "BIOS" (i.e. the CSM).
I have never actually tried create partition efi
in diskpart
when legacy booted an MBR installation or use bcdboot
with /f UEFI
but without /s [drive_letter]:
. At least it will work with a "normal" primary partition that is FAT32-formatted. (You'll then need to change its partition type code to 0xef
with e.g. fdisk
in Linux though.)