exFAT vs NTFS vs APFS/HFS+ vs ext4: Which File System to Use
Move a drive between a Windows PC, a Mac and a Linux server and you quickly find that each operating system prefers a different file system. Windows uses NTFS, macOS uses APFS (and earlier HFS+), Linux mostly uses ext4, and exFAT is the neutral format many people use to share a drive. This article compares them, says which combinations can actually read and write which, and gives a practical recommendation for common situations. It expands the Windows-only view in Windows file systems compared.
The four systems in brief
- NTFS is Windows’s native file system: journaling, ACL permissions, compression, encryption and very large files. See the NTFS guide.
- exFAT is a lightweight file system from Microsoft made for flash drives and SD cards. No 4 GB file limit, but no journaling and no permissions.
- HFS+ (Mac OS Extended) was the Mac file system from 1998 to 2017 and is journaled. Apple replaced it with APFS in macOS High Sierra (2017); APFS is now the default for SSDs and all current Macs, with snapshots, cloning and built-in encryption. HFS+ still appears on old external disks and Time Machine drives.
- ext (ext2, ext3, ext4) is the family used by Linux. ext4 (2008) is the default on many distributions: journaled, supports very large files and volumes, and Unix-style permissions. Other Linux file systems such as XFS and Btrfs are common on servers.
Side-by-side comparison
| NTFS | exFAT | APFS / HFS+ | ext4 | |
|---|---|---|---|---|
| Native to | Windows | Portable media | macOS, iOS | Linux |
| Journaling / crash safety | Yes | No | APFS is copy-on-write; HFS+ has a journal | Yes |
| Permissions | Windows ACLs | None | Unix permissions and ACLs | Unix permissions, ACLs |
| Max file size | Very large (multi-petabyte) | Up to 16 EiB in theory | Very large (APFS is 64-bit) | 16 TiB (with 4 KB blocks) |
| Case sensitivity by default | Case-insensitive | Case-insensitive | Case-insensitive by default (case-sensitive option) | Case-sensitive |
| Snapshots | Via Volume Shadow Copy | No | APFS yes | No (use LVM or Btrfs) |
| Best for | Windows system and data drives | Drives shared across systems | Mac drives | Linux servers and desktops |
What can read and write what
| Windows | macOS | Linux | |
|---|---|---|---|
| NTFS | Read and write | Read only by default (third-party drivers add writing) | Read and write (ntfs3 or ntfs-3g) |
| exFAT | Read and write | Read and write | Read and write (in-kernel driver since 5.7, a staging driver from 5.4, or the exfat-fuse tool on older systems) |
| APFS / HFS+ | Not supported natively (third-party tools) | Read and write | HFS+ has a kernel driver (writing works on non-journaled volumes; journaled ones normally mount read-only). APFS needs separate drivers or tools. |
| ext4 | Not supported natively (third-party tools; WSL 2 can mount ext4 disks) | Not supported natively | Read and write |
Third-party drivers vary in quality, and writing to a foreign file system with an unreliable driver can corrupt it. For anything important, prefer a format the operating system supports natively.
Which one should you pick?
- A USB drive or SD card that moves between Windows and Mac, or that is used by a camera, console or TV: exFAT. Format with Disk Utility (macOS), File Explorer (Windows) or
mkfs.exfat(Linux). Always eject the drive properly, because exFAT has no journal. - Windows-only external drive: NTFS.
- Mac-only external drive: APFS for SSDs, and Mac OS Extended (Journaled) if it must work with macOS earlier than High Sierra. Time Machine backups should use the format the Mac suggests.
- Linux server or Linux-only disk: ext4 for general use, XFS for large files and databases.
- A drive shared between Windows and Linux on the same machine (dual boot): NTFS works for a shared data partition; disable Windows Fast Startup so Windows does not leave the NTFS volume in a hibernated state that Linux refuses to mount read-write.
- Files larger than 4 GB on a FAT32 drive: reformat as exFAT or NTFS.
How to check a drive’s file system
- Windows:
Get-Volume | Format-Table DriveLetter, FileSystem, Size - macOS:
diskutil listanddiskutil info /dev/disk2s1(replace with your device) - Linux:
lsblk -forsudo blkid
Formatting erases the drive, so copy your data off first and double-check the device name before you confirm.
Common questions
Why does my Mac show an NTFS drive as read-only?
macOS includes NTFS read support but not write support. Use exFAT if the drive must be writable on both systems, or install a commercial or open-source NTFS driver.
Is exFAT safe for backups?
It is fine for a copy of files that you also keep elsewhere, but exFAT has no journal and stores no Unix or Windows permissions, so it is a poor choice for the only copy of important data or for system backups.
Can Windows read Linux drives?
Not natively. WSL 2 can mount Linux disks with wsl --mount, and third-party tools can browse ext4 volumes.
Sources
- Microsoft Learn: File system functionality comparison
- Apple Developer: About Apple File System
- Linux kernel documentation: ext4
- Linux kernel documentation: NTFS3
- Microsoft Learn: Mount a Linux disk in WSL 2
- Microsoft Learn: exFAT specification
Related: A practical example of why the choice matters: the “file is too large for the destination file system” error on FAT32 USB drives.
