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.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |



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: