{
  "slug": "ext4-bigalloc",
  "term": "ext4 bigalloc",
  "aliases": [
    "bigalloc",
    "ext4 clustered allocation"
  ],
  "definition": "Ext4 bigalloc allocates space in power-of-two clusters of filesystem blocks, with each allocation-bitmap bit tracking a cluster.",
  "note": "Cluster size and filesystem block size are different parameters. A larger cluster reduces the bitmap bits needed to describe a given address space, while making allocation coarser. This is not a change to the logical sector size reported by a drive. [ext4-bigalloc]\n\nMke2fs selects block size with -b and cluster size with -C; -C requires bigalloc, and bigalloc requires extents. Record both the explicit options and the resulting feature set, rather than assuming defaults are unchanged across systems. [mke2fs] [ext4-manual]\n\nHesela's offline e2fsprogs 1.47.0 controls used 4 KiB blocks in every image. A dense 65,537-byte file had 68 KiB of inode-reported allocation without bigalloc, versus 128 KiB with 64 KiB clusters. This is a userspace image observation, not a kernel allocation or performance benchmark. [hesela-control]",
  "related": [
    "allocation-bitmap",
    "free-space-fragmentation",
    "file-preallocation",
    "filesystem-aging"
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "Coarser allocation can increase slack for small, non-inline files; bitmap savings are not total-filesystem savings.",
      "citationIds": [
        "ext4-bigalloc"
      ]
    },
    {
      "text": "Successful image creation does not validate every kernel, repair, resize or defragmentation workflow.",
      "citationIds": [
        "ext4-manual"
      ]
    }
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-22",
  "citations": [
    {
      "id": "ext4-bigalloc",
      "title": "Linux kernel documentation: ext4 bigalloc and clustered allocation",
      "url": "https://docs.kernel.org/filesystems/ext4/bigalloc.html",
      "accessed": "2026-10-22"
    },
    {
      "id": "mke2fs",
      "title": "e2fsprogs 1.47.0 mke2fs(8): block size, cluster size and directory import",
      "url": "https://manpages.debian.org/bookworm/e2fsprogs/mke2fs.8.en.html",
      "accessed": "2026-10-22"
    },
    {
      "id": "ext4-manual",
      "title": "e2fsprogs 1.47.0 ext4(5): bigalloc requires extents",
      "url": "https://manpages.debian.org/bookworm/e2fsprogs/ext4.5.en.html",
      "accessed": "2026-10-22"
    },
    {
      "id": "hesela-control",
      "title": "Hesela: ext4 bigalloc offline image controls, observations and boundaries",
      "url": "https://hesela.com/analyses/filesystem-aging-free-space-fragmentation/#bigalloc-granularity",
      "accessed": "2026-10-22"
    }
  ],
  "provenance": [
    "Format semantics from kernel documentation and versioned e2fsprogs manuals; original control observations are separately identified."
  ]
}
