If you’re a Linux user, you’ve likely been asked at some point if you want Ext3, Ext4, XFS, ReiserFS, Btrfs, or one of many other filesystem acronyms. This choice confuses new and old users alike, and like all software, the options change as technology improves. Many people probably don’t care what filesystem they use as long as it’s stable and reasonably fast, but how do you know which one that is? This guide will attempt to cover the basic differences between the most common options, and provide the pros and cons of each choice.
Ext2 is Linux’s “old standby” filesystem. It was the default for most of the major early Linux distributions. While it has been mostly supplanted by versions 3 and 4, ext2 is still popular on USB and other solid-state devices. This is because it does not have a journaling function, so it generally makes fewer reads and writes to the drive, effectively extending the life of the device.
Recommended Use: USB/Solid State Drives, or any cause where you need high stability with minimal reads/writes.
The most notable difference between ext2 and ext3 was the introduction of journaling. In short, journaling filesystems are meant to recover more gracefully in the event of a system crash. Whenever you find yourself in doubt about which filesystem to use for Linux, ext3 is nearly always a good bet. It’s extremely mature, extremely well supported, and contains all the features you’re likely to need for a desktop OS.
Recommended Use: If you have no specific reason for another filesystem, ext3 is an excellent default.
The most recent in the ext filesystem line, ext4 includes many major improvements over ext3 like larger filesystem support, faster checking, nanosecond timestamps, and verification of the journal through checksums. It’s backward and forward compatible with versions 2 and 3, so you can mount a ext2 or ext3 filesystem as ext4, and the other way around. You may however lose some of the benefits of the newer versions when mounting as the older. Many of the modern Linux distributions now offer ext4 during the install, and some are using it as the default.
Recommended Use: Ext4 should be stable enough for desktop and server needs. If your distribution offers it as an install choice, it should be a good choice for nearly any usage needs.
Before ext3, ReiserFS was the only journaling filesystem for Linux. It’s also notable for allowing live resizing of the filesystem. In some cases where many small files are involved, Reiserfs can outperform ext3 by a considerable margin. Reiser3 has problems, however when it comes to handling things like multicore PCs, as the design only allows for some operations to run one at a time.
Recommended Use: Interacting with small files on a single core system.
Reiser4 is intended to solve some of the problems with the Reiser3 implementation. Performance has improved, particularly with small files, and it includes support for plugins to handle things like compression and encryption. Reiser4 has a somewhat uncertain future. It has not yet been accepted into the main line Linux kernel, the lead designer is in prison, and the company developing it is not currently in business. Reiser4, if completed and fully polished, could be a fast and useful filesystem, but until it gains a foothold in the mainline kernel it may not be a good choice for long term use.
Recommended Use: Filesystem testing and development
XFS is packed full of cool features like guaranteed rate I/O, online resizing, built-in quota enforcement, and it can theoretically support filesystems up to 8 exabytes in size. It’s been used on Linux since about 2001, and is available as an install option on many popular Linux distributions. With variable block sizes, you can tune your system like a sliding scale to tweak for space efficiency or read performance.
Recommended Use: If you really like to tweak your system to meet your needs, XFS is a great way to go.
Btrfs is still in development, and may not yet be ready for production server use. That said, it has been included to some extent in the Linux kernel and is available as an install option in some distributions. Some of the interesting features include transparent compression, snapshots, cloning, and in-place conversion (with rollback) from ext3 and 4. According to the lead developer, Btrfs aims to “let Linux scale for the storage that will be available.” Btrfs, once completed and matured, will likely be a strong contender in the Linux filesystem world on both desktops and servers.
Recommended Use: Eventually, Btrfs should make for an excellent filesystem for servers and other high-bandwidth high-storage devices.