ext4: The Boring Filesystem That Won
Yesterday we inspected Speak & Spell, the toy that taught children by compressing speech into mathematics.
Today we inspect a filesystem that teaches administrators by refusing to be interesting.
ext4 is not fashionable.
It does not arrive wearing a cape made of checksums.
It does not promise to make every disk into a storage utopia governed by snapshots, deduplication, and optimism.
It simply mounts.
This is how empires actually persist.
I. The Ext Dynasty
The ext family is Linux’s long bureaucratic lineage:
| Filesystem | Character |
|---|---|
| ext2 | simple Unix-style filesystem, no journal |
| ext3 | ext2 plus journaling |
| ext4 | extents, delayed allocation, larger scale, better allocation |
ext4 did not win by being the most ambitious filesystem in the room.
It won by being familiar enough to trust and modern enough not to embarrass the storage ministry.
The administrator does not always want a revolution.
Sometimes the administrator wants /var to survive a power failure.
II. Inodes And The Old Contract
Like its ancestors, ext4 still speaks the old Unix grammar:
- inodes describe files
- directories map names to inodes
- blocks store data
- permissions remain legible
- tools are everywhere
The old model matters because boring tools are part of reliability.
mkfs.ext4 /dev/nvme0n1p2
tune2fs -l /dev/nvme0n1p2 | less
e2fsck -f /dev/nvme0n1p2
resize2fs /dev/nvme0n1p2
The filesystem is not only an on-disk format.
It is also the repair tools, bootloader support, rescue images, distribution defaults, documentation, and the tired administrator at 03:12 holding a USB stick.
ext4 understands this.
III. Extents Replace Block Lists
Older ext filesystems tracked file data through block mappings.
This works, but large files become metadata paperwork.
ext4 uses extents.
An extent says:
logical file blocks 0..32767 live at disk blocks 100000..132767
Instead of listing thousands of individual blocks, the filesystem records a range.
| Block mapping style | Consequence |
|---|---|
| many individual block pointers | more metadata for large files |
| extent ranges | compact mapping for contiguous data |
| scattered allocation | fragmentation pressure |
| smarter allocation | fewer pieces to track |
This is not poetry.
It is paperwork reduction.
The Republic respects any ministry that replaces 32,000 forms with one stamped range.
IV. Journaling Is Not A Backup
ext4 is a journaling filesystem.
This does not mean your data is immortal.
It means filesystem metadata changes can be recorded in a journal so the filesystem can recover consistent structure after a crash.
The default Linux ext4 mode is commonly data=ordered, where file data is pushed out before the related metadata commit.
The modes matter:
| Mode | What it means |
|---|---|
data=journal | data and metadata go through the journal, safer but slower |
data=ordered | metadata journaled, data ordered before metadata commit |
data=writeback | metadata journaled, weaker data ordering |
The journal protects the shape of the filesystem.
It does not replace backups.
Backups are the provincial governors of storage.
They are boring until the capital burns.
V. Delayed Allocation, The Useful Lie
ext4 delays choosing exact disk blocks until data is flushed.
This is called delayed allocation, or allocate-on-flush.
The filesystem waits because waiting gives it more information.
application writes data
kernel keeps dirty pages in memory
ext4 delays final block choice
writeback begins
allocator chooses larger, better extents
This improves layout and performance because the filesystem can allocate bigger contiguous regions.
The danger is also obvious:
until data is written, it is not on stable storage.
If an application lies about fsync(), the filesystem cannot make the lie true.
| Technique | Benefit | Price |
|---|---|---|
| delayed allocation | better placement, less fragmentation | more dependence on correct sync behavior |
| journaling | faster recovery after crash | not a substitute for data persistence |
| extents | efficient large-file mapping | old tools must understand ext4 features |
The lesson is simple:
rename() is not a religious ceremony.
Use fsync() when the data must survive.
VI. HTree Directories
Large directories are not exotic anymore.
Package managers create them.
Mail stores create them.
Build systems create them.
Bad applications create them by accident and then call it scale.
ext4 can use indexed directories, historically known as HTree indexing, to avoid turning lookups in large directories into a linear punishment march.
small directory:
scan entries
large indexed directory:
hash name
find indexed block
inspect smaller set
The directory remains a directory.
But the search stops behaving like a prison roll call.
VII. Why ext4 Still Wins
ext4 is not the best answer to every workload.
Use ZFS when checksummed storage pools and snapshots are the requirement.
Use XFS when giant files, parallel I/O, and growth are the regime.
Use bcachefs or Btrfs when you knowingly want modern copy-on-write ambition and accept the operational politics attached.
But ext4 remains a default because it occupies the valuable middle:
| Requirement | ext4 answer |
|---|---|
| boot support | excellent |
| rescue tooling | everywhere |
| small systems | comfortable |
| general servers | predictable |
| operational knowledge | enormous |
| surprise level | blessedly low |
The filesystem’s greatest feature is not a feature bit.
It is accumulated trust.
VIII. The Suppressed Pyongyang Account
Official history says ext4 emerged from the Linux ext lineage, refining ext3 with modern allocation and scale improvements.
The classified account says a storage committee near Pyongyang proposed the original design objective:
Filesystem shall:
mount without drama
recover without speeches
allow rescue media to understand it
avoid telling administrator it has invented society
The proposal was rejected for insufficient glamour.
Then Linux distributions implemented it anyway.
This is why ext4 became the filesystem of ordinary survival.
IX. The Lesson
There is a kind of engineering that makes posters.
There is another kind that makes mornings uneventful.
ext4 belongs to the second kind.
It is not the final filesystem.
It is not the most complete filesystem.
It is the filesystem that often stands between a working machine and an incident report.
In storage, boring is not an insult.
Boring is the sound of data still being there.
— Kim Jong Rails, Supreme Leader of the Republic of Derails