UEFI USB only boots when formatted FAT32

I am trying to create UEFI bootable USB sticks of Windows 8. What I do is the following:

diskpart
select disk 1
clean
convert gpt
create partition primary
format quick fs=ntfs

I then just dump the contents of the ISO into the USB. It does not boot but when I format to fat32 it works. Is this normal, or is it just my laptop that's not able to locate NTFS UEFI partitions?

FAT32 is really old and will essentially limit OS image sizes to 4GB (the WIM can't be bigger than that in a fat32 system).

I tried doing "create partition efi" to create a EFI system partition but I was unable to access it. Could I theoretically create an EFI system partition in linux, dump the contents of /efi/ into it, then create a primary NTFS partition and dump the rest of the stuff onto that partition?

This isn't a question pertaining to an issue since I solved it (formatting to fat32). I just want to know what's going on.

EDIT: Also as a bonus question. All the blogs and articles relating to "Create Windows 8 Bootable USB" do not mention "convert gpt" and just say to dump the contents of the ISO onto the disk. Some say to run bootsect.exe, others don't (doesn't make sense since UEFI doesn't use boot sectors). I don't see how this would work since UEFI needs a GPT disk to boot from. Is my laptop just very strict while others are lax on the standard?


Solution 1:

On a normal hard disk installation of most any EFI-based OS, you'll have, at a minimum, one FAT EFI System Partition (ESP) and one partition for the OS itself. The ESP holds a boot loader for the OS, possibly along with files to support the boot loader (fonts, configuration files, drivers, etc.), and possibly even the OS's kernel. The OS partition holds more-or-less the same OS files you'd find on a BIOS-based installation of the same OS. Depending on the OS, you might have additional partitions, too -- data partitions, a swap partition, etc.

There can be exceptions to this rule, particularly for installation media or emergency disks. For instance, you could put the whole OS in the ESP. Also, most EFIs are happy to boot from partitions that are not ESPs, so you could just have one big non-ESP FAT partition, as you've got. This can work fine for an emergency disk, but I wouldn't recommend setting up a regular OS installation in this way; I'd use a separate ESP and OS partition.

Note that a standard EFI can read FAT, but cannot read NTFS, ext2/3/4fs, HFS+, or any other filesystem. (Apple's EFI can read HFS+, and so can read its boot loader from a Mac OS X root partition rather than from the ESP, but Apple's EFI is the exception rather than the rule. A few EFIs also have ISO-9660 filesystem drivers -- but again, they're exceptions to the rule.) Because FAT is the only filesystem that's guaranteed to be readable by EFI, an attempt to build a boot disk that does not include a FAT partition is doomed to failure, except of course when used on those unusual EFIs that support additional filesystems.

I can't provide a procedure to set up a Windows emergency disk to use separate EFI and Windows partitions, since I'm more of a Linux person than a Windows person. Unless you run into a specific problem with your approach, though, I'd just stick with it; at least you know it works.