NTFS, exFAT, APFS and ext4: which file system for which drive
Format any drive that will move between machines as exFAT. It is the only one of these four formats that current Windows, macOS and Linux all mount read-write with nothing extra installed, and that single property decides more real cases than any speed argument. What you give up is real: exFAT keeps no journal, so a yanked cable or a power cut mid-write can leave its directory structures inconsistent in a way NTFS and ext4 are built to survive.
Native support is the whole decision
| Format | Windows 10/11 | macOS (current) | Linux (current kernel) |
|---|---|---|---|
| NTFS | Read-write | Read-only | Read-write since kernel 5.15 |
| exFAT | Read-write | Read-write | Read-write since kernel 5.4 |
| APFS | No native driver | Read-write, used by macOS 10.13 and later | No mainline driver |
| ext4 | No native driver | No native driver | Read-write |
Two cells changed recently enough to invalidate a lot of older advice. Linux got a genuine in-kernel read-write NTFS driver, NTFS3, in kernel 5.15, released October 31, 2021 and contributed by Paragon Software. Before that, writing to an NTFS volume from Linux meant the FUSE-based ntfs-3g userspace driver.
exFAT arrived earlier and messier. Kernel 5.4, released November 24, 2019, added an exFAT implementation. Kernel 5.7, released May 31, 2020, threw it away: that code "has been dropped; instead, an alternative implementation coming from Samsung has been found to have better quality." Native exFAT dates to 5.4; the driver you actually run is the 5.7 one. Any guide telling you Linux needs an extra package to write to an exFAT stick is describing a machine from 2018.
The Windows and ext4 combination keeps disappointing people. Microsoft's WSL documentation says it in one line: "If you have an Ext4-formatted drive, you cannot mount it on your Windows file system." The wsl --mount command is the sanctioned route, and it hands the disk to the Linux kernel inside WSL rather than to Windows' own storage stack. You can reach the files afterwards through the \\wsl$\<Distro>\<Mountpoint> share, but that is Windows talking to Linux over a network path, not Windows reading ext4. Those docs also rule out bolting on a driver: "it's not possible to use installed filesystem drivers (such as ntfs-3g for example) by calling wsl --mount."
macOS will read an NTFS volume and refuse to write to it. Apple never says so in a headline, so the clearest statements come from the companies selling the fix. Paragon's Microsoft NTFS for Mac page says that on Windows volumes "you can only read data, but can't write or delete anything," and its extFS for Mac page is blunter about Linux formats: "macOS doesn't support Linux drives at all, not even in the read-only mode."
The limits that actually constrain a drive
| Format | Max file size | Max volume size | Journaling |
|---|---|---|---|
| NTFS | 2^64-1 bytes | 16 TB at 4 KB clusters, 256 TB at 64 KB clusters | Metadata only, plus change log |
| exFAT | 2^64-1 bytes | 2^32-1 clusters, up to 32 MB each | None |
| ext4 | 16 TiB at 4 KiB blocks | 1 EiB at 4 KiB blocks | Yes, three modes |
| APFS | Not published | Not published | Copy-on-write plus checkpoints |
| FAT32 | 4 GiB | 2^32 blocks | None |
The NTFS, exFAT and FAT32 rows come from Microsoft's file system comparison table. NTFS and exFAT share the same 2^64-1 byte per-file ceiling, so "exFAT can't handle big files" is not a thing: the exFAT spec says the format "uses 64 bits to describe file size" and "allows for clusters as large as 32MB." Both cap file names at 255 Unicode characters.
FAT32's 4 GiB per-file limit is the one you actually hit, and the symptom misleads: copying an 8 GB video onto a 64 GB stick fails with an error about space, on a drive reporting plenty free. If a copy dies at exactly the 4 GB mark, the drive is FAT32. Back it up and reformat as exFAT.
For ext4, the archived kernel wiki Ext4 Howto gives 16 TiB as the maximum file size and 1 EiB as the maximum file system size, both at a 4 KiB block size. It also records the jump to 64,000 subdirectories in a single directory, double ext3's 32,000, and dates the format's arrival as "a functionally complete and stable filesystem in Linux 2.6.28," which shipped in 2008.
APFS is the odd one out. Apple's Apple File System Reference, whose newest revision-history entry is dated June 22, 2020 and adds a chapter on sealed volumes, documents containers, volumes, B-trees and extents. It prints no maximum file size or volume size anywhere in its 180-odd pages. The 8 exabyte figure repeated across the web is plausible for a 64-bit design, but Apple does not state it. Treat it as folklore, not spec.
What journaling buys, and what exFAT does instead
NTFS journals metadata only. Microsoft's table has two rows here, metadata-only journaling and file change log, and marks both Yes for NTFS and No for exFAT, UDF and FAT32. Metadata-only means the file system's own structures survive a crash, not necessarily the contents of the file you were writing.
ext4 gives you a choice, set at mount time. The default is data=ordered, where "all data are forced directly out to the main file system prior to its metadata being committed to the journal." That keeps garbage bytes out of your files after a crash without paying to journal the data itself. data=journal commits everything to the journal first, the slowest mode, and disables delayed allocation and O_DIRECT. data=writeback is fastest and weakest: a crash can leave stale contents in a file whose metadata already claims the new size. Leave it at ordered unless you have measured a reason.
exFAT has none of this in the version you actually get. The specification describes revision 1.00, and transaction safety sits outside it, in an optional extension: "TexFAT is an extension to exFAT that adds transaction-safe operational semantics on top of the base file system. TexFAT is used by Windows CE." Flash drives, camera cards and pre-formatted external disks ship the plain base format.
What exFAT offers instead is damage detection. The spec defines a Backup Boot region that "aids recovery of the exFAT volume in the event of the Main Boot region being in an inconsistent state," a VolumeDirty flag whose set value means "the volume is probably in an inconsistent state," a MediaFailure flag, and checksums over the boot regions, directory entry sets and up-case table. Enough for a repair tool to know something broke. Not enough to replay a log and put the volume back to a known-good state, which is what NTFS and ext4 do.
APFS protects itself differently again, with copy-on-write plus a checkpoint mechanism: "If the process of writing a checkpoint is interrupted, that checkpoint is invalid and therefore is ignored the next time the device is mounted, rolling the file system back to the last valid state." Calling APFS "journaled" is an oversimplification. It reaches a similar outcome by other means.
Where this goes wrong in practice
The common exFAT failure is pulling the drive while the OS still has writes buffered. Eject it properly. When a drive comes back and Windows offers to scan and repair it, or Disk Utility flags it in First Aid, run the check before copying anything new onto it. Those tools are acting on the dirty flag. With no log behind them, the repair is best effort and can cost you the files that were open.
Do not put continuously written workloads on exFAT. Virtual machine disk images, databases and anything doing small frequent writes belong on a journaled format owned by one OS.
NTFS on Linux has its own caveat, and the kernel documents it plainly. NTFS3 "is fully functional NTFS Read-Write driver," but full journaling support over JBD is still on its to-do list: "Currently journal replaying is supported which is not necessarily as effective as JBD would be." So it works, but unmount cleanly, and if a volume comes back dirty, repair it on Windows.
Paying for a driver, and when to skip it
Tuxera's Microsoft NTFS for Mac lists at US $28.95 per license, covering up to five home computers. Paragon prints no standalone price for its individual products; the number on its site is the Mac ToolBox bundle at $54.99, packaging Microsoft NTFS for Mac, APFS for Windows, HFS+ for Windows and CampTune. Both list support through macOS Tahoe, which is macOS 26.
Buy one only when the format is fixed by something outside your control: a client's NTFS archive drive you must write to from a Mac, or a Mac-formatted disk you need on Windows. If you own both ends of the transfer, copy the data off and reformat as exFAT. That costs nothing and keeps a third-party kernel driver out of your boot path.
Picking per drive
A Windows internal disk gets NTFS. No decision to make. A Mac internal disk, or an external used only with Macs, gets APFS, which Apple describes as "the file system used by macOS 10.13 or later." Disk Utility also offers MS-DOS (FAT), for "Windows volumes that are 32 GB or less," and ExFAT, for "Windows volumes that are over 32 GB." A Linux system or server disk gets ext4, stable since 2.6.28.
Camera and drone cards are a special case: let the device format the card itself. Larger cards are commonly pre-formatted in exFAT, and the camera writing its own structures avoids compatibility surprises. Consoles usually format attached USB storage themselves, and the rules change between hardware generations, so follow the console's on-screen prompt rather than a forum post from two cycles ago.
One setting worth leaving alone: when you format exFAT manually, take whatever allocation unit size the tool proposes. That 32 MB cluster ceiling exists for very large volumes, and an oversized cluster on a drive full of small files wastes the difference on every one of them.
Sources
- https://learn.microsoft.com/en-us/windows/win32/fileio/filesystem-functionality-comparison
- https://learn.microsoft.com/en-us/windows/win32/fileio/exfat-specification
- https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk
- https://archive.kernel.org/oldwiki/ext4.wiki.kernel.org/index.php/Ext4_Howto.html
- https://www.kernel.org/doc/html/latest/admin-guide/ext4.html
- https://www.kernel.org/doc/html/latest/filesystems/ntfs3.html
- https://kernelnewbies.org/Linux_5.15
- https://kernelnewbies.org/Linux_5.4
- https://kernelnewbies.org/Linux_5.7
- https://developer.apple.com/support/downloads/Apple-File-System-Reference.pdf
- https://support.apple.com/guide/disk-utility/available-disk-formats-dsku19ed921c/mac
- https://www.paragon-software.com/home/ntfs-mac/
- https://www.paragon-software.com/home/extfs-mac/
- https://www.paragon-software.com/home/apfs-windows/
- https://ntfsformac.tuxera.com/try-before-you-buy-ntfs-for-mac-by-tuxera/
- https://ntfsformac.tuxera.com/