Kennisbank › Opslag Bestandssystemen › ext4: The fourth extended file system for Linux
opslag bestandssystemen starter 27 August 2026

ext4: The fourth extended file system for Linux

ext4: The fourth extended file system for Linux

ext4 arose from the need to overcome the limitations of earlier extended file systems: limited maximum disk size, slow file indexing, and limited scalability.

Development history

The development of ext4 began as a project that had to be backward compatible with ext3. Existing ext3 file systems had to be upgradeable to ext4 without a full backup and restore.

On June 28, 2006, Theodore Ts'o announced a development plan for ext4. Ts'o, a well-known figure in the Linux kernel community, saw ext4 as an evolutionary step rather than a revolution—a step that retained the stability of ext3 but modernized the technology for modern storage systems.

On October 10, 2006, Andrew Morton first presented ext4 in experimental form, as part of the development of Linux kernel 2.6.19. The first experimental release was not stable, but it was usable for developers and testers.

The core of ext4 was included in Linux kernel version 2.6.19 as a development version. This integration made it possible for distributions and developers to test ext4 in real environments. The system quickly became popular among early adopters because it demonstrably offered better performance when reading and writing large amounts of data.

On October 11, 2008, a stable form of ext4 was merged into the Linux source code. This date marks the end of the experimental phase and the beginning of broad adoption by Linux distributions. Users no longer needed patches or external modules.

The first official release of a Linux kernel with stable ext4 support was Linux 2.6.28, published on December 25, 2008. This kernel version is mentioned in multiple sources as the moment when ext4 was ready for general use.

Technical improvements over ext3

ext4 offers:
  • Larger maximum file sizes: up to 16 tebibytes
  • Larger volumes: up to 1 exbibyte
  • Faster file system checks via lazy initialization
  • Improved fragmentation management via extents instead of traditional block map methods

Extents

ext4 uses extents, an advanced way to track file sizes and locations on disk. Instead of a list of individual blocks that a file occupies, ext4 uses an extent that describes a contiguous sequence of blocks. This reduces metadata overhead and increases efficiency, especially for large files.

Delayed allocation

ext4 offers delayed allocation: the allocation of disk blocks to a file is deferred until the moment the data is actually written out. This reduces fragmentation and improves write speed. In rare cases, it can increase the risk of data loss during a sudden power outage—a trade-off that is compensated by modern hardware and backup strategies.

Journaling

The journaling functionality of ext4 ensures that the file system can recover more quickly after a crash. The log (the journal) is used to complete or roll back unfinished transactions.

Influence of Cluster File Systems

Parts of the technology originated from earlier work carried out between 2003 and 2006 by Cluster File Systems, a company that worked on the Lustre file system. Lustre is a distributed file system for high-performance computing environments. The knowledge and techniques in the areas of scalable storage and efficiency had a direct influence on the architecture of ext4.

Adoption by Linux distributions

Starting in 2009, major Linux distributions began using ext4 as the default file system. Ubuntu, Fedora, and Red Hat Enterprise Linux gradually migrated from ext3 to ext4, partly because it offered better performance when booting, managing files, and recovering after an unexpected shutdown.

Management tools for ext4

In addition to kernel integration, utilities have been developed to manage ext4. Tools such as resize2fs and debugfs support ext4, just as they supported ext2 and ext3.

resize2fs

resize2fs can be used to enlarge or shrink ext4 file systems, both online (while in use) and offline.

debugfs

debugfs is an interactive debugger that allows administrators to inspect and repair the internal structure of an ext4 file system.

ext4 and systemd

Modern Linux systems with systemd offer support for ext4 via services such as systemd-makefs@.service and systemd-growfs@.service, which can automatically create or expand file systems during boot. This makes ext4 suitable for use in automated infrastructure environments, such as containers, virtual machines, and cloud platforms.

Verification

Check whether your system supports ext4:

cat /proc/filesystems | grep ext4

Check the file system type of a mount:

findmnt -no FSTYPE /

Check the kernel version:

uname -r

Common problems

1. Can I upgrade an ext3 file system to ext4 without data loss?

Yes, with the right procedure. First, make sure you have a backup. Then use:

tune2fs -O extents,uninit_bg,dir_index /dev/sdX
e2fsck -f /dev/sdX

2. What is the maximum volume size for ext4?

The theoretical maximum is 1 exbibyte, but the practical limit depends on the block size. With 4K blocks, the maximum is 16 tebibytes per file and 1 exbibyte per volume.

3. How do I fix a corrupted ext4 file system?

Use e2fsck in offline mode:

umount /dev/sdX
e2fsck -f -y /dev/sdX

It remains one of the most widely used and reliable file systems in the open-source world, but the question is how long it will hold that position against newer file systems such as Btrfs and XFS.

← Back to knowledge base
← Terug naar kennisbank