/ɛks tiː fɔːr/

noun — "modern journaling Linux filesystem."

EXT4, short for Fourth Extended File System, is a Linux filesystem that advances the design of EXT3 by adding features for higher performance, larger volume and file support, and improved reliability. It maintains backward compatibility with EXT3 while introducing extents, delayed allocation, multiblock allocation, and larger timestamps, enhancing efficiency and reducing fragmentation.

Technically, EXT4 continues to use the block group structure inherited from EXT and EXT2, with inodes storing metadata including ownership, permissions, timestamps, and pointers to data blocks. Unlike previous versions, EXT4 uses extents—contiguous ranges of blocks—to represent large files, reducing metadata overhead. Delayed allocation postpones block assignment until data is flushed to disk, improving contiguous block allocation and performance. Journaling options include writeback, ordered, and journal modes similar to EXT3, providing crash recovery and consistent metadata. EXT4 supports volumes up to 1 exabyte and individual file sizes up to 16 terabytes, depending on block size and inode configuration.

Operationally, writing a file on an EXT4 filesystem involves allocating an inode, determining optimal extents using delayed allocation, and writing data blocks to disk. The journal records metadata changes before committing them, allowing fast recovery after unexpected shutdowns. Reading files involves translating logical block numbers from inodes or extents into physical disk locations, with the filesystem handling large contiguous blocks efficiently. Administrative tasks are performed using tools like mkfs.ext4, tune2fs, and fsck.

Example workflow for creating and mounting an EXT4 filesystem:


mkfs.ext4 /dev/sdc1
mount /dev/sdc1 /mnt/data
ls -l /mnt/data

This sequence formats a partition as EXT4, mounts it, and verifies its contents. The journaling and extent features ensure high reliability and efficiency for both small and large files.

In practice, EXT4 is widely deployed across modern Linux desktops, servers, cloud environments, and embedded systems. Its combination of backward compatibility, high performance, large volume support, and journaling makes it suitable for high-throughput workloads, database storage, and general-purpose file storage. Features like multiblock allocation and persistent preallocation further optimize performance for intensive write operations.

Conceptually, EXT4 is like a warehouse with smart shelving: blocks of items (data) are stored in contiguous racks (extents), reserved ahead of time (delayed allocation), and changes are logged in a ledger (journal) to ensure consistency and rapid recovery in case of disruption.

See EXT3, EXT2, FileSystem, Journaling, EXT.