Can you boot from an exFAT USB? Absolutely, but not by using one partition for USB booting. In order to make an exFAT bootable USB flash drive boot in UEFI mode, you will need to format the USB with multiple partitions. Then, install Grub2 on the boot partition. And finally, set your computer system BIOS or UEFI to boot from the flash drive to confirm that it boots.
How does exFAT USB booting Work?
This process covered here to exFAT USB boot works for both Legacy BIOS and EFI booting. To be able to USB UEFI boot requires the creation of a second Fat/Fat32 partition, which is also covered in this segment.
We will be creating an exFAT partition to be used for storing ISO files and for your traditional storage purposes. A second Fat32 BOOT partition will be created and 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.
At this point, you might be wondering, how can I view the hidden partition? Well, you can use DiskMgmt within Windows to manually assign a drive letter to the hidden partition to make it accessible.
The advantage of using an exFAT partition over a fat32 filesystem for storing ISOs is that you can store bootable ISO files larger than 4GB, and still UEFI boot from them via the Fat32 boot partition. This is necessary because a Fat32 filesystem does not support storing file sizes beyond 4GB.
Caveats: Legacy BIOS booting does not work on a very small select few finicky CSM booted systems. Secure Boot is also not supported via this method.
The Diskpart version packaged with Microsoft Windows 7 and lower (Vista, XP, etc.) is not able to create multiple partitions on removable USB media. The process will fail to make the second partition. However Windows 11, 10, 8 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 make an exFAT Bootable USB Flash Drive
Covered below are both Windows and Linux methods to make a USB boot from exFAT. Simply toggle to switch to the exFAT Bootable USB method you prefer to use.
Make a Grub2 exFAT Bootable USB Drive from Windows
I've put together a batch file that automates the steps below. Resulting in a flash drive that you can drag and drop ISO files onto and then USB boot from. Simply download and run exfat.bat from this make-exfat-bootable-usb.zip and follow the onscreen instructions.
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.
2. Type the following and press enter to launch Disk Management Tool.
diskmgmt.msc
Note which Disk and drive letter belong to your USB.
3. Back at the command prompt, type diskpart
diskpar
t
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 vo
l
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 the following;
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, you should have an exFAT bootable USB flash drive that is now able to Grub2 Boot from both Legacy BIOS and UEFI.
Make a Grub2 exFAT Bootable USB Flash Drive from Linux
I. Partitioning the USB flash drive into two partitions
Partitioning the USB flash drive with an exFAT partition first to use for ISOs and storage. Then a secondary Fat32 BOOT partition to use for Grub booting.
1. Open a terminal Ctrl+Alt+T
2. To switch to super user (root), type
sudo su
3. Type the following and then locate your USB
fdisk -l
4. Now to unmount and wipe partition info, (WARNING: erases all data) type the following (replacing X with the letter of your USB device);
umount /dev/sdX1
Note: Repeat unmount /dev/sdX# for any additional mounted partitions.
dd if=/dev/zero of=/dev/sdX bs=512 count=1
5. Next to select your USB device, (replacing X) type the following;
fdisk /dev/sdX
6. Then to create the first exFAT partition;
- type n and then press enter to create a new
- p to create a primary
- 1 to create the first primary partition
- just press enter to start at the default sector
- type -50M to set the size minus 50M (if prompted to remove signature, press Y)
- t for enabling type
- 7 to set the partition type to exFAT
7. Now to create the second fat32 partition;
- n to create a new
- p for primary
- 2 to create the second partition
- just press enter to start at the default sector
- then press enter once more to end at the default last sector
- t to enable type
- 2 to select the second partition
- 6 to set the type to fat
- a to make this partition active
- 2 again for the second partition
- w to write the information to disk and exit
8. Finally, to format the partitions, (replacing X) type;
mkfs.exfat -n USB /dev/sdX1
mkfs.vfat -F 32 -n BOOT /dev/sdX2
II. Installing Grub2 on the USB for UEFI and BIOS Boot
1. Type the following (replacing X with your actual USB letter)
mkdir /mnt/USB
mount /dev/sdX2 /mnt/USB
2. Grab the latest a1ive Grub2 release, copy/paste or type;
wget https://github.com/a1ive/grub/releases/download/latest/grub2-latest.tar.gz -O grub2-latest.tar.gz
3. Next to extract the files;
tar -xf grub2-latest.tar.gz
4. Then change to the grub i386-pc directory. And (replacing X), install Grub2 on the target USB.
cd grub/i386-pc
grub-install -d $PWD --force --no-floppy --target=i386-pc --boot-directory=/mnt/USB/boot /dev/sdX
6. Change to the grub2 i386-efi directory, and install;
cd ../i386-efi
grub-install -d $PWD --force --removable --no-floppy --target=i386-efi --boot-directory=/mnt/USB/boot --efi-directory=/mnt/USB
7. Next change to the x86_64 directory and install;
cd ../x86_64-efi
grub-install -d $PWD --force --removable --no-floppy --target=x86_64-efi --boot-directory=/mnt/USB/boot --efi-directory=/mnt/USB
8. Finally, unmount and remove the created mountpoint;
umount /mnt/USB
rmdir -rf /mnt/USB
If all went well, you should now have a Grub2 bootable USB Flash Drive. Utilizing exFAT for storage.
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
Booting your select ISO files from a flash drive prepared as an exFAT bootable USB;
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 distribution also include a driver, and that the exFAT partition is automounted during boot. Otherwise, once the boot process has been handed over, the path to the ISO will no longer be found. When that happens, you'll likely be dropped into a BusyBox shell.
Can I Boot ISO from USB without exFAT driver support?
Yes, there are a couple of ways to circumvent this requirement;
- Use PartNew to create and mount the ISO to a temporary partition.
- Or use map --mem to map the ISO to a memory address (if you have enough system memory).
- Then, set the proper linux and initrd paths or configfile path and proceed to boot the ISO
Here's an example exFAT grub.cfg to use for booting Ubuntu from exFAT. Simply copy it to the boot/grub/ folder on your BOOT partition. Then copy your SLAX, Fedora, Ubuntu Live based ISO files to your USB partition, and reboot. If all went well, you should be presented with a menu option to boot them using Partnew.
This concludes the detailed manual procedure to create an exFAT bootable USB flash drive.
Software to automatically Make an exFAT Bootable Flash Drive
How can I automatically make an exFAT formatted USB flash drive bootable? You can use YUMI Multiboot USB Software instead of performing these steps manually. This tool will create a multiboot exFAT bootable USB flash drive for you.
Additionally, the YUMI App provides links to popular Linux distributions and tools and offers a folder structure for pre boot navigation. It also allows for copying ISO files to USB via drag and drop. A persistence feature is available where applicable, enabling you to save and restore changes on subsequent boots.
If you found this interesting, you might also want to check out how to make a Windows 10 bootable USB drive.