A journaling filesystem records changes in a dedicated journal before they are committed to the main filesystem structures. This helps protect filesystem consistency and can significantly reduce recovery time after a crash or unexpected shutdown.
Modern filesystems use a wider range of techniques to achieve similar goals. Besides conventional write-ahead journals, these include transactional updates, copy-on-write, log-structured designs, checkpointing and filesystem-specific recovery logs.
This roundup therefore covers traditional journaling filesystems together with transactional, copy-on-write and log-structured filesystems that provide mechanisms for maintaining or recovering filesystem consistency after an unexpected shutdown.
These filesystems are used across desktop systems, servers, clustered storage, flash devices and large-scale storage installations. Their designs differ considerably, particularly in areas such as scalability, integrity checking, snapshots, compression and flash management.
To provide an insight into the quality of journaling file systems that are available, we have compiled a list of our recommended file systems.
Let’s explore the journaling file systems at hand. For each title we have compiled its own portal page, providing a full description with an in-depth analysis of its features, together with links to relevant resources.
| Journaling File Systems | |
|---|---|
| Btrfs | Checksumming Copy on Write File system |
| ext4 | Evolved from ext3 adding many notable features including extents |
| XFS | Designed to maintain high performance with large files and file systems |
| F2FS | Flash file system initially developed by Samsung Electronics |
| OpenZFS | Advanced file system and volume manager originally developed for Solaris |
| GFS2 | Shared disk file system for Linux computer clusters |
| ext3 | Default file system for many popular Linux distributions |
| JFS | Journaled File System |
| UBIFS | File system for raw flash memory used through UBI volumes |
| OCFS2 | Extent-based cluster file system |
| JFFS2 | Log-structured flash file system designed for raw flash memory devices |
| Bcachefs | Advanced file system ejected from the mainline kernel |
| ScoutFS | Clustered file system designed for very large archival storage systems |
This article has been updated to reflect the changes outlined in our recent announcement.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |



Please read our Comment Policy before commenting.
I’ve always just stuck with ext4.
I have mostly used ext4 and its still the most common, but when moving over to CachyOS I saw a lot of advantages with its default filesystem, BTRFS, particularly: