{
  "slug": "ext4",
  "term": "Ext4",
  "aliases": [
    "fourth extended filesystem",
    "ext4 filesystem"
  ],
  "definition": "Ext4 is a general-purpose Linux filesystem in the extended-filesystem family that supports extent-based block mapping and configurable journaling.",
  "note": "Ext4 divides storage into block groups. With the extent feature, a mapping describes a contiguous range of file blocks and the storage blocks backing it, rather than listing each block separately. Block groups, inodes and extents describe filesystem organization, not the physical layout inside an SSD. [overview] [manual]\n\nJournaling depends on the has_journal feature; the filesystem name alone does not establish that a journal is present. With journaling enabled, data=ordered normally journals metadata rather than ordinary file contents; supported per-file data-journaling settings can override that policy. [attributes] The data=journal and data=writeback modes have different coverage and ordering. These policies do not supply an application's multi-file transaction boundary. [manual] [journal]\n\nJournal replay addresses filesystem consistency after a crash. The metadata_csum feature checks filesystem structures; it is not a general per-file content checksum. Applications still need a persistence protocol and must check synchronization errors. Synchronizing a file alone does not guarantee persistence of its containing directory entry. [checksums] [fsync]",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "A read-only mount can still replay the journal and write to storage. The documented ro,noload combination suppresses journal loading, but skipping replay after an unclean shutdown can leave inconsistencies; it does not repair them.",
      "citationIds": [
        "mount-options"
      ]
    }
  ],
  "related": [
    "ext4-auto-da-alloc",
    "ext4-bigalloc",
    "ext4-data-journal",
    "ext4-data-ordered",
    "ext4-data-writeback",
    "ext4-fast-commit",
    "ext4-orphan-file",
    "ext4-orphan-inode",
    "inode",
    "file-extent",
    "delayed-allocation",
    "fsync",
    "filesystem-consistency-invariant",
    "read-only-mount"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-24",
  "citations": [
    {
      "id": "manual",
      "title": "e2fsprogs ext4(5): filesystem family, extent and has_journal features",
      "url": "https://man7.org/linux/man-pages/man5/ext4.5.html",
      "accessed": "2026-10-24"
    },
    {
      "id": "overview",
      "title": "Linux v6.16: ext4 block-group organization",
      "url": "https://github.com/torvalds/linux/blob/v6.16/Documentation/filesystems/ext4/overview.rst",
      "accessed": "2026-10-24"
    },
    {
      "id": "journal",
      "title": "Linux v6.16: ext4 Journal (jbd2), metadata recovery and data modes",
      "url": "https://github.com/torvalds/linux/blob/v6.16/Documentation/filesystems/ext4/journal.rst",
      "accessed": "2026-10-24"
    },
    {
      "id": "checksums",
      "title": "Linux v6.16: ext4 metadata checksum coverage",
      "url": "https://github.com/torvalds/linux/blob/v6.16/Documentation/filesystems/ext4/checksums.rst",
      "accessed": "2026-10-24"
    },
    {
      "id": "fsync",
      "title": "Linux man-pages fsync(2): file data, directory entries and errors",
      "url": "https://man7.org/linux/man-pages/man2/fsync.2.html",
      "accessed": "2026-10-24"
    },
    {
      "id": "attributes",
      "title": "e2fsprogs chattr(1): per-file data-journaling attribute j",
      "url": "https://man7.org/linux/man-pages/man1/chattr.1.html",
      "accessed": "2026-10-24"
    },
    {
      "id": "mount-options",
      "title": "Linux v6.16: ext4 read-only mounts, journal replay and noload",
      "url": "https://docs.kernel.org/6.16/admin-guide/ext4.html",
      "accessed": "2026-10-24"
    }
  ],
  "provenance": [
    "Foundational source review using e2fsprogs documentation and Linux v6.16 design documents; no runtime test, capacity limit or performance ranking is asserted."
  ]
}
