Make an exFAT Bootable USB Flash Drive

How to Make an exFAT Bootable USB flash drive. First we will format the USB with multiple partitions. Install Grub2, and then boot. This method works for both Legacy BIOS and EFI booting. UEFI boot requires the creation of a Fat/Fat32 partition, which is covered in this segment.

Important Notes: The methods outlined below partition the USB drive with one exFAT partition for storing the ISO files and another Fat32 BOOT partition to be used for Grub booting. Windows will only automatically assign a drive letter to the first partition. Which in turn, makes the fat32 boot partition natively hidden from Windows.

Caveats:

Legacy BIOS booting does not work on a select few finicky CSM booted systems. Secure Boot is also not supported.

The Diskpart version packaged with Windows 7 and lower is not able to create multiple partitions on removable USB media. The process will fail to make the second partition. Windows 8, and 10 should work fine.

On Linux systems, in order to exFAT format the first partition, the exFat filesystem driver and utilities must be installed.

How to Boot from an exFAT USB Flash Drive

Covered below are both the Windows and Linux methods to make a USB boot from exFAT. Simply toggle the method you’d like to use.

Make a Grub2 exFAT bootable USB Flash Drive from Windows

I. Creating exFAT and fat32 Partitions on the USB drive

1. To get started, Open a Command Prompt as admin
1.) From the Windows ‘⌕ Type here to search’ box, type cmd.exe
2.) Then click Run as administrator
open command prompt as admin
2. Type the following and press enter to launch Disk Management Tool.

diskmgmt.msc

Note which Disk and drive letter belong to your USB.
Diskmgmt.msc
3. Back at the command prompt, type diskpart

diskpart

4. To select the disk, type the following replacing # with your USB disk number.

sel disk #

5. Then to wipe the disk, (WARNING: all existing content will be deleted) type the following one line at a time;

clean

convert mbr

6.  Next to list the disk info so we can set size in the next step, type;

list disk

And then note the size of your select * Disk in MB.
7. Now to prepare the first exFAT partition, type the following;

cre par pri

shrink minimum=50

format fs=exfat label=USB quick

8. Next to create and format the second partition as fat32, type;

cre par pri

format fs=fat32 label=BOOT quick

assign

9. Then, to verify the created partitions and volumes, type;

list par

list vol

IMPORTANT: note which drive letter was assigned to your fat32 BOOT partition. You’ll need it when installing Grub2.
10. To leave diskpart, type;

exit

II. Installing Grub2 for UEFI and BIOS on the USB drive

1. Download Grub2 from A1ive’s repository, and extract (using 7zip) its contents to your Windows desktop.
Note: you’ll first need to extract the .tar file from the .gz, and then extract the contents of the .tar file. Once finished, you should have a grub folder containing the contents on your desktop.
2. Next to change to the grub directory, type or copy/paste

cd %UserProfile%\Desktop\grub

3. To install Grub2 for BIOS and UEFI type or copy/paste the following,
(replacing X with your BOOT drive letter and # your Disk number),
and then press Enter.

grub-install.exe --force --no-floppy --target=i386-pc --boot-directory=X:\boot //./PHYSICALDRIVE#

grub-install.exe --force --removable --no-floppy --target=x86_64-efi --boot-directory=X:\boot --efi-directory=X:\

grub-install.exe --force --removable --no-floppy --target=i386-efi --boot-directory=X:\boot --efi-directory=X:\

Congratulations, your USB flash drive should now be Grub2 Bootable from both Legacy BIOS and UEFI.

Upon completion, simply reboot your pc, select the USB drive from your BIOS or UEFI boot device menu, and then Boot. If all went well, you should be presented with Grub2!

Booting ISO files from an exFAT partition

Grub can read from an exFAT filesystem using this method because it includes an exFAT driver module. However, to actually be able to boot from a Live ISO stored on the exFAT partition via loopback requires that the ISO distribution also include a driver during boot (at the time of this post most don’t). Otherwise the path containing the ISO cannot be found once the boot process has been handed over.

Here are a couple of ways to circumvent this requirement;

(1) Use PartNew to create and mount the ISO to a partition.

Or

(2) map --mem the ISO to a memory address.

Then

(a) Set the linux and initrd paths and Proceed to boot the ISO.