Windows – can’t I install Windows 8 on an UEFI machine from an MBR based USB disk

gptinstallationmbruefiwindows 8.1

Just tried to install Windows 8.1 on an UEFI machine/GPT disk.

I used a 2 TB MBR-based USB drive to contain the installer (FAT32 partition with Windows 8.1 install files). I got as far as selecting a partition to install to before the installer complained that the selected install target was actually a GPT disk and that installation was not possible. I know that it's a GPT disk. No further explanation was provided.

Google searches turned up tips like "you have to boot the DVD drive in UEFI mode to install OS on UEFI", etc. This made me believe that I have to convert my USB drive to GPT just to install an OS on an UEFI machine. Is this really necessary? I mean, it's just files written to disk, does it really matter how the installer was booted? The machine will surely reboot during install and then it can use whatever mode it wants, if it think it's necessary.

I also get the impression that converting from MBR to GPT requires me to also delete my other partition on the USB drive. Thats a 1.97 TB partition and that's not acceptable.

Edit: converted to GPT without problems using third party tools. The question remains though:

Why does the installer say it's impossible to install a UEFI-booted OS from a MBR-based USB drive? Can't it create new UEFI boot options while being booted from MBR, or what?

Best Answer

Google searches turned up tips like "you have to boot the DVD drive in UEFI mode to install OS on UEFI", etc. This made me believe that I have to convert my USB drive to GPT just to install an OS on an UEFI machine.

<…>

Why does the installer say it's impossible to install a UEFI-booted OS from a MBR-based USB drive? Can't it create new UEFI boot options while being booted from MBR, or what?

Do not confuse booting from a GPT or MBR disk with booting in EFI or BIOS mode.

Normally these two requirements are not related. An UEFI system is required to support both GPT and MBR partition tables. (Likewise, BIOS systems don't normally read the partition table at all, and can easily boot from a GPT disk as long as the sector 0 boot code is capable of it.)

It is only Windows that refuses BIOS-mode boot from GPT disks, and EFI-mode boot from MBR disks. And, well, some buggy BIOS systems do choke on "protective" GPT MBRs; likewise, some buggy UEFI systems do think "MBR = legacy boot".

But, aside from that, your guess about creating boot options is correct. See below.

I mean, it's just files written to disk, does it really matter how the installer was booted? The machine will surely reboot during install and then it can use whatever mode it wants, if it think it's necessary.

No, it cannot. First, the boot mode is not chosen by the OS once booted; it is chosen by how the bootloader was installed. To set up a bootloader for BIOS, you write boot code to the 0th sector. To set up a bootloader for EFI, you add a boot option to NVRAM as an EFI "variable". Second, EFI runtime functions are only accessible when booted in EFI mode, and you need to use them in order to modify EFI variables.

So, if you're in BIOS mode, the installer cannot add a boot option to the NVRAM, and therefore cannot set up EFI-mode boot for the freshly-installed system.

So your assumption that it "can use whatever mode it wants" is incorrect.

(As a precaution, Windows does also install its own bootloader to the "fallback" path, \EFI\Boot\BootX64.efi, however, that path is used only if there are no working boot options in NVRAM. So if you don't add a boot option, there's a small chance that it'll still boot, but it's far from being a guarantee.)

I also get the impression that converting from MBR to GPT requires me to also delete my other partition on the USB drive. Thats a 1.97 TB partition and that's not acceptable.

There are tools that can do in-place conversion; the Linux gdisk being one.

However, even if you do delete a partition, this doesn't normally discard any data within it, so you can access it again if you immediately create a new partition at the exact same place. This is how the conversion tools work, after all. (Again, you might need Linux fdisk or gdisk in order to specify the start/end location precisely; many tools only expose 1 MB accuracy.)