It's not enough for a disk to be GPT. (In fact, it's not actually required for a disk to be GPT – practically all UEFI-bootable USB sticks are MBR-partitioned. And vice versa, GPT disks are often used on BIOS systems.)
What really defines a disk as "UEFI" or "BIOS" is the kind of bootloader it has installed. To be a BIOS disk, it needs BIOS-compatible bootcode in the zeroth sector (alongside the MBR). And to be an UEFI disk, it needs an EFI System Partition (i.e. a FAT-formatted partition) in which the bootloader is installed as an *.efi
file.
(These are not mutually exclusive, and usually OS install media support both.)
So merely changing the partition table won't bring the correct bootloader into existence – you need to do that later, somehow. For example, Windows has bcdboot
that can be used to install both BIOS and UEFI bootloaders into a new disk, although I'm not sure if it's suitable for USB sticks. (And again, practically all UEFI systems require a FAT-formatted partition to start from.)
So if you have just changed the partition table format for your system disk:
You probably have a small (100–200 MB) NTFS-formatted "Microsoft system partition", as most new Windows installations do. Repurpose it as the new "EFI system partition".
- If you are using diskpart, delete the old partition, then simply create the new one as:
diskpart> create partition efi
- The partition needs to be FAT-formatted.
If you're using AOMEI or fdisk/gdisk, you'll need to set th correct "partition type GUID". (Note: Don't mix up "partition type GUID" with the regular "partition GUID".)
The type-GUID is C12A7328-F81F-11D2-BA4B-00A0C93EC93B
, but most tools let you select the correct type from a list.
Optionally the partition can have 'required' and 'hidden' GPT flags set.
- From the Windows install media, run
bcdboot /v c:\windows
to install the UEFI bootloader files into the newly made EFI system partition. The tool will also install the correct UEFI NVRAM bootloader entry, but if that part fails, the disk should still be bootable.