The filesystem is the way an operating system organises data on a disk: where each file goes, how names, folders and permissions are remembered, what happens if the power fails halfway through a write. Most of the time the installer chooses for you, and it is a sensible choice. But when you format an external drive, add a disk to a server or need to share data between different systems, knowing the differences avoids nasty surprises.
What sets one filesystem apart from another
The features that really matter are few:
- journaling: the filesystem records operations before carrying them out, so after a sudden shutdown it can return to a consistent state in seconds instead of scanning the whole disk;
- copy-on-write: instead of overwriting data, it writes the new version elsewhere and then updates the references; this makes nearly free snapshots possible;
- data checksums: they let the system notice when a block has silently become corrupted;
- compatibility: which operating systems can read and write it without extra software;
- resizing, growing or shrinking, without reformatting.
Linux filesystems
ext4
It is the evolution of ext2 and ext3 and still the default filesystem of many distributions, including Debian and Ubuntu. It has journaling, it is mature, fast and supported by every recovery tool. It can be grown even while mounted and shrunk when unmounted. It offers neither snapshots nor data checksums. For a laptop or a server with no special needs it remains a very solid choice.
Btrfs
Btrfs is a copy-on-write filesystem with snapshots, checksums for data and metadata, transparent compression and subvolumes. Fedora uses it as the default for desktop installations, and openSUSE relies on it to roll back to a previous state after a failed update. Compression, for example with zstd, saves space on text files and programs. The RAID 1 and RAID 10 profiles are considered reliable, while RAID 5 and 6 have long been discouraged by the project's own documentation.
XFS
Designed for large files and parallel workloads, XFS has been the default on Red Hat Enterprise Linux since version 7. It handles very large volumes and heavy writes extremely well. Its best-known practical limit is that it can be grown but not shrunk: if you expect to have to reduce a partition, XFS is not for you.
Windows and macOS filesystems
NTFS
It has been the Windows filesystem since the NT family: journaling, detailed permissions, compression, volume-level encryption with BitLocker. macOS reads it but cannot write to it without extra tools. Linux reads and writes it; since kernel 5.15 it includes the ntfs3 driver. A practical detail: if Windows was shut down with Fast Startup enabled, the volume is left in a «hibernated» state and Linux can only mount it read-only, to avoid corrupting data.
APFS
Apple File System arrived in 2017 with macOS High Sierra and is now the filesystem of Macs, iPhones and iPads. It is optimised for SSDs, uses copy-on-write, supports snapshots (used by Time Machine) and native encryption. Several APFS volumes can share the space of a single container without fixed partitions. Outside the Apple ecosystem support is limited.
For drives used everywhere: exFAT and FAT32
USB sticks and external drives that move between different computers need simple, universal filesystems.
- FAT32 can be read by practically any device, including old car stereos and TVs, but does not accept files larger than 4 GB: a long video or a system image will not fit.
- exFAT removes this limit and is supported natively by Windows, macOS and recent Linux distributions. It has no journaling, so it should always be ejected properly before unplugging.
Summary table
| Filesystem | Where it is used | Journaling | Snapshots | Shrink | Notes |
|---|---|---|---|---|---|
| ext4 | Linux | yes | no | yes, unmounted | mature and simple |
| Btrfs | Linux | copy-on-write | yes | yes | checksums, compression |
| XFS | Linux, servers | yes | no | no | large files, heavy loads |
| NTFS | Windows | yes | via Windows | yes | limited writing on macOS |
| APFS | macOS, iOS | copy-on-write | yes | dynamic container | Apple ecosystem only |
| exFAT | external drives | no | no | no | maximum compatibility |
How to choose in practice
- Linux system disk: accept the distribution's default. Choose Btrfs if you want snapshots before updates, ext4 if you prefer maximum simplicity.
- Data disk on a server: ext4 or XFS for traditional workloads; XFS if you handle very large files and do not plan to shrink the volume.
- External drive shared between Windows and Mac: exFAT.
- External drive used with only one system: that system's native filesystem, which offers journaling and greater robustness.
- USB stick for older devices: FAT32, accepting the 4 GB limit.
Whatever you choose, no filesystem replaces a backup: journaling and checksums protect against sudden shutdowns and silent corruption, not against a failing disk or a file deleted by mistake.
In short
- Journaling, copy-on-write and checksums are the features that really distinguish filesystems.
- ext4 is the simple, robust choice; Btrfs adds snapshots and compression; XFS excels with large files but cannot shrink.
- NTFS and APFS are the native filesystems of Windows and macOS, with limited support elsewhere.
- For drives shared between different systems use exFAT; FAT32 only for older devices.
- No filesystem replaces a backup.