How to install Windows 7 x64 on GPT?

How can I install Windows 7 x64 on GUID partition table? My motherboard has UEFI. I tried using Ubuntu to create the GPT and NTFS partition on it, but Windows 7 just says

Windows cannot be installed to this disk. The selected disk is of the GPT partition style

I found this: Use the Diskpart.efi Utility to Create a GUID Partition Table Partition on a Raw Disk in Windows – but all diskpart commands in it don't work, it seems its a different version of diskpart.

How can I make this work?


Solution 1:

Microsoft erroneously conflates has an EFI partitioned hard disc with has EFI firmware. This is, of course, clearly wrong. It's quite possible — and indeed is becoming ever more desirable these days — to have an EFI partitioned disc on a machine that has old non-EFI firmware.

Moreover, as of revision 2.3.1 of the UEFI Specification, the EFI partition table has a "startable" attribute defined for partitions and it is possible to even bootstrap from EFI partitioned discs on a machine that has old non-EFI firmware. Old-style PC98 MBR bootstrap programs can look for partitions marked with the "startable" attribute in the EFI partition table and bootstrap the flagged partition's Volume Boot Record bootstrap program in the old PC98 way.

There are only two sources of such EFI-partitioning-aware MBR bootstrap programs right now:

  • I've written and published one.
  • The so-called "GPT" MBR boostrap in SYSLINUX, written by H. Peter Anvin, is another.

One of the several consequences of Microsoft's error is that if the Windows NT 6.1 install disc is bootstrapped in the old PC98 way, as you've done, the Windows NT 6.1 installer will think that there's old PC98 firmware, and so declare that it cannot be installed to EFI partitioned hard discs. The Windows NT 6.1 installer has to be invoked from an install medium that has in turn been bootstrapped from new EFI firmware, in order for it to accept the idea of installing Windows NT 6.1 to a disc partitioned with the new EFI partitioning scheme.

As the Microsoft documentation explains, the installation CD-ROM is in fact dual-boot. A machine with old PC98 firmware will bootstrap one operating system image and installation program; and a machine with new EFI firmware will bootstrap another. A machine with a compatibility support module can bootstrap an installation medium either way. One has to instruct one's firmware to bootstrap the installation CD-ROM in the right way, the new EFI way.

As Rod Smith explains, one can also, alternatively, manually construct a non-dual-boot Windows NT 6.1 install disc that only bootstraps in the new EFI way.

Further reading

  • Microsoft corporation (2009-04-24) UEFI Support and Requirements for Windows Operating Systems. Windows Dev Centre.
  • Rod Smith (2011-06-24). A BIOS to UEFI Transformation. Rod's Books.
  • Jonathan de Boyne Pollard (2006,2011). The EFI boot process.. Frequently Given Answers.
  • Jonathan de Boyne Pollard (2011). The PC/AT boot process. Frequently Given Answers.
  • Microsoft corporation (2009-10-22). Installing Windows to an EFI-Based Computer. TechNet.