18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciSuper Block
48c2ecf20Sopenharmony_ci-----------
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciThe superblock records various information about the enclosing
78c2ecf20Sopenharmony_cifilesystem, such as block counts, inode counts, supported features,
88c2ecf20Sopenharmony_cimaintenance information, and more.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciIf the sparse\_super feature flag is set, redundant copies of the
118c2ecf20Sopenharmony_cisuperblock and group descriptors are kept only in the groups whose group
128c2ecf20Sopenharmony_cinumber is either 0 or a power of 3, 5, or 7. If the flag is not set,
138c2ecf20Sopenharmony_ciredundant copies are kept in all groups.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciThe superblock checksum is calculated against the superblock structure,
168c2ecf20Sopenharmony_ciwhich includes the FS UUID.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciThe ext4 superblock is laid out as follows in
198c2ecf20Sopenharmony_ci``struct ext4_super_block``:
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci.. list-table::
228c2ecf20Sopenharmony_ci   :widths: 8 8 24 40
238c2ecf20Sopenharmony_ci   :header-rows: 1
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci   * - Offset
268c2ecf20Sopenharmony_ci     - Size
278c2ecf20Sopenharmony_ci     - Name
288c2ecf20Sopenharmony_ci     - Description
298c2ecf20Sopenharmony_ci   * - 0x0
308c2ecf20Sopenharmony_ci     - \_\_le32
318c2ecf20Sopenharmony_ci     - s\_inodes\_count
328c2ecf20Sopenharmony_ci     - Total inode count.
338c2ecf20Sopenharmony_ci   * - 0x4
348c2ecf20Sopenharmony_ci     - \_\_le32
358c2ecf20Sopenharmony_ci     - s\_blocks\_count\_lo
368c2ecf20Sopenharmony_ci     - Total block count.
378c2ecf20Sopenharmony_ci   * - 0x8
388c2ecf20Sopenharmony_ci     - \_\_le32
398c2ecf20Sopenharmony_ci     - s\_r\_blocks\_count\_lo
408c2ecf20Sopenharmony_ci     - This number of blocks can only be allocated by the super-user.
418c2ecf20Sopenharmony_ci   * - 0xC
428c2ecf20Sopenharmony_ci     - \_\_le32
438c2ecf20Sopenharmony_ci     - s\_free\_blocks\_count\_lo
448c2ecf20Sopenharmony_ci     - Free block count.
458c2ecf20Sopenharmony_ci   * - 0x10
468c2ecf20Sopenharmony_ci     - \_\_le32
478c2ecf20Sopenharmony_ci     - s\_free\_inodes\_count
488c2ecf20Sopenharmony_ci     - Free inode count.
498c2ecf20Sopenharmony_ci   * - 0x14
508c2ecf20Sopenharmony_ci     - \_\_le32
518c2ecf20Sopenharmony_ci     - s\_first\_data\_block
528c2ecf20Sopenharmony_ci     - First data block. This must be at least 1 for 1k-block filesystems and
538c2ecf20Sopenharmony_ci       is typically 0 for all other block sizes.
548c2ecf20Sopenharmony_ci   * - 0x18
558c2ecf20Sopenharmony_ci     - \_\_le32
568c2ecf20Sopenharmony_ci     - s\_log\_block\_size
578c2ecf20Sopenharmony_ci     - Block size is 2 ^ (10 + s\_log\_block\_size).
588c2ecf20Sopenharmony_ci   * - 0x1C
598c2ecf20Sopenharmony_ci     - \_\_le32
608c2ecf20Sopenharmony_ci     - s\_log\_cluster\_size
618c2ecf20Sopenharmony_ci     - Cluster size is 2 ^ (10 + s\_log\_cluster\_size) blocks if bigalloc is
628c2ecf20Sopenharmony_ci       enabled. Otherwise s\_log\_cluster\_size must equal s\_log\_block\_size.
638c2ecf20Sopenharmony_ci   * - 0x20
648c2ecf20Sopenharmony_ci     - \_\_le32
658c2ecf20Sopenharmony_ci     - s\_blocks\_per\_group
668c2ecf20Sopenharmony_ci     - Blocks per group.
678c2ecf20Sopenharmony_ci   * - 0x24
688c2ecf20Sopenharmony_ci     - \_\_le32
698c2ecf20Sopenharmony_ci     - s\_clusters\_per\_group
708c2ecf20Sopenharmony_ci     - Clusters per group, if bigalloc is enabled. Otherwise
718c2ecf20Sopenharmony_ci       s\_clusters\_per\_group must equal s\_blocks\_per\_group.
728c2ecf20Sopenharmony_ci   * - 0x28
738c2ecf20Sopenharmony_ci     - \_\_le32
748c2ecf20Sopenharmony_ci     - s\_inodes\_per\_group
758c2ecf20Sopenharmony_ci     - Inodes per group.
768c2ecf20Sopenharmony_ci   * - 0x2C
778c2ecf20Sopenharmony_ci     - \_\_le32
788c2ecf20Sopenharmony_ci     - s\_mtime
798c2ecf20Sopenharmony_ci     - Mount time, in seconds since the epoch.
808c2ecf20Sopenharmony_ci   * - 0x30
818c2ecf20Sopenharmony_ci     - \_\_le32
828c2ecf20Sopenharmony_ci     - s\_wtime
838c2ecf20Sopenharmony_ci     - Write time, in seconds since the epoch.
848c2ecf20Sopenharmony_ci   * - 0x34
858c2ecf20Sopenharmony_ci     - \_\_le16
868c2ecf20Sopenharmony_ci     - s\_mnt\_count
878c2ecf20Sopenharmony_ci     - Number of mounts since the last fsck.
888c2ecf20Sopenharmony_ci   * - 0x36
898c2ecf20Sopenharmony_ci     - \_\_le16
908c2ecf20Sopenharmony_ci     - s\_max\_mnt\_count
918c2ecf20Sopenharmony_ci     - Number of mounts beyond which a fsck is needed.
928c2ecf20Sopenharmony_ci   * - 0x38
938c2ecf20Sopenharmony_ci     - \_\_le16
948c2ecf20Sopenharmony_ci     - s\_magic
958c2ecf20Sopenharmony_ci     - Magic signature, 0xEF53
968c2ecf20Sopenharmony_ci   * - 0x3A
978c2ecf20Sopenharmony_ci     - \_\_le16
988c2ecf20Sopenharmony_ci     - s\_state
998c2ecf20Sopenharmony_ci     - File system state. See super_state_ for more info.
1008c2ecf20Sopenharmony_ci   * - 0x3C
1018c2ecf20Sopenharmony_ci     - \_\_le16
1028c2ecf20Sopenharmony_ci     - s\_errors
1038c2ecf20Sopenharmony_ci     - Behaviour when detecting errors. See super_errors_ for more info.
1048c2ecf20Sopenharmony_ci   * - 0x3E
1058c2ecf20Sopenharmony_ci     - \_\_le16
1068c2ecf20Sopenharmony_ci     - s\_minor\_rev\_level
1078c2ecf20Sopenharmony_ci     - Minor revision level.
1088c2ecf20Sopenharmony_ci   * - 0x40
1098c2ecf20Sopenharmony_ci     - \_\_le32
1108c2ecf20Sopenharmony_ci     - s\_lastcheck
1118c2ecf20Sopenharmony_ci     - Time of last check, in seconds since the epoch.
1128c2ecf20Sopenharmony_ci   * - 0x44
1138c2ecf20Sopenharmony_ci     - \_\_le32
1148c2ecf20Sopenharmony_ci     - s\_checkinterval
1158c2ecf20Sopenharmony_ci     - Maximum time between checks, in seconds.
1168c2ecf20Sopenharmony_ci   * - 0x48
1178c2ecf20Sopenharmony_ci     - \_\_le32
1188c2ecf20Sopenharmony_ci     - s\_creator\_os
1198c2ecf20Sopenharmony_ci     - Creator OS. See the table super_creator_ for more info.
1208c2ecf20Sopenharmony_ci   * - 0x4C
1218c2ecf20Sopenharmony_ci     - \_\_le32
1228c2ecf20Sopenharmony_ci     - s\_rev\_level
1238c2ecf20Sopenharmony_ci     - Revision level. See the table super_revision_ for more info.
1248c2ecf20Sopenharmony_ci   * - 0x50
1258c2ecf20Sopenharmony_ci     - \_\_le16
1268c2ecf20Sopenharmony_ci     - s\_def\_resuid
1278c2ecf20Sopenharmony_ci     - Default uid for reserved blocks.
1288c2ecf20Sopenharmony_ci   * - 0x52
1298c2ecf20Sopenharmony_ci     - \_\_le16
1308c2ecf20Sopenharmony_ci     - s\_def\_resgid
1318c2ecf20Sopenharmony_ci     - Default gid for reserved blocks.
1328c2ecf20Sopenharmony_ci   * -
1338c2ecf20Sopenharmony_ci     -
1348c2ecf20Sopenharmony_ci     -
1358c2ecf20Sopenharmony_ci     - These fields are for EXT4_DYNAMIC_REV superblocks only.
1368c2ecf20Sopenharmony_ci       
1378c2ecf20Sopenharmony_ci       Note: the difference between the compatible feature set and the
1388c2ecf20Sopenharmony_ci       incompatible feature set is that if there is a bit set in the
1398c2ecf20Sopenharmony_ci       incompatible feature set that the kernel doesn't know about, it should
1408c2ecf20Sopenharmony_ci       refuse to mount the filesystem.
1418c2ecf20Sopenharmony_ci       
1428c2ecf20Sopenharmony_ci       e2fsck's requirements are more strict; if it doesn't know
1438c2ecf20Sopenharmony_ci       about a feature in either the compatible or incompatible feature set, it
1448c2ecf20Sopenharmony_ci       must abort and not try to meddle with things it doesn't understand...
1458c2ecf20Sopenharmony_ci   * - 0x54
1468c2ecf20Sopenharmony_ci     - \_\_le32
1478c2ecf20Sopenharmony_ci     - s\_first\_ino
1488c2ecf20Sopenharmony_ci     - First non-reserved inode.
1498c2ecf20Sopenharmony_ci   * - 0x58
1508c2ecf20Sopenharmony_ci     - \_\_le16
1518c2ecf20Sopenharmony_ci     - s\_inode\_size
1528c2ecf20Sopenharmony_ci     - Size of inode structure, in bytes.
1538c2ecf20Sopenharmony_ci   * - 0x5A
1548c2ecf20Sopenharmony_ci     - \_\_le16
1558c2ecf20Sopenharmony_ci     - s\_block\_group\_nr
1568c2ecf20Sopenharmony_ci     - Block group # of this superblock.
1578c2ecf20Sopenharmony_ci   * - 0x5C
1588c2ecf20Sopenharmony_ci     - \_\_le32
1598c2ecf20Sopenharmony_ci     - s\_feature\_compat
1608c2ecf20Sopenharmony_ci     - Compatible feature set flags. Kernel can still read/write this fs even
1618c2ecf20Sopenharmony_ci       if it doesn't understand a flag; fsck should not do that. See the
1628c2ecf20Sopenharmony_ci       super_compat_ table for more info.
1638c2ecf20Sopenharmony_ci   * - 0x60
1648c2ecf20Sopenharmony_ci     - \_\_le32
1658c2ecf20Sopenharmony_ci     - s\_feature\_incompat
1668c2ecf20Sopenharmony_ci     - Incompatible feature set. If the kernel or fsck doesn't understand one
1678c2ecf20Sopenharmony_ci       of these bits, it should stop. See the super_incompat_ table for more
1688c2ecf20Sopenharmony_ci       info.
1698c2ecf20Sopenharmony_ci   * - 0x64
1708c2ecf20Sopenharmony_ci     - \_\_le32
1718c2ecf20Sopenharmony_ci     - s\_feature\_ro\_compat
1728c2ecf20Sopenharmony_ci     - Readonly-compatible feature set. If the kernel doesn't understand one of
1738c2ecf20Sopenharmony_ci       these bits, it can still mount read-only. See the super_rocompat_ table
1748c2ecf20Sopenharmony_ci       for more info.
1758c2ecf20Sopenharmony_ci   * - 0x68
1768c2ecf20Sopenharmony_ci     - \_\_u8
1778c2ecf20Sopenharmony_ci     - s\_uuid[16]
1788c2ecf20Sopenharmony_ci     - 128-bit UUID for volume.
1798c2ecf20Sopenharmony_ci   * - 0x78
1808c2ecf20Sopenharmony_ci     - char
1818c2ecf20Sopenharmony_ci     - s\_volume\_name[16]
1828c2ecf20Sopenharmony_ci     - Volume label.
1838c2ecf20Sopenharmony_ci   * - 0x88
1848c2ecf20Sopenharmony_ci     - char
1858c2ecf20Sopenharmony_ci     - s\_last\_mounted[64]
1868c2ecf20Sopenharmony_ci     - Directory where filesystem was last mounted.
1878c2ecf20Sopenharmony_ci   * - 0xC8
1888c2ecf20Sopenharmony_ci     - \_\_le32
1898c2ecf20Sopenharmony_ci     - s\_algorithm\_usage\_bitmap
1908c2ecf20Sopenharmony_ci     - For compression (Not used in e2fsprogs/Linux)
1918c2ecf20Sopenharmony_ci   * -
1928c2ecf20Sopenharmony_ci     -
1938c2ecf20Sopenharmony_ci     -
1948c2ecf20Sopenharmony_ci     - Performance hints.  Directory preallocation should only happen if the
1958c2ecf20Sopenharmony_ci       EXT4_FEATURE_COMPAT_DIR_PREALLOC flag is on.
1968c2ecf20Sopenharmony_ci   * - 0xCC
1978c2ecf20Sopenharmony_ci     - \_\_u8
1988c2ecf20Sopenharmony_ci     - s\_prealloc\_blocks
1998c2ecf20Sopenharmony_ci     - #. of blocks to try to preallocate for ... files? (Not used in
2008c2ecf20Sopenharmony_ci       e2fsprogs/Linux)
2018c2ecf20Sopenharmony_ci   * - 0xCD
2028c2ecf20Sopenharmony_ci     - \_\_u8
2038c2ecf20Sopenharmony_ci     - s\_prealloc\_dir\_blocks
2048c2ecf20Sopenharmony_ci     - #. of blocks to preallocate for directories. (Not used in
2058c2ecf20Sopenharmony_ci       e2fsprogs/Linux)
2068c2ecf20Sopenharmony_ci   * - 0xCE
2078c2ecf20Sopenharmony_ci     - \_\_le16
2088c2ecf20Sopenharmony_ci     - s\_reserved\_gdt\_blocks
2098c2ecf20Sopenharmony_ci     - Number of reserved GDT entries for future filesystem expansion.
2108c2ecf20Sopenharmony_ci   * -
2118c2ecf20Sopenharmony_ci     -
2128c2ecf20Sopenharmony_ci     -
2138c2ecf20Sopenharmony_ci     - Journalling support is valid only if EXT4_FEATURE_COMPAT_HAS_JOURNAL is
2148c2ecf20Sopenharmony_ci       set.
2158c2ecf20Sopenharmony_ci   * - 0xD0
2168c2ecf20Sopenharmony_ci     - \_\_u8
2178c2ecf20Sopenharmony_ci     - s\_journal\_uuid[16]
2188c2ecf20Sopenharmony_ci     - UUID of journal superblock
2198c2ecf20Sopenharmony_ci   * - 0xE0
2208c2ecf20Sopenharmony_ci     - \_\_le32
2218c2ecf20Sopenharmony_ci     - s\_journal\_inum
2228c2ecf20Sopenharmony_ci     - inode number of journal file.
2238c2ecf20Sopenharmony_ci   * - 0xE4
2248c2ecf20Sopenharmony_ci     - \_\_le32
2258c2ecf20Sopenharmony_ci     - s\_journal\_dev
2268c2ecf20Sopenharmony_ci     - Device number of journal file, if the external journal feature flag is
2278c2ecf20Sopenharmony_ci       set.
2288c2ecf20Sopenharmony_ci   * - 0xE8
2298c2ecf20Sopenharmony_ci     - \_\_le32
2308c2ecf20Sopenharmony_ci     - s\_last\_orphan
2318c2ecf20Sopenharmony_ci     - Start of list of orphaned inodes to delete.
2328c2ecf20Sopenharmony_ci   * - 0xEC
2338c2ecf20Sopenharmony_ci     - \_\_le32
2348c2ecf20Sopenharmony_ci     - s\_hash\_seed[4]
2358c2ecf20Sopenharmony_ci     - HTREE hash seed.
2368c2ecf20Sopenharmony_ci   * - 0xFC
2378c2ecf20Sopenharmony_ci     - \_\_u8
2388c2ecf20Sopenharmony_ci     - s\_def\_hash\_version
2398c2ecf20Sopenharmony_ci     - Default hash algorithm to use for directory hashes. See super_def_hash_
2408c2ecf20Sopenharmony_ci       for more info.
2418c2ecf20Sopenharmony_ci   * - 0xFD
2428c2ecf20Sopenharmony_ci     - \_\_u8
2438c2ecf20Sopenharmony_ci     - s\_jnl\_backup\_type
2448c2ecf20Sopenharmony_ci     - If this value is 0 or EXT3\_JNL\_BACKUP\_BLOCKS (1), then the
2458c2ecf20Sopenharmony_ci       ``s_jnl_blocks`` field contains a duplicate copy of the inode's
2468c2ecf20Sopenharmony_ci       ``i_block[]`` array and ``i_size``.
2478c2ecf20Sopenharmony_ci   * - 0xFE
2488c2ecf20Sopenharmony_ci     - \_\_le16
2498c2ecf20Sopenharmony_ci     - s\_desc\_size
2508c2ecf20Sopenharmony_ci     - Size of group descriptors, in bytes, if the 64bit incompat feature flag
2518c2ecf20Sopenharmony_ci       is set.
2528c2ecf20Sopenharmony_ci   * - 0x100
2538c2ecf20Sopenharmony_ci     - \_\_le32
2548c2ecf20Sopenharmony_ci     - s\_default\_mount\_opts
2558c2ecf20Sopenharmony_ci     - Default mount options. See the super_mountopts_ table for more info.
2568c2ecf20Sopenharmony_ci   * - 0x104
2578c2ecf20Sopenharmony_ci     - \_\_le32
2588c2ecf20Sopenharmony_ci     - s\_first\_meta\_bg
2598c2ecf20Sopenharmony_ci     - First metablock block group, if the meta\_bg feature is enabled.
2608c2ecf20Sopenharmony_ci   * - 0x108
2618c2ecf20Sopenharmony_ci     - \_\_le32
2628c2ecf20Sopenharmony_ci     - s\_mkfs\_time
2638c2ecf20Sopenharmony_ci     - When the filesystem was created, in seconds since the epoch.
2648c2ecf20Sopenharmony_ci   * - 0x10C
2658c2ecf20Sopenharmony_ci     - \_\_le32
2668c2ecf20Sopenharmony_ci     - s\_jnl\_blocks[17]
2678c2ecf20Sopenharmony_ci     - Backup copy of the journal inode's ``i_block[]`` array in the first 15
2688c2ecf20Sopenharmony_ci       elements and i\_size\_high and i\_size in the 16th and 17th elements,
2698c2ecf20Sopenharmony_ci       respectively.
2708c2ecf20Sopenharmony_ci   * -
2718c2ecf20Sopenharmony_ci     -
2728c2ecf20Sopenharmony_ci     -
2738c2ecf20Sopenharmony_ci     - 64bit support is valid only if EXT4_FEATURE_COMPAT_64BIT is set.
2748c2ecf20Sopenharmony_ci   * - 0x150
2758c2ecf20Sopenharmony_ci     - \_\_le32
2768c2ecf20Sopenharmony_ci     - s\_blocks\_count\_hi
2778c2ecf20Sopenharmony_ci     - High 32-bits of the block count.
2788c2ecf20Sopenharmony_ci   * - 0x154
2798c2ecf20Sopenharmony_ci     - \_\_le32
2808c2ecf20Sopenharmony_ci     - s\_r\_blocks\_count\_hi
2818c2ecf20Sopenharmony_ci     - High 32-bits of the reserved block count.
2828c2ecf20Sopenharmony_ci   * - 0x158
2838c2ecf20Sopenharmony_ci     - \_\_le32
2848c2ecf20Sopenharmony_ci     - s\_free\_blocks\_count\_hi
2858c2ecf20Sopenharmony_ci     - High 32-bits of the free block count.
2868c2ecf20Sopenharmony_ci   * - 0x15C
2878c2ecf20Sopenharmony_ci     - \_\_le16
2888c2ecf20Sopenharmony_ci     - s\_min\_extra\_isize
2898c2ecf20Sopenharmony_ci     - All inodes have at least # bytes.
2908c2ecf20Sopenharmony_ci   * - 0x15E
2918c2ecf20Sopenharmony_ci     - \_\_le16
2928c2ecf20Sopenharmony_ci     - s\_want\_extra\_isize
2938c2ecf20Sopenharmony_ci     - New inodes should reserve # bytes.
2948c2ecf20Sopenharmony_ci   * - 0x160
2958c2ecf20Sopenharmony_ci     - \_\_le32
2968c2ecf20Sopenharmony_ci     - s\_flags
2978c2ecf20Sopenharmony_ci     - Miscellaneous flags. See the super_flags_ table for more info.
2988c2ecf20Sopenharmony_ci   * - 0x164
2998c2ecf20Sopenharmony_ci     - \_\_le16
3008c2ecf20Sopenharmony_ci     - s\_raid\_stride
3018c2ecf20Sopenharmony_ci     - RAID stride. This is the number of logical blocks read from or written
3028c2ecf20Sopenharmony_ci       to the disk before moving to the next disk. This affects the placement
3038c2ecf20Sopenharmony_ci       of filesystem metadata, which will hopefully make RAID storage faster.
3048c2ecf20Sopenharmony_ci   * - 0x166
3058c2ecf20Sopenharmony_ci     - \_\_le16
3068c2ecf20Sopenharmony_ci     - s\_mmp\_interval
3078c2ecf20Sopenharmony_ci     - #. seconds to wait in multi-mount prevention (MMP) checking. In theory,
3088c2ecf20Sopenharmony_ci       MMP is a mechanism to record in the superblock which host and device
3098c2ecf20Sopenharmony_ci       have mounted the filesystem, in order to prevent multiple mounts. This
3108c2ecf20Sopenharmony_ci       feature does not seem to be implemented...
3118c2ecf20Sopenharmony_ci   * - 0x168
3128c2ecf20Sopenharmony_ci     - \_\_le64
3138c2ecf20Sopenharmony_ci     - s\_mmp\_block
3148c2ecf20Sopenharmony_ci     - Block # for multi-mount protection data.
3158c2ecf20Sopenharmony_ci   * - 0x170
3168c2ecf20Sopenharmony_ci     - \_\_le32
3178c2ecf20Sopenharmony_ci     - s\_raid\_stripe\_width
3188c2ecf20Sopenharmony_ci     - RAID stripe width. This is the number of logical blocks read from or
3198c2ecf20Sopenharmony_ci       written to the disk before coming back to the current disk. This is used
3208c2ecf20Sopenharmony_ci       by the block allocator to try to reduce the number of read-modify-write
3218c2ecf20Sopenharmony_ci       operations in a RAID5/6.
3228c2ecf20Sopenharmony_ci   * - 0x174
3238c2ecf20Sopenharmony_ci     - \_\_u8
3248c2ecf20Sopenharmony_ci     - s\_log\_groups\_per\_flex
3258c2ecf20Sopenharmony_ci     - Size of a flexible block group is 2 ^ ``s_log_groups_per_flex``.
3268c2ecf20Sopenharmony_ci   * - 0x175
3278c2ecf20Sopenharmony_ci     - \_\_u8
3288c2ecf20Sopenharmony_ci     - s\_checksum\_type
3298c2ecf20Sopenharmony_ci     - Metadata checksum algorithm type. The only valid value is 1 (crc32c).
3308c2ecf20Sopenharmony_ci   * - 0x176
3318c2ecf20Sopenharmony_ci     - \_\_le16
3328c2ecf20Sopenharmony_ci     - s\_reserved\_pad
3338c2ecf20Sopenharmony_ci     -
3348c2ecf20Sopenharmony_ci   * - 0x178
3358c2ecf20Sopenharmony_ci     - \_\_le64
3368c2ecf20Sopenharmony_ci     - s\_kbytes\_written
3378c2ecf20Sopenharmony_ci     - Number of KiB written to this filesystem over its lifetime.
3388c2ecf20Sopenharmony_ci   * - 0x180
3398c2ecf20Sopenharmony_ci     - \_\_le32
3408c2ecf20Sopenharmony_ci     - s\_snapshot\_inum
3418c2ecf20Sopenharmony_ci     - inode number of active snapshot. (Not used in e2fsprogs/Linux.)
3428c2ecf20Sopenharmony_ci   * - 0x184
3438c2ecf20Sopenharmony_ci     - \_\_le32
3448c2ecf20Sopenharmony_ci     - s\_snapshot\_id
3458c2ecf20Sopenharmony_ci     - Sequential ID of active snapshot. (Not used in e2fsprogs/Linux.)
3468c2ecf20Sopenharmony_ci   * - 0x188
3478c2ecf20Sopenharmony_ci     - \_\_le64
3488c2ecf20Sopenharmony_ci     - s\_snapshot\_r\_blocks\_count
3498c2ecf20Sopenharmony_ci     - Number of blocks reserved for active snapshot's future use. (Not used in
3508c2ecf20Sopenharmony_ci       e2fsprogs/Linux.)
3518c2ecf20Sopenharmony_ci   * - 0x190
3528c2ecf20Sopenharmony_ci     - \_\_le32
3538c2ecf20Sopenharmony_ci     - s\_snapshot\_list
3548c2ecf20Sopenharmony_ci     - inode number of the head of the on-disk snapshot list. (Not used in
3558c2ecf20Sopenharmony_ci       e2fsprogs/Linux.)
3568c2ecf20Sopenharmony_ci   * - 0x194
3578c2ecf20Sopenharmony_ci     - \_\_le32
3588c2ecf20Sopenharmony_ci     - s\_error\_count
3598c2ecf20Sopenharmony_ci     - Number of errors seen.
3608c2ecf20Sopenharmony_ci   * - 0x198
3618c2ecf20Sopenharmony_ci     - \_\_le32
3628c2ecf20Sopenharmony_ci     - s\_first\_error\_time
3638c2ecf20Sopenharmony_ci     - First time an error happened, in seconds since the epoch.
3648c2ecf20Sopenharmony_ci   * - 0x19C
3658c2ecf20Sopenharmony_ci     - \_\_le32
3668c2ecf20Sopenharmony_ci     - s\_first\_error\_ino
3678c2ecf20Sopenharmony_ci     - inode involved in first error.
3688c2ecf20Sopenharmony_ci   * - 0x1A0
3698c2ecf20Sopenharmony_ci     - \_\_le64
3708c2ecf20Sopenharmony_ci     - s\_first\_error\_block
3718c2ecf20Sopenharmony_ci     - Number of block involved of first error.
3728c2ecf20Sopenharmony_ci   * - 0x1A8
3738c2ecf20Sopenharmony_ci     - \_\_u8
3748c2ecf20Sopenharmony_ci     - s\_first\_error\_func[32]
3758c2ecf20Sopenharmony_ci     - Name of function where the error happened.
3768c2ecf20Sopenharmony_ci   * - 0x1C8
3778c2ecf20Sopenharmony_ci     - \_\_le32
3788c2ecf20Sopenharmony_ci     - s\_first\_error\_line
3798c2ecf20Sopenharmony_ci     - Line number where error happened.
3808c2ecf20Sopenharmony_ci   * - 0x1CC
3818c2ecf20Sopenharmony_ci     - \_\_le32
3828c2ecf20Sopenharmony_ci     - s\_last\_error\_time
3838c2ecf20Sopenharmony_ci     - Time of most recent error, in seconds since the epoch.
3848c2ecf20Sopenharmony_ci   * - 0x1D0
3858c2ecf20Sopenharmony_ci     - \_\_le32
3868c2ecf20Sopenharmony_ci     - s\_last\_error\_ino
3878c2ecf20Sopenharmony_ci     - inode involved in most recent error.
3888c2ecf20Sopenharmony_ci   * - 0x1D4
3898c2ecf20Sopenharmony_ci     - \_\_le32
3908c2ecf20Sopenharmony_ci     - s\_last\_error\_line
3918c2ecf20Sopenharmony_ci     - Line number where most recent error happened.
3928c2ecf20Sopenharmony_ci   * - 0x1D8
3938c2ecf20Sopenharmony_ci     - \_\_le64
3948c2ecf20Sopenharmony_ci     - s\_last\_error\_block
3958c2ecf20Sopenharmony_ci     - Number of block involved in most recent error.
3968c2ecf20Sopenharmony_ci   * - 0x1E0
3978c2ecf20Sopenharmony_ci     - \_\_u8
3988c2ecf20Sopenharmony_ci     - s\_last\_error\_func[32]
3998c2ecf20Sopenharmony_ci     - Name of function where the most recent error happened.
4008c2ecf20Sopenharmony_ci   * - 0x200
4018c2ecf20Sopenharmony_ci     - \_\_u8
4028c2ecf20Sopenharmony_ci     - s\_mount\_opts[64]
4038c2ecf20Sopenharmony_ci     - ASCIIZ string of mount options.
4048c2ecf20Sopenharmony_ci   * - 0x240
4058c2ecf20Sopenharmony_ci     - \_\_le32
4068c2ecf20Sopenharmony_ci     - s\_usr\_quota\_inum
4078c2ecf20Sopenharmony_ci     - Inode number of user `quota <quota>`__ file.
4088c2ecf20Sopenharmony_ci   * - 0x244
4098c2ecf20Sopenharmony_ci     - \_\_le32
4108c2ecf20Sopenharmony_ci     - s\_grp\_quota\_inum
4118c2ecf20Sopenharmony_ci     - Inode number of group `quota <quota>`__ file.
4128c2ecf20Sopenharmony_ci   * - 0x248
4138c2ecf20Sopenharmony_ci     - \_\_le32
4148c2ecf20Sopenharmony_ci     - s\_overhead\_blocks
4158c2ecf20Sopenharmony_ci     - Overhead blocks/clusters in fs. (Huh? This field is always zero, which
4168c2ecf20Sopenharmony_ci       means that the kernel calculates it dynamically.)
4178c2ecf20Sopenharmony_ci   * - 0x24C
4188c2ecf20Sopenharmony_ci     - \_\_le32
4198c2ecf20Sopenharmony_ci     - s\_backup\_bgs[2]
4208c2ecf20Sopenharmony_ci     - Block groups containing superblock backups (if sparse\_super2)
4218c2ecf20Sopenharmony_ci   * - 0x254
4228c2ecf20Sopenharmony_ci     - \_\_u8
4238c2ecf20Sopenharmony_ci     - s\_encrypt\_algos[4]
4248c2ecf20Sopenharmony_ci     - Encryption algorithms in use. There can be up to four algorithms in use
4258c2ecf20Sopenharmony_ci       at any time; valid algorithm codes are given in the super_encrypt_ table
4268c2ecf20Sopenharmony_ci       below.
4278c2ecf20Sopenharmony_ci   * - 0x258
4288c2ecf20Sopenharmony_ci     - \_\_u8
4298c2ecf20Sopenharmony_ci     - s\_encrypt\_pw\_salt[16]
4308c2ecf20Sopenharmony_ci     - Salt for the string2key algorithm for encryption.
4318c2ecf20Sopenharmony_ci   * - 0x268
4328c2ecf20Sopenharmony_ci     - \_\_le32
4338c2ecf20Sopenharmony_ci     - s\_lpf\_ino
4348c2ecf20Sopenharmony_ci     - Inode number of lost+found
4358c2ecf20Sopenharmony_ci   * - 0x26C
4368c2ecf20Sopenharmony_ci     - \_\_le32
4378c2ecf20Sopenharmony_ci     - s\_prj\_quota\_inum
4388c2ecf20Sopenharmony_ci     - Inode that tracks project quotas.
4398c2ecf20Sopenharmony_ci   * - 0x270
4408c2ecf20Sopenharmony_ci     - \_\_le32
4418c2ecf20Sopenharmony_ci     - s\_checksum\_seed
4428c2ecf20Sopenharmony_ci     - Checksum seed used for metadata\_csum calculations. This value is
4438c2ecf20Sopenharmony_ci       crc32c(~0, $orig\_fs\_uuid).
4448c2ecf20Sopenharmony_ci   * - 0x274
4458c2ecf20Sopenharmony_ci     - \_\_u8
4468c2ecf20Sopenharmony_ci     - s\_wtime_hi
4478c2ecf20Sopenharmony_ci     - Upper 8 bits of the s_wtime field.
4488c2ecf20Sopenharmony_ci   * - 0x275
4498c2ecf20Sopenharmony_ci     - \_\_u8
4508c2ecf20Sopenharmony_ci     - s\_mtime_hi
4518c2ecf20Sopenharmony_ci     - Upper 8 bits of the s_mtime field.
4528c2ecf20Sopenharmony_ci   * - 0x276
4538c2ecf20Sopenharmony_ci     - \_\_u8
4548c2ecf20Sopenharmony_ci     - s\_mkfs_time_hi
4558c2ecf20Sopenharmony_ci     - Upper 8 bits of the s_mkfs_time field.
4568c2ecf20Sopenharmony_ci   * - 0x277
4578c2ecf20Sopenharmony_ci     - \_\_u8
4588c2ecf20Sopenharmony_ci     - s\_lastcheck_hi
4598c2ecf20Sopenharmony_ci     - Upper 8 bits of the s_lastcheck_hi field.
4608c2ecf20Sopenharmony_ci   * - 0x278
4618c2ecf20Sopenharmony_ci     - \_\_u8
4628c2ecf20Sopenharmony_ci     - s\_first_error_time_hi
4638c2ecf20Sopenharmony_ci     - Upper 8 bits of the s_first_error_time_hi field.
4648c2ecf20Sopenharmony_ci   * - 0x279
4658c2ecf20Sopenharmony_ci     - \_\_u8
4668c2ecf20Sopenharmony_ci     - s\_last_error_time_hi
4678c2ecf20Sopenharmony_ci     - Upper 8 bits of the s_last_error_time_hi field.
4688c2ecf20Sopenharmony_ci   * - 0x27A
4698c2ecf20Sopenharmony_ci     - \_\_u8
4708c2ecf20Sopenharmony_ci     - s\_pad[2]
4718c2ecf20Sopenharmony_ci     - Zero padding.
4728c2ecf20Sopenharmony_ci   * - 0x27C
4738c2ecf20Sopenharmony_ci     - \_\_le16
4748c2ecf20Sopenharmony_ci     - s\_encoding
4758c2ecf20Sopenharmony_ci     - Filename charset encoding.
4768c2ecf20Sopenharmony_ci   * - 0x27E
4778c2ecf20Sopenharmony_ci     - \_\_le16
4788c2ecf20Sopenharmony_ci     - s\_encoding_flags
4798c2ecf20Sopenharmony_ci     - Filename charset encoding flags.
4808c2ecf20Sopenharmony_ci   * - 0x280
4818c2ecf20Sopenharmony_ci     - \_\_le32
4828c2ecf20Sopenharmony_ci     - s\_reserved[95]
4838c2ecf20Sopenharmony_ci     - Padding to the end of the block.
4848c2ecf20Sopenharmony_ci   * - 0x3FC
4858c2ecf20Sopenharmony_ci     - \_\_le32
4868c2ecf20Sopenharmony_ci     - s\_checksum
4878c2ecf20Sopenharmony_ci     - Superblock checksum.
4888c2ecf20Sopenharmony_ci
4898c2ecf20Sopenharmony_ci.. _super_state:
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_ciThe superblock state is some combination of the following:
4928c2ecf20Sopenharmony_ci
4938c2ecf20Sopenharmony_ci.. list-table::
4948c2ecf20Sopenharmony_ci   :widths: 8 72
4958c2ecf20Sopenharmony_ci   :header-rows: 1
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ci   * - Value
4988c2ecf20Sopenharmony_ci     - Description
4998c2ecf20Sopenharmony_ci   * - 0x0001
5008c2ecf20Sopenharmony_ci     - Cleanly umounted
5018c2ecf20Sopenharmony_ci   * - 0x0002
5028c2ecf20Sopenharmony_ci     - Errors detected
5038c2ecf20Sopenharmony_ci   * - 0x0004
5048c2ecf20Sopenharmony_ci     - Orphans being recovered
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ci.. _super_errors:
5078c2ecf20Sopenharmony_ci
5088c2ecf20Sopenharmony_ciThe superblock error policy is one of the following:
5098c2ecf20Sopenharmony_ci
5108c2ecf20Sopenharmony_ci.. list-table::
5118c2ecf20Sopenharmony_ci   :widths: 8 72
5128c2ecf20Sopenharmony_ci   :header-rows: 1
5138c2ecf20Sopenharmony_ci
5148c2ecf20Sopenharmony_ci   * - Value
5158c2ecf20Sopenharmony_ci     - Description
5168c2ecf20Sopenharmony_ci   * - 1
5178c2ecf20Sopenharmony_ci     - Continue
5188c2ecf20Sopenharmony_ci   * - 2
5198c2ecf20Sopenharmony_ci     - Remount read-only
5208c2ecf20Sopenharmony_ci   * - 3
5218c2ecf20Sopenharmony_ci     - Panic
5228c2ecf20Sopenharmony_ci
5238c2ecf20Sopenharmony_ci.. _super_creator:
5248c2ecf20Sopenharmony_ci
5258c2ecf20Sopenharmony_ciThe filesystem creator is one of the following:
5268c2ecf20Sopenharmony_ci
5278c2ecf20Sopenharmony_ci.. list-table::
5288c2ecf20Sopenharmony_ci   :widths: 8 72
5298c2ecf20Sopenharmony_ci   :header-rows: 1
5308c2ecf20Sopenharmony_ci
5318c2ecf20Sopenharmony_ci   * - Value
5328c2ecf20Sopenharmony_ci     - Description
5338c2ecf20Sopenharmony_ci   * - 0
5348c2ecf20Sopenharmony_ci     - Linux
5358c2ecf20Sopenharmony_ci   * - 1
5368c2ecf20Sopenharmony_ci     - Hurd
5378c2ecf20Sopenharmony_ci   * - 2
5388c2ecf20Sopenharmony_ci     - Masix
5398c2ecf20Sopenharmony_ci   * - 3
5408c2ecf20Sopenharmony_ci     - FreeBSD
5418c2ecf20Sopenharmony_ci   * - 4
5428c2ecf20Sopenharmony_ci     - Lites
5438c2ecf20Sopenharmony_ci
5448c2ecf20Sopenharmony_ci.. _super_revision:
5458c2ecf20Sopenharmony_ci
5468c2ecf20Sopenharmony_ciThe superblock revision is one of the following:
5478c2ecf20Sopenharmony_ci
5488c2ecf20Sopenharmony_ci.. list-table::
5498c2ecf20Sopenharmony_ci   :widths: 8 72
5508c2ecf20Sopenharmony_ci   :header-rows: 1
5518c2ecf20Sopenharmony_ci
5528c2ecf20Sopenharmony_ci   * - Value
5538c2ecf20Sopenharmony_ci     - Description
5548c2ecf20Sopenharmony_ci   * - 0
5558c2ecf20Sopenharmony_ci     - Original format
5568c2ecf20Sopenharmony_ci   * - 1
5578c2ecf20Sopenharmony_ci     - v2 format w/ dynamic inode sizes
5588c2ecf20Sopenharmony_ci
5598c2ecf20Sopenharmony_ciNote that ``EXT4_DYNAMIC_REV`` refers to a revision 1 or newer filesystem.
5608c2ecf20Sopenharmony_ci
5618c2ecf20Sopenharmony_ci.. _super_compat:
5628c2ecf20Sopenharmony_ci
5638c2ecf20Sopenharmony_ciThe superblock compatible features field is a combination of any of the
5648c2ecf20Sopenharmony_cifollowing:
5658c2ecf20Sopenharmony_ci
5668c2ecf20Sopenharmony_ci.. list-table::
5678c2ecf20Sopenharmony_ci   :widths: 16 64
5688c2ecf20Sopenharmony_ci   :header-rows: 1
5698c2ecf20Sopenharmony_ci
5708c2ecf20Sopenharmony_ci   * - Value
5718c2ecf20Sopenharmony_ci     - Description
5728c2ecf20Sopenharmony_ci   * - 0x1
5738c2ecf20Sopenharmony_ci     - Directory preallocation (COMPAT\_DIR\_PREALLOC).
5748c2ecf20Sopenharmony_ci   * - 0x2
5758c2ecf20Sopenharmony_ci     - “imagic inodes”. Not clear from the code what this does
5768c2ecf20Sopenharmony_ci       (COMPAT\_IMAGIC\_INODES).
5778c2ecf20Sopenharmony_ci   * - 0x4
5788c2ecf20Sopenharmony_ci     - Has a journal (COMPAT\_HAS\_JOURNAL).
5798c2ecf20Sopenharmony_ci   * - 0x8
5808c2ecf20Sopenharmony_ci     - Supports extended attributes (COMPAT\_EXT\_ATTR).
5818c2ecf20Sopenharmony_ci   * - 0x10
5828c2ecf20Sopenharmony_ci     - Has reserved GDT blocks for filesystem expansion
5838c2ecf20Sopenharmony_ci       (COMPAT\_RESIZE\_INODE). Requires RO\_COMPAT\_SPARSE\_SUPER.
5848c2ecf20Sopenharmony_ci   * - 0x20
5858c2ecf20Sopenharmony_ci     - Has directory indices (COMPAT\_DIR\_INDEX).
5868c2ecf20Sopenharmony_ci   * - 0x40
5878c2ecf20Sopenharmony_ci     - “Lazy BG”. Not in Linux kernel, seems to have been for uninitialized
5888c2ecf20Sopenharmony_ci       block groups? (COMPAT\_LAZY\_BG)
5898c2ecf20Sopenharmony_ci   * - 0x80
5908c2ecf20Sopenharmony_ci     - “Exclude inode”. Not used. (COMPAT\_EXCLUDE\_INODE).
5918c2ecf20Sopenharmony_ci   * - 0x100
5928c2ecf20Sopenharmony_ci     - “Exclude bitmap”. Seems to be used to indicate the presence of
5938c2ecf20Sopenharmony_ci       snapshot-related exclude bitmaps? Not defined in kernel or used in
5948c2ecf20Sopenharmony_ci       e2fsprogs (COMPAT\_EXCLUDE\_BITMAP).
5958c2ecf20Sopenharmony_ci   * - 0x200
5968c2ecf20Sopenharmony_ci     - Sparse Super Block, v2. If this flag is set, the SB field s\_backup\_bgs
5978c2ecf20Sopenharmony_ci       points to the two block groups that contain backup superblocks
5988c2ecf20Sopenharmony_ci       (COMPAT\_SPARSE\_SUPER2).
5998c2ecf20Sopenharmony_ci   * - 0x400
6008c2ecf20Sopenharmony_ci     - Fast commits supported. Although fast commits blocks are
6018c2ecf20Sopenharmony_ci       backward incompatible, fast commit blocks are not always
6028c2ecf20Sopenharmony_ci       present in the journal. If fast commit blocks are present in
6038c2ecf20Sopenharmony_ci       the journal, JBD2 incompat feature
6048c2ecf20Sopenharmony_ci       (JBD2\_FEATURE\_INCOMPAT\_FAST\_COMMIT) gets
6058c2ecf20Sopenharmony_ci       set (COMPAT\_FAST\_COMMIT).
6068c2ecf20Sopenharmony_ci
6078c2ecf20Sopenharmony_ci.. _super_incompat:
6088c2ecf20Sopenharmony_ci
6098c2ecf20Sopenharmony_ciThe superblock incompatible features field is a combination of any of the
6108c2ecf20Sopenharmony_cifollowing:
6118c2ecf20Sopenharmony_ci
6128c2ecf20Sopenharmony_ci.. list-table::
6138c2ecf20Sopenharmony_ci   :widths: 16 64
6148c2ecf20Sopenharmony_ci   :header-rows: 1
6158c2ecf20Sopenharmony_ci
6168c2ecf20Sopenharmony_ci   * - Value
6178c2ecf20Sopenharmony_ci     - Description
6188c2ecf20Sopenharmony_ci   * - 0x1
6198c2ecf20Sopenharmony_ci     - Compression (INCOMPAT\_COMPRESSION).
6208c2ecf20Sopenharmony_ci   * - 0x2
6218c2ecf20Sopenharmony_ci     - Directory entries record the file type. See ext4\_dir\_entry\_2 below
6228c2ecf20Sopenharmony_ci       (INCOMPAT\_FILETYPE).
6238c2ecf20Sopenharmony_ci   * - 0x4
6248c2ecf20Sopenharmony_ci     - Filesystem needs recovery (INCOMPAT\_RECOVER).
6258c2ecf20Sopenharmony_ci   * - 0x8
6268c2ecf20Sopenharmony_ci     - Filesystem has a separate journal device (INCOMPAT\_JOURNAL\_DEV).
6278c2ecf20Sopenharmony_ci   * - 0x10
6288c2ecf20Sopenharmony_ci     - Meta block groups. See the earlier discussion of this feature
6298c2ecf20Sopenharmony_ci       (INCOMPAT\_META\_BG).
6308c2ecf20Sopenharmony_ci   * - 0x40
6318c2ecf20Sopenharmony_ci     - Files in this filesystem use extents (INCOMPAT\_EXTENTS).
6328c2ecf20Sopenharmony_ci   * - 0x80
6338c2ecf20Sopenharmony_ci     - Enable a filesystem size of 2^64 blocks (INCOMPAT\_64BIT).
6348c2ecf20Sopenharmony_ci   * - 0x100
6358c2ecf20Sopenharmony_ci     - Multiple mount protection (INCOMPAT\_MMP).
6368c2ecf20Sopenharmony_ci   * - 0x200
6378c2ecf20Sopenharmony_ci     - Flexible block groups. See the earlier discussion of this feature
6388c2ecf20Sopenharmony_ci       (INCOMPAT\_FLEX\_BG).
6398c2ecf20Sopenharmony_ci   * - 0x400
6408c2ecf20Sopenharmony_ci     - Inodes can be used to store large extended attribute values
6418c2ecf20Sopenharmony_ci       (INCOMPAT\_EA\_INODE).
6428c2ecf20Sopenharmony_ci   * - 0x1000
6438c2ecf20Sopenharmony_ci     - Data in directory entry (INCOMPAT\_DIRDATA). (Not implemented?)
6448c2ecf20Sopenharmony_ci   * - 0x2000
6458c2ecf20Sopenharmony_ci     - Metadata checksum seed is stored in the superblock. This feature enables
6468c2ecf20Sopenharmony_ci       the administrator to change the UUID of a metadata\_csum filesystem
6478c2ecf20Sopenharmony_ci       while the filesystem is mounted; without it, the checksum definition
6488c2ecf20Sopenharmony_ci       requires all metadata blocks to be rewritten (INCOMPAT\_CSUM\_SEED).
6498c2ecf20Sopenharmony_ci   * - 0x4000
6508c2ecf20Sopenharmony_ci     - Large directory >2GB or 3-level htree (INCOMPAT\_LARGEDIR). Prior to
6518c2ecf20Sopenharmony_ci       this feature, directories could not be larger than 4GiB and could not
6528c2ecf20Sopenharmony_ci       have an htree more than 2 levels deep. If this feature is enabled,
6538c2ecf20Sopenharmony_ci       directories can be larger than 4GiB and have a maximum htree depth of 3.
6548c2ecf20Sopenharmony_ci   * - 0x8000
6558c2ecf20Sopenharmony_ci     - Data in inode (INCOMPAT\_INLINE\_DATA).
6568c2ecf20Sopenharmony_ci   * - 0x10000
6578c2ecf20Sopenharmony_ci     - Encrypted inodes are present on the filesystem. (INCOMPAT\_ENCRYPT).
6588c2ecf20Sopenharmony_ci
6598c2ecf20Sopenharmony_ci.. _super_rocompat:
6608c2ecf20Sopenharmony_ci
6618c2ecf20Sopenharmony_ciThe superblock read-only compatible features field is a combination of any of
6628c2ecf20Sopenharmony_cithe following:
6638c2ecf20Sopenharmony_ci
6648c2ecf20Sopenharmony_ci.. list-table::
6658c2ecf20Sopenharmony_ci   :widths: 16 64
6668c2ecf20Sopenharmony_ci   :header-rows: 1
6678c2ecf20Sopenharmony_ci
6688c2ecf20Sopenharmony_ci   * - Value
6698c2ecf20Sopenharmony_ci     - Description
6708c2ecf20Sopenharmony_ci   * - 0x1
6718c2ecf20Sopenharmony_ci     - Sparse superblocks. See the earlier discussion of this feature
6728c2ecf20Sopenharmony_ci       (RO\_COMPAT\_SPARSE\_SUPER).
6738c2ecf20Sopenharmony_ci   * - 0x2
6748c2ecf20Sopenharmony_ci     - This filesystem has been used to store a file greater than 2GiB
6758c2ecf20Sopenharmony_ci       (RO\_COMPAT\_LARGE\_FILE).
6768c2ecf20Sopenharmony_ci   * - 0x4
6778c2ecf20Sopenharmony_ci     - Not used in kernel or e2fsprogs (RO\_COMPAT\_BTREE\_DIR).
6788c2ecf20Sopenharmony_ci   * - 0x8
6798c2ecf20Sopenharmony_ci     - This filesystem has files whose sizes are represented in units of
6808c2ecf20Sopenharmony_ci       logical blocks, not 512-byte sectors. This implies a very large file
6818c2ecf20Sopenharmony_ci       indeed! (RO\_COMPAT\_HUGE\_FILE)
6828c2ecf20Sopenharmony_ci   * - 0x10
6838c2ecf20Sopenharmony_ci     - Group descriptors have checksums. In addition to detecting corruption,
6848c2ecf20Sopenharmony_ci       this is useful for lazy formatting with uninitialized groups
6858c2ecf20Sopenharmony_ci       (RO\_COMPAT\_GDT\_CSUM).
6868c2ecf20Sopenharmony_ci   * - 0x20
6878c2ecf20Sopenharmony_ci     - Indicates that the old ext3 32,000 subdirectory limit no longer applies
6888c2ecf20Sopenharmony_ci       (RO\_COMPAT\_DIR\_NLINK). A directory's i\_links\_count will be set to 1
6898c2ecf20Sopenharmony_ci       if it is incremented past 64,999.
6908c2ecf20Sopenharmony_ci   * - 0x40
6918c2ecf20Sopenharmony_ci     - Indicates that large inodes exist on this filesystem
6928c2ecf20Sopenharmony_ci       (RO\_COMPAT\_EXTRA\_ISIZE).
6938c2ecf20Sopenharmony_ci   * - 0x80
6948c2ecf20Sopenharmony_ci     - This filesystem has a snapshot (RO\_COMPAT\_HAS\_SNAPSHOT).
6958c2ecf20Sopenharmony_ci   * - 0x100
6968c2ecf20Sopenharmony_ci     - `Quota <Quota>`__ (RO\_COMPAT\_QUOTA).
6978c2ecf20Sopenharmony_ci   * - 0x200
6988c2ecf20Sopenharmony_ci     - This filesystem supports “bigalloc”, which means that file extents are
6998c2ecf20Sopenharmony_ci       tracked in units of clusters (of blocks) instead of blocks
7008c2ecf20Sopenharmony_ci       (RO\_COMPAT\_BIGALLOC).
7018c2ecf20Sopenharmony_ci   * - 0x400
7028c2ecf20Sopenharmony_ci     - This filesystem supports metadata checksumming.
7038c2ecf20Sopenharmony_ci       (RO\_COMPAT\_METADATA\_CSUM; implies RO\_COMPAT\_GDT\_CSUM, though
7048c2ecf20Sopenharmony_ci       GDT\_CSUM must not be set)
7058c2ecf20Sopenharmony_ci   * - 0x800
7068c2ecf20Sopenharmony_ci     - Filesystem supports replicas. This feature is neither in the kernel nor
7078c2ecf20Sopenharmony_ci       e2fsprogs. (RO\_COMPAT\_REPLICA)
7088c2ecf20Sopenharmony_ci   * - 0x1000
7098c2ecf20Sopenharmony_ci     - Read-only filesystem image; the kernel will not mount this image
7108c2ecf20Sopenharmony_ci       read-write and most tools will refuse to write to the image.
7118c2ecf20Sopenharmony_ci       (RO\_COMPAT\_READONLY)
7128c2ecf20Sopenharmony_ci   * - 0x2000
7138c2ecf20Sopenharmony_ci     - Filesystem tracks project quotas. (RO\_COMPAT\_PROJECT)
7148c2ecf20Sopenharmony_ci   * - 0x8000
7158c2ecf20Sopenharmony_ci     - Verity inodes may be present on the filesystem. (RO\_COMPAT\_VERITY)
7168c2ecf20Sopenharmony_ci
7178c2ecf20Sopenharmony_ci.. _super_def_hash:
7188c2ecf20Sopenharmony_ci
7198c2ecf20Sopenharmony_ciThe ``s_def_hash_version`` field is one of the following:
7208c2ecf20Sopenharmony_ci
7218c2ecf20Sopenharmony_ci.. list-table::
7228c2ecf20Sopenharmony_ci   :widths: 8 72
7238c2ecf20Sopenharmony_ci   :header-rows: 1
7248c2ecf20Sopenharmony_ci
7258c2ecf20Sopenharmony_ci   * - Value
7268c2ecf20Sopenharmony_ci     - Description
7278c2ecf20Sopenharmony_ci   * - 0x0
7288c2ecf20Sopenharmony_ci     - Legacy.
7298c2ecf20Sopenharmony_ci   * - 0x1
7308c2ecf20Sopenharmony_ci     - Half MD4.
7318c2ecf20Sopenharmony_ci   * - 0x2
7328c2ecf20Sopenharmony_ci     - Tea.
7338c2ecf20Sopenharmony_ci   * - 0x3
7348c2ecf20Sopenharmony_ci     - Legacy, unsigned.
7358c2ecf20Sopenharmony_ci   * - 0x4
7368c2ecf20Sopenharmony_ci     - Half MD4, unsigned.
7378c2ecf20Sopenharmony_ci   * - 0x5
7388c2ecf20Sopenharmony_ci     - Tea, unsigned.
7398c2ecf20Sopenharmony_ci
7408c2ecf20Sopenharmony_ci.. _super_mountopts:
7418c2ecf20Sopenharmony_ci
7428c2ecf20Sopenharmony_ciThe ``s_default_mount_opts`` field is any combination of the following:
7438c2ecf20Sopenharmony_ci
7448c2ecf20Sopenharmony_ci.. list-table::
7458c2ecf20Sopenharmony_ci   :widths: 8 72
7468c2ecf20Sopenharmony_ci   :header-rows: 1
7478c2ecf20Sopenharmony_ci
7488c2ecf20Sopenharmony_ci   * - Value
7498c2ecf20Sopenharmony_ci     - Description
7508c2ecf20Sopenharmony_ci   * - 0x0001
7518c2ecf20Sopenharmony_ci     - Print debugging info upon (re)mount. (EXT4\_DEFM\_DEBUG)
7528c2ecf20Sopenharmony_ci   * - 0x0002
7538c2ecf20Sopenharmony_ci     - New files take the gid of the containing directory (instead of the fsgid
7548c2ecf20Sopenharmony_ci       of the current process). (EXT4\_DEFM\_BSDGROUPS)
7558c2ecf20Sopenharmony_ci   * - 0x0004
7568c2ecf20Sopenharmony_ci     - Support userspace-provided extended attributes. (EXT4\_DEFM\_XATTR\_USER)
7578c2ecf20Sopenharmony_ci   * - 0x0008
7588c2ecf20Sopenharmony_ci     - Support POSIX access control lists (ACLs). (EXT4\_DEFM\_ACL)
7598c2ecf20Sopenharmony_ci   * - 0x0010
7608c2ecf20Sopenharmony_ci     - Do not support 32-bit UIDs. (EXT4\_DEFM\_UID16)
7618c2ecf20Sopenharmony_ci   * - 0x0020
7628c2ecf20Sopenharmony_ci     - All data and metadata are commited to the journal.
7638c2ecf20Sopenharmony_ci       (EXT4\_DEFM\_JMODE\_DATA)
7648c2ecf20Sopenharmony_ci   * - 0x0040
7658c2ecf20Sopenharmony_ci     - All data are flushed to the disk before metadata are committed to the
7668c2ecf20Sopenharmony_ci       journal. (EXT4\_DEFM\_JMODE\_ORDERED)
7678c2ecf20Sopenharmony_ci   * - 0x0060
7688c2ecf20Sopenharmony_ci     - Data ordering is not preserved; data may be written after the metadata
7698c2ecf20Sopenharmony_ci       has been written. (EXT4\_DEFM\_JMODE\_WBACK)
7708c2ecf20Sopenharmony_ci   * - 0x0100
7718c2ecf20Sopenharmony_ci     - Disable write flushes. (EXT4\_DEFM\_NOBARRIER)
7728c2ecf20Sopenharmony_ci   * - 0x0200
7738c2ecf20Sopenharmony_ci     - Track which blocks in a filesystem are metadata and therefore should not
7748c2ecf20Sopenharmony_ci       be used as data blocks. This option will be enabled by default on 3.18,
7758c2ecf20Sopenharmony_ci       hopefully. (EXT4\_DEFM\_BLOCK\_VALIDITY)
7768c2ecf20Sopenharmony_ci   * - 0x0400
7778c2ecf20Sopenharmony_ci     - Enable DISCARD support, where the storage device is told about blocks
7788c2ecf20Sopenharmony_ci       becoming unused. (EXT4\_DEFM\_DISCARD)
7798c2ecf20Sopenharmony_ci   * - 0x0800
7808c2ecf20Sopenharmony_ci     - Disable delayed allocation. (EXT4\_DEFM\_NODELALLOC)
7818c2ecf20Sopenharmony_ci
7828c2ecf20Sopenharmony_ci.. _super_flags:
7838c2ecf20Sopenharmony_ci
7848c2ecf20Sopenharmony_ciThe ``s_flags`` field is any combination of the following:
7858c2ecf20Sopenharmony_ci
7868c2ecf20Sopenharmony_ci.. list-table::
7878c2ecf20Sopenharmony_ci   :widths: 8 72
7888c2ecf20Sopenharmony_ci   :header-rows: 1
7898c2ecf20Sopenharmony_ci
7908c2ecf20Sopenharmony_ci   * - Value
7918c2ecf20Sopenharmony_ci     - Description
7928c2ecf20Sopenharmony_ci   * - 0x0001
7938c2ecf20Sopenharmony_ci     - Signed directory hash in use.
7948c2ecf20Sopenharmony_ci   * - 0x0002
7958c2ecf20Sopenharmony_ci     - Unsigned directory hash in use.
7968c2ecf20Sopenharmony_ci   * - 0x0004
7978c2ecf20Sopenharmony_ci     - To test development code.
7988c2ecf20Sopenharmony_ci
7998c2ecf20Sopenharmony_ci.. _super_encrypt:
8008c2ecf20Sopenharmony_ci
8018c2ecf20Sopenharmony_ciThe ``s_encrypt_algos`` list can contain any of the following:
8028c2ecf20Sopenharmony_ci
8038c2ecf20Sopenharmony_ci.. list-table::
8048c2ecf20Sopenharmony_ci   :widths: 8 72
8058c2ecf20Sopenharmony_ci   :header-rows: 1
8068c2ecf20Sopenharmony_ci
8078c2ecf20Sopenharmony_ci   * - Value
8088c2ecf20Sopenharmony_ci     - Description
8098c2ecf20Sopenharmony_ci   * - 0
8108c2ecf20Sopenharmony_ci     - Invalid algorithm (ENCRYPTION\_MODE\_INVALID).
8118c2ecf20Sopenharmony_ci   * - 1
8128c2ecf20Sopenharmony_ci     - 256-bit AES in XTS mode (ENCRYPTION\_MODE\_AES\_256\_XTS).
8138c2ecf20Sopenharmony_ci   * - 2
8148c2ecf20Sopenharmony_ci     - 256-bit AES in GCM mode (ENCRYPTION\_MODE\_AES\_256\_GCM).
8158c2ecf20Sopenharmony_ci   * - 3
8168c2ecf20Sopenharmony_ci     - 256-bit AES in CBC mode (ENCRYPTION\_MODE\_AES\_256\_CBC).
8178c2ecf20Sopenharmony_ci
8188c2ecf20Sopenharmony_ciTotal size of the superblock is 1024 bytes.
819