What are file systems?
Imagine every file on a computer as a book in a library. When a library puts a book somewhere, it records information about the book – name, author, date, etc. – and enters it into an index that tells people where they have to go to find the book later. Being able to search a single list is much more efficient than checking every book in the library from top to bottom. Depending on the library, they may also restrict access to certain special books. Pretty much all of them maintain a record of who’s taken the book out, though, which helps track any changes in the book’s status that may happen. That’s basically what file systems do: they keep track of file locations and metadata so your computer knows where to go when it needs to find something. This is a very basic and important function, so it isn’t surprising that there are a few different approaches to it, each suited for a different use. It’s not just FAT, exFAT, and NTFS, of course – Macs use HPF+ and APFS, while Linux systems use ext3 and ext4, among others. The Windows systems, developed by Microsoft, have become standards for a lot of storage devices, though, so you’ll see them on devices much more frequently than you might see HPF+ or ext4.
FAT32: very compatible but can’t handle large files
The FAT (File Allocation Table) system has undergone several incarnations since its introduction in 1977, and it’s still going strong today. Because it only has 32 bits for each address (thus the FAT32 designation), the technical maximum size of a FAT32 drive is 16 TB, and it can only handle files of 4 GB or less. Of course, this was fine back in the Windows 95 days, but files have gotten a lot heavier since then. In addition to its space constraints, FAT32 is missing modern features like file permissions and journaling. Nonetheless, it still works just fine for USB drives and SD cards, since they tend to be smaller and mostly used for applications that don’t require more advanced capabilities. In fact, FAT32 is still the default system for most removable storage under 32GB, mostly because it’s been around long enough that it’s compatible with almost everything. Windows, Mac, Linux, Android, and a many other systems can both read and write to FAT32 storage, making it a great choice for storage that might encounter multiple different machines.
exFAT: mostly compatible and handles large files
Removable flash storage over 32 GB tends to come formatted in exFAT (extended File Allocation Table), which is essentially Microsoft’s answer to the need for a FAT version that can handle modern drives and files. With 64-bit addressing, exFAT’s maximum drive size is 128 petabytes and the maximum 16 exabytes, and those are limits we probably won’t be bumping up against very soon. Like FAT32, exFAT doesn’t have many extra features, but it’s close behind in terms of compatibility. Windows, Mac, and Android machines can read and write to exFAT with no problem, as can many other modern devices. Linux kernel only added native support for exFAT in the recent 5.4 release, but you can just install a few packages to get full read-write exFAT support. In general, it’s a good default for your flash storage unless you anticipate needing to work with devices that might not support exFAT by default, like some Linux distributions or older systems.
NTFS: best for Windows system drives
This is where things get really different: NTFS (New Technology File System) is the file system Windows has been using widely since XP (though it started with NT), and it has many features that help it shine as a system drive. Not only are its volume and file size limits so huge you almost definitely won’t run into them, but it supports file permissions, journaling, encryption, shadow copies, and other things that help your OS stay secure and functional. The downside, though, is that NTFS is primarily a Windows file system, so it may not get along very well with others. Macs can read NTFS but not write to it. A lot of Linux distributions don’t support it natively (but can with some software), and non-PC devices are even less likely to play nice with an NTFS drive. You can use it as removable storage as long as you know all the devices that will need to interact with it support the format, but otherwise, it’s probably best to go with FAT32 or exFAT.
So which one do I use?
Here’s the quick and dirty guide:
Use FAT32 for maximum compatibility and files under 4 GBUse exFAT for high compatibility and files over 4 GBUse NTFS for Windows system drives and storage for systems you know will be compatible
And here’s a quick rundown for non-Microsoft formats:
Use APFS for any solid-state drives that will only be interacting with machines running macOS Sierra or higherUse HFS+ if you’ll be using the drive mainly with pre-Sierra MacsUse ext4 for most Linux distributions, but be aware that Windows and macOS do not natively support it
Image credits: NTFS mft, FAT32 Structure