I'm trying to get Windows 11, which requires EFI boot, however, when I checked the system info in Windows, it says I have Legacy boot:
- When checking the UEFI firmware settings [Gigabyte motherboard], it says I have UEFI boot:
Do I have EFI boot or not, and if I don't, how do I get it?
13 Answers
The current Windows 10 install was either imaged when it was previously using a BIOS motherboard, or Windows was incorrectly installed with CSM Mode enabled within the UEFI firmware settings:
- CSM Mode should never be enabled for an OS, as its sole purpose was to support distros [BSD/Linux] that didn't yet support EFI boot circa <2017 (Windows ≥7 supports EFI boot); CSM Mode emulates BIOS' 16bit architecture within a 32bit environment and doing so will cause performance degradation (boot times increase by 400%+, GPT can't be used, etc.)
- The only reason to enable CSM Mode is when needing to access a legacy OP[tion] ROM, and once done in the OP ROM, CSM Mode should be re-disabled
To resolve:
- Windows 10 installation media → install on another PC → Save ISO
- Create bootable USB with Rufus → Reboot → Disable CSM Mode in the UEFI firmware
- Boot Windows install USB → When GUI loads, open terminal via Shift+F10
- Use
mbr2gptto convert OS disk's partition table to GPT:- Ascertain OS disk #:
DiskPart→lis dis→exit mbr2gpt /convert /disk:#
- Ascertain OS disk #:
- Create required UEFI-boot partitions on the OS HDD via
DiskPart:DiskPart→lis dis→sel dis #→ Verify it's the OS disk:lis par- Delete old boot partition:
sel par #→ Verify:det par→del par override - Determine disk layout:
lis par(optimal partition layout: ESP, MSR, OS, WinRE) - Add requisite UEFI partitions:
- EFI and MSR:
Select OS partition:sel par 1→ Verify:det parShrink Desired=388 Minimum=388 Cre Par EFI Size=100 Format Quick Fs=FAT32 Label=EFI Assign Letter=Y Cre Par Msr Size=16 - WinRE:
Select OS partition:sel par 3→ Verify:det parShrink Desired=768 minimum=750 Cre Par Pri Size=768 Id=de94bba4-06d1-4d40-a16a-bfd50179d6ac Format Quick Fs=NTFS Label=WinRE Gpt Attributes=0x8000000000000001- As of Win10 v2004, WinRE was defaulted to be after the OS partition (previous default: WinRE, ESP, MSR, OS), as the
Winre.wimgrows when updated with OS version updates and is currently >400MB on Windows 11; due to this, WinRE partition should have ~300MB of free space to absorb future size increases- There is a way to natively shrink a partition with the unallocated space placed at the end of the partition, but I'm unsure how Windows Setup does so during a bi-annual versioning update - if wanting to do so, move via a third-party program later
- <v2004: if
Winre.wimoutgrew the original WinRE partition, a new one would be auto-created after the OS partition, resulting in two Recovery partitions, with only the latter being active
- As of Win10 v2004, WinRE was defaulted to be after the OS partition (previous default: WinRE, ESP, MSR, OS), as the
- EFI and MSR:
- Get OS partition drive letter:
lis vol→exit
(C:is usually not the OS drive letter in WinPE/WinRE)
- Configure EFI boot:
::# Create EFI directories and enter: MkDir "Y:\EFI\Microsoft\Boot" Cd /d "Y:\EFI\Microsoft\Boot" ::# Create EFI boot structure: BootRec /Fixboot ::# If Access Denied error occurs (C: is OS partition): BcdBoot C:\Windows /s C: /f UEFI ::# Resolve any other boot issues: BootRec /FixMBR && BootRec /RebuildBCD- Remove EFI mountpoint:
DiskPart→Sel Vol Y→Remove→Exit
- Remove EFI mountpoint:
- Reboot:
wpeutil reboot - Configure WinRE once booted back to Windows:
- Open an Admin Terminal:
+R → Open:
powershell→ CTRL+SHIFT+OK - Mount WinRE partition via
DiskPart:
lis vol→sel vol #→ Verify:det par→Assign Letter=Z→Exit - Extract
WinRE.wimfrom the Windows install USB'ssources\install.wim||.esd:# Get list of images [indexes] within the ESD/WIM: Dism /Get-ImageInfo /ImageFile:"E:\sources\install.wim" # Mount install.wim||.esd (usually index 1: Home | 6: Pro): MkDir "C:\Mount" ; Dism /Mount-Image /ImageFile:"E:\sources\install.wim" /Index:1 /MountDir:"C:\Mount" /ReadOnly # Copy WinRE.wim: MkDir "Z:\Recovery\WindowsRE" ; Xcopy "C:\Mount\Windows\System32\Recovery\WindowsRE\WinRE.wim" "Z:\Recovery\WindowsRE" # If hidden file: Xcopy /H # Unmount image, discard changes: Dism /Unmount-Image /MountDir:"C:\Mount" /Discard # Disable WinRE: ReAgentC /Disable # Set Custom WinRE Path: ReAgentC /SetREimage /Path "Z:\Recovery\WindowsRE" # Enable WinRE and verify: ReAgentC /Enable ; ReAgentC /Info # Cleanup: Del "C:\WinRE.wim" ; RmDir "C:\Mount"- Remove WinRE mount point:
DiskPart→sel vol z→remove→exit
- Open an Admin Terminal:
Your motherboard has UEFI firmware, but the current OS was not installed with UEFI support.
Most PCs with UEFI firmware still support BIOS-style booting. (That's the "CSM Support" feature in your screenshot – the BIOS Compatibility Support Module. When the CSM is active, the firmware will show both UEFI and BIOS boot options.)
This means that the OS can be installed either with UEFI support or with the traditional MBR boot sector (e.g. if you chose the wrong option in the F8 boot menu, or if you forgot to select "UEFI/GPT" in Rufus, or if the whole OS disk was moved from an older, BIOS-only system). Beware that some tools only support making Windows USB sticks for BIOS mode; and some create dual-mode ones – when doing a fresh install make sure the F8 menu specifically lists "UEFI:" in front of the menu item.
And whenever the OS is booted through BIOS/CSM mode, it will have no access to the EFI Runtime Services, only to the old BIOS functions, as if it was truly running on a BIOS-only system, so that's what Windows' "System Information" will show.
Recent Windows versions have a mbr2gpt tool which transforms an existing BIOS-mode installation to an UEFI-capable one; for older versions it's possible to do the same manually.
Ref.: CSM Booting
It means that your Windows (Boot Manager) was installed in BIOS/legacy mode. You can shrink your main partition, create an EFI system partition (ESP) with the newly available space, and then install a the UEFI variant of Windows Boot Manager to it with bcdboot.exe.
I'm not sure if that's sufficient to get you through the upgrade though (I assume you are trying to upgrade from Windows 10 to 11). If it still doesn't work, probably you will need to install from scratch. Make sure you boot the installation medium in UEFI mode this time. Disabling CSM support will help you make sure of that (if the installation medium wasn't created in properyly for UEFI booting disabling that will prevent you from booting it, as well as your existing installation, in BIOS/legacy mode).
Certainly mbr2gpt is the quickest / simplest option, if it works. If it somehow doesn't, "installing from scratch" also includes the option of archiving the main partition to an image with dism.exe and extract with it after you have re-partition your drive with GPT.
You can also convert the partition table on Linux after having a working ESP prepared on Windows, albeit it needs more care. Make sure you have some available space at the end of the drive so that the backup GPT will not overwrite any of the partition / filesystem.
7