| .. SPDX-License-Identifier: GPL-2.0 | |
| Blocks | |
| ------ | |
| ext4 allocates storage space in units of “blocks”. A block is a group of | |
| sectors between 1KiB and 64KiB, and the number of sectors must be an | |
| integral power of 2. Blocks are in turn grouped into larger units called | |
| block groups. Block size is specified at mkfs time and typically is | |
| 4KiB. You may experience mounting problems if block size is greater than | |
| page size (i.e. 64KiB blocks on a i386 which only has 4KiB memory | |
| pages). By default a filesystem can contain 2^32 blocks; if the '64bit' | |
| feature is enabled, then a filesystem can have 2^64 blocks. The location | |
| of structures is stored in terms of the block number the structure lives | |
| in and not the absolute offset on disk. | |
| For 32-bit filesystems, limits are as follows: | |
| .. list-table:: | |
| :widths: 1 1 1 1 1 | |
| :header-rows: 1 | |
| * - Item | |
| - 1KiB | |
| - 2KiB | |
| - 4KiB | |
| - 64KiB | |
| * - Blocks | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| * - Inodes | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| * - File System Size | |
| - 4TiB | |
| - 8TiB | |
| - 16TiB | |
| - 256PiB | |
| * - Blocks Per Block Group | |
| - 8,192 | |
| - 16,384 | |
| - 32,768 | |
| - 524,288 | |
| * - Inodes Per Block Group | |
| - 8,192 | |
| - 16,384 | |
| - 32,768 | |
| - 524,288 | |
| * - Block Group Size | |
| - 8MiB | |
| - 32MiB | |
| - 128MiB | |
| - 32GiB | |
| * - Blocks Per File, Extents | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| * - Blocks Per File, Block Maps | |
| - 16,843,020 | |
| - 134,480,396 | |
| - 1,074,791,436 | |
| - 4,398,314,962,956 (really 2^32 due to field size limitations) | |
| * - File Size, Extents | |
| - 4TiB | |
| - 8TiB | |
| - 16TiB | |
| - 256TiB | |
| * - File Size, Block Maps | |
| - 16GiB | |
| - 256GiB | |
| - 4TiB | |
| - 256TiB | |
| For 64-bit filesystems, limits are as follows: | |
| .. list-table:: | |
| :widths: 1 1 1 1 1 | |
| :header-rows: 1 | |
| * - Item | |
| - 1KiB | |
| - 2KiB | |
| - 4KiB | |
| - 64KiB | |
| * - Blocks | |
| - 2^64 | |
| - 2^64 | |
| - 2^64 | |
| - 2^64 | |
| * - Inodes | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| * - File System Size | |
| - 16ZiB | |
| - 32ZiB | |
| - 64ZiB | |
| - 1YiB | |
| * - Blocks Per Block Group | |
| - 8,192 | |
| - 16,384 | |
| - 32,768 | |
| - 524,288 | |
| * - Inodes Per Block Group | |
| - 8,192 | |
| - 16,384 | |
| - 32,768 | |
| - 524,288 | |
| * - Block Group Size | |
| - 8MiB | |
| - 32MiB | |
| - 128MiB | |
| - 32GiB | |
| * - Blocks Per File, Extents | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| - 2^32 | |
| * - Blocks Per File, Block Maps | |
| - 16,843,020 | |
| - 134,480,396 | |
| - 1,074,791,436 | |
| - 4,398,314,962,956 (really 2^32 due to field size limitations) | |
| * - File Size, Extents | |
| - 4TiB | |
| - 8TiB | |
| - 16TiB | |
| - 256TiB | |
| * - File Size, Block Maps | |
| - 16GiB | |
| - 256GiB | |
| - 4TiB | |
| - 256TiB | |
| Note: Files not using extents (i.e. files using block maps) must be | |
| placed within the first 2^32 blocks of a filesystem. Files with extents | |
| must be placed within the first 2^48 blocks of a filesystem. It's not | |
| clear what happens with larger filesystems. |