Highlighted
pluriel
1 Nickel

BIOS update required: USB bootable flash drive file system

I haven't tested all the different file systems, but it appears that it is possible to boot from only FAT(16) and FAT32 file systems in UEFI boot mode on USB flash drives on my new Dell Inspiron 7567. I spent about half an hour trying to figure out why Windows wasn't installing in UEFI mode, until I realised the laptop's BIOS was booting the drive in legacy boot mode.

Could we please make it possible to boot from NTFS-formatted drives in future BIOS revisions, given that this has been the standard with most other manufacturers for a number of years?  And yes, this does matter to those of us wishing to put files >4GB on their USB boot drive. BIOS revision of the Dell is the latest at this time (v1.2.0). Thank you.

0 Kudos
4 Replies
Saltgrass
4 Ruthenium

RE: BIOS update required: USB bootable flash drive file system

FAT32 has been the UEFI standard.  Even the System partition on the install is FAT 32.  I don't know for sure but I believe it has to be able to run certain types of programs and cannot be NTFS..

Most places which explain how to set up a Boot USB drive for UEFI mentions it has to be FAT32.

FAT 32 formatting for USB drives is good up to 32 GB drive sizes.  Larger ones will just create a 32 GB partition.

----------------------------------------------------------------------------------


XPS 2720, Inspiron 17 7779, Inspiron 15 7567, XPS 13 9365, Inspiron 1545, TB16 Dock

0 Kudos
jphughan
5 Rhenium

RE: BIOS update required: USB bootable flash drive file system

The UEFI spec mandates support for FAT(16) and FAT32.  NTFS is optional, and SOME Dell laptop models have native support for booting NTFS in UEFI mode, but they are uncommon, and strangely it seems that newer models are losing this capability.  It seems to have started disappearing around the time Dell started writing its own BIOS/UEFI firmware rather than relying on a vendor.

However, take a look at Rufus, which you can find at rufus.akeo.ie.  It's a tool meant for creating bootable media, and if you choose to create an MBR or GPT volume for UEFI systems (not MBR for UEFI-CSM!!), and then also choose NTFS, Rufus will actually create two partitions on the flash drive.  The first will be the regular partition, and then the second will be a small FAT16 partition that contains a UEFI NTFS driver.  If you're running Win10 1703 or newer, you'll see the second partition; if you're running an older version, then you won't because previous versions of Windows will only mount the first partition of USB removable media, but it's there and will be accessible to the BIOS.

The only catch to this approach is that you will have to disable Secure Boot in order to make it work since the UEFI NTFS bootloader is not signed, because Microsoft refuses to sign GPLv3-licensed code.  However, after you're done booting from the flash drive, you can turn it right back on.  Also, I recommend using "MBR for UEFI systems" rather than GPT, because I've noticed that some Dell systems will only boot from the first partition of removable media in UEFI mode when the media uses the GPT layout.  That doesn't work here because the first partition will be the NTFS partition, because of the issue I mentioned earlier of older Windows versions not mounting anything other than the first partition.  If the UEFI NTFS driver partition were first, then anyone running a version of Windows earlier than Win10 1703 would only ever see the tiny UEFI driver partition when they connected their flash drive, while the NTFS partition would remain hidden, which obviously isn't ideal.

But once you get it set up, you just tell your system to boot from your flash drive (the boot option might even specify "Partition 2"), then you'll see a quick UEFI NTFS driver load, and then it will automatically boot to whatever is set up on the NTFS partition.

jphughan
5 Rhenium

RE: BIOS update required: USB bootable flash drive file system

In addition to the above, another advantage of using "MBR for UEFI" rather than GPT is that if you manually mark the NTFS partition as "active" (bootable) using Diskpart, then the NTFS partition becomes directly bootable for Legacy BIOS systems.  At that point, you now have a flash drive that can boot in either Legacy or UEFI mode -- but be careful with that, because as you've found, that also increases the risk of accidentally booting in a mode you didn't intend.

I have a flash drive set up in the way I've just described, and I actually just keep a folder called "Boot" on my NTFS partition.  In there I have separate subfolders for everything I might want to boot, i.e. Windows 7, Windows 8.1, various releases of Windows 10, Macrium Reflect Rescue Media, etc.  Then whenever I want to boot one, I do a cut and paste from the desired subfolder onto the root of the flash drive, boot from my USB drive, and whenever I'm done, I just cut and paste all of that data back into the correct subfolder.  Having to temporarily disable Secure Boot is a bit annoying, but I'm willing to deal with it in exchange for having something that works with both UEFI and Legacy systems while maintaining support for files larger than 4GB.

0 Kudos
jphughan
5 Rhenium

RE: BIOS update required: USB bootable flash drive file system

Lastly (sorry I split this into three posts!), if you want some technical background on why NTFS has been "the standard" for years and suddenly disappeared with UEFI, here's the story:

Legacy BIOS systems can only boot from disks initialized using the MBR layout.  Those disks have something called an MBR (Master Boot Record) for the entire disk, and then each partition marked as "active" (bootable) has what's called a boot sector.  Both of those areas are allowed to contain executable code.  That is what makes it possible to have Legacy BIOS systems understand NTFS, and a variety of other file systems for that matter.  The BIOS itself doesn't have native support for ANY file system.  This is also why on Legacy BIOS systems, you just choose to boot from a particular device.

UEFI works completely differently.  For security reasons, the UEFI spec deliberately removed support for running executable code from those areas, even when it's booting from an MBR disk.  With UEFI, you don't actually just specify a device to boot from.  You specify a specific file to boot from.  The reason you don't see this is because the UEFI spec defines a default file path that systems are supposed to check for on any devices they detect at boot, namely "\EFI\Boot\Bootx64.efi" -- and if you check any UEFI-bootable media, you'll find that file at that path, which is why your system lists a device containing that file as a possible boot device.  Additionally, if you check the boot order of any UEFI system that has Windows installed, you'll find an entry pointing to a file called "Bootmgfw.efi", which is the Windows Boot Loader file.  But because UEFI is technically looking for specific files, it has to have native support for the file system where that file resides rather than relying on executable code on the device to "teach" it the way a Legacy BIOS system does.  And like I said, the UEFI spec only mandated FAT16 and FAT32.

0 Kudos