1. Important Info
Note 1: These instructions are in the hope that it will be useful, but the author is not responsible for any hardware/software damage that can/may arise out of following these instruction either fully or partially.
Note 2: Please read about UEFI boot support of different Windows versions at this Arch Linux Wiki Page on Windows-Linux dual boot before proceeding.
Note 3: If you want to try unofficial Windows BIOS-GPT booting without a Hybrid MBR or UEFI emulation like DUET, checkout http://www.sevenforums.com/installation-setup/320700-boot-windows-7-8-gpt-bios-system-no-hybrid-mbrs-duet.html .
Note 4: Any UEFI bootable Windows (irrespective of version) requires an EFI SYSTEM PARTITION to be present on the boot disk. This is the equivalent of Windows SYSTEM_RESERVED partiton used in BIOS-MBR boot, wherein the Windows boot files including the BCD are stored
Note 5: Make sure all Windows NTFS partitions are marked as GPT “Windows Basic Data Partition” (gdisk type code 0700) type.
Note 6: These steps are known to work with Windows 7/8/8.1 x86_64 versions. These steps may not work for Windows 8/8.1 x86 32-bit versions and/or Windows Vista x86_64 versions.
Note 7: As with any technological and technical changes, these instructions may become outdated and may or may not be updated to match newer scenarios.
2.1 Microsoft Windows 7/8/8.1 Setup/PE UEFI bootable USB, with recovery options accesible.
2.2 100 MiB or above size (no upper size limit) partition on the boot disk. This partition will be denoted as ESP in the below instructions. The ESP should be blank and formatted as FAT32. If you already have a Windows created SYSTEM_RESERVED partition, you can use that partition as ESP, after formatting the partition as FAT32.
DO NOT TRY MBR TO GPT conversion in a installed Windows system. It will lead to a BSOD (Blue Screen of Death) due to partmgr.sys . Do the conversion from within Windows Setup/PE environment only.
3.1 Change SATA mode to AHCI in the UEFI firmware
3.1.1 In Windows, edit the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci registry key using regedit and enter number 0 (zero) (only zero, not any other number).
3.1.2 Edit the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\pciide registry key using regedit enter any number between 3 and 6.
3.2 Convert disk from MBR/msdos to GPT
3.2.1 Restart the system, boot into the firmware setup menu. Enable UEFI boot mode and change SATA mode to AHCI.
3.2.2 Boot into Windows Setup/PE DVD/USB. Open Windows Command Prompt using "Shift + F10".
3.2.3 Navigate to the directory where you copied the gdisk windows binary. Launch the gdisk*.exe and enter the disk number for the main disk (not the USB).
3.2.4 Change the type code of the ESP partition to EF00 in gdisk. The exact instructions to change the type code of a partition in gdisk are provided in its documentation and thus not provided here.
3.2.5 Exit gdisk with "w" option that converts the MBR partition table to GPT and writes the changes to the disk.
3.3 Setup the Windows UEFI boot files and BCD in the EFI System Partition
3.3.2 Restart the system. Windows should now boot in UEFI-GPT mode.
4. External Links
5. Comments and Feedback
Comments and suggestions regarding this article should be posted in Linux and Windows UEFI boot using Tianocore DUET firmware thread in Insanelymac forum.