^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Super Block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) The superblock records various information about the enclosing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) filesystem, such as block counts, inode counts, supported features,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) maintenance information, and more.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) If the sparse\_super feature flag is set, redundant copies of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) superblock and group descriptors are kept only in the groups whose group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) number is either 0 or a power of 3, 5, or 7. If the flag is not set,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) redundant copies are kept in all groups.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) The superblock checksum is calculated against the superblock structure,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) which includes the FS UUID.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) The ext4 superblock is laid out as follows in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) ``struct ext4_super_block``:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) :widths: 8 8 24 40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) * - Offset
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - Size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - Name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) * - 0x0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - s\_inodes\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - Total inode count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - s\_blocks\_count\_lo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) - Total block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - s\_r\_blocks\_count\_lo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - This number of blocks can only be allocated by the super-user.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) * - 0xC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) - s\_free\_blocks\_count\_lo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) - Free block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - s\_free\_inodes\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) - Free inode count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) * - 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) - s\_first\_data\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) - First data block. This must be at least 1 for 1k-block filesystems and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) is typically 0 for all other block sizes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) * - 0x18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) - s\_log\_block\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) - Block size is 2 ^ (10 + s\_log\_block\_size).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) * - 0x1C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) - s\_log\_cluster\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) - Cluster size is 2 ^ (10 + s\_log\_cluster\_size) blocks if bigalloc is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) enabled. Otherwise s\_log\_cluster\_size must equal s\_log\_block\_size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) * - 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) - s\_blocks\_per\_group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) - Blocks per group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) * - 0x24
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) - s\_clusters\_per\_group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) - Clusters per group, if bigalloc is enabled. Otherwise
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) s\_clusters\_per\_group must equal s\_blocks\_per\_group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) * - 0x28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - s\_inodes\_per\_group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) - Inodes per group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) * - 0x2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) - s\_mtime
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) - Mount time, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) * - 0x30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) - s\_wtime
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) - Write time, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) * - 0x34
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) - s\_mnt\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) - Number of mounts since the last fsck.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) * - 0x36
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) - s\_max\_mnt\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) - Number of mounts beyond which a fsck is needed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) * - 0x38
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) - s\_magic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) - Magic signature, 0xEF53
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) * - 0x3A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) - s\_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) - File system state. See super_state_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) * - 0x3C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) - s\_errors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) - Behaviour when detecting errors. See super_errors_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) * - 0x3E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) - s\_minor\_rev\_level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) - Minor revision level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) - s\_lastcheck
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) - Time of last check, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) * - 0x44
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) - s\_checkinterval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) - Maximum time between checks, in seconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) * - 0x48
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) - s\_creator\_os
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) - Creator OS. See the table super_creator_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) * - 0x4C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) - s\_rev\_level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) - Revision level. See the table super_revision_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) * - 0x50
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) - s\_def\_resuid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) - Default uid for reserved blocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) * - 0x52
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) - s\_def\_resgid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) - Default gid for reserved blocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) - These fields are for EXT4_DYNAMIC_REV superblocks only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) Note: the difference between the compatible feature set and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) incompatible feature set is that if there is a bit set in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) incompatible feature set that the kernel doesn't know about, it should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) refuse to mount the filesystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) e2fsck's requirements are more strict; if it doesn't know
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) about a feature in either the compatible or incompatible feature set, it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) must abort and not try to meddle with things it doesn't understand...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) * - 0x54
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) - s\_first\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) - First non-reserved inode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) * - 0x58
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) - s\_inode\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) - Size of inode structure, in bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) * - 0x5A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) - s\_block\_group\_nr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) - Block group # of this superblock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) * - 0x5C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) - s\_feature\_compat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) - Compatible feature set flags. Kernel can still read/write this fs even
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) if it doesn't understand a flag; fsck should not do that. See the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) super_compat_ table for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) * - 0x60
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) - s\_feature\_incompat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) - Incompatible feature set. If the kernel or fsck doesn't understand one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) of these bits, it should stop. See the super_incompat_ table for more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) * - 0x64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) - s\_feature\_ro\_compat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) - Readonly-compatible feature set. If the kernel doesn't understand one of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) these bits, it can still mount read-only. See the super_rocompat_ table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) * - 0x68
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) - s\_uuid[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) - 128-bit UUID for volume.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) * - 0x78
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) - char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) - s\_volume\_name[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) - Volume label.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) * - 0x88
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) - char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) - s\_last\_mounted[64]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) - Directory where filesystem was last mounted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) * - 0xC8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) - s\_algorithm\_usage\_bitmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) - For compression (Not used in e2fsprogs/Linux)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) - Performance hints. Directory preallocation should only happen if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) EXT4_FEATURE_COMPAT_DIR_PREALLOC flag is on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) * - 0xCC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) - s\_prealloc\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) - #. of blocks to try to preallocate for ... files? (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) e2fsprogs/Linux)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) * - 0xCD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) - s\_prealloc\_dir\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) - #. of blocks to preallocate for directories. (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) e2fsprogs/Linux)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) * - 0xCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) - s\_reserved\_gdt\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) - Number of reserved GDT entries for future filesystem expansion.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) - Journalling support is valid only if EXT4_FEATURE_COMPAT_HAS_JOURNAL is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) * - 0xD0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) - s\_journal\_uuid[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) - UUID of journal superblock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) * - 0xE0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) - s\_journal\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) - inode number of journal file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) * - 0xE4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) - s\_journal\_dev
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) - Device number of journal file, if the external journal feature flag is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) * - 0xE8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) - s\_last\_orphan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) - Start of list of orphaned inodes to delete.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) * - 0xEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) - s\_hash\_seed[4]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) - HTREE hash seed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) * - 0xFC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) - s\_def\_hash\_version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) - Default hash algorithm to use for directory hashes. See super_def_hash_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) * - 0xFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) - s\_jnl\_backup\_type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) - If this value is 0 or EXT3\_JNL\_BACKUP\_BLOCKS (1), then the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) ``s_jnl_blocks`` field contains a duplicate copy of the inode's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) ``i_block[]`` array and ``i_size``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) * - 0xFE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) - s\_desc\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) - Size of group descriptors, in bytes, if the 64bit incompat feature flag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) - s\_default\_mount\_opts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) - Default mount options. See the super_mountopts_ table for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) * - 0x104
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) - s\_first\_meta\_bg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) - First metablock block group, if the meta\_bg feature is enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) * - 0x108
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) - s\_mkfs\_time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) - When the filesystem was created, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) * - 0x10C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) - s\_jnl\_blocks[17]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) - Backup copy of the journal inode's ``i_block[]`` array in the first 15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) elements and i\_size\_high and i\_size in the 16th and 17th elements,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) respectively.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) - 64bit support is valid only if EXT4_FEATURE_COMPAT_64BIT is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) * - 0x150
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) - s\_blocks\_count\_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) - High 32-bits of the block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) * - 0x154
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) - s\_r\_blocks\_count\_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) - High 32-bits of the reserved block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) * - 0x158
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) - s\_free\_blocks\_count\_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) - High 32-bits of the free block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) * - 0x15C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) - s\_min\_extra\_isize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) - All inodes have at least # bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) * - 0x15E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) - s\_want\_extra\_isize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) - New inodes should reserve # bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) * - 0x160
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) - s\_flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) - Miscellaneous flags. See the super_flags_ table for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) * - 0x164
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) - s\_raid\_stride
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) - RAID stride. This is the number of logical blocks read from or written
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) to the disk before moving to the next disk. This affects the placement
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) of filesystem metadata, which will hopefully make RAID storage faster.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) * - 0x166
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) - s\_mmp\_interval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) - #. seconds to wait in multi-mount prevention (MMP) checking. In theory,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) MMP is a mechanism to record in the superblock which host and device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) have mounted the filesystem, in order to prevent multiple mounts. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) feature does not seem to be implemented...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) * - 0x168
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) - s\_mmp\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) - Block # for multi-mount protection data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) * - 0x170
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) - s\_raid\_stripe\_width
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) - RAID stripe width. This is the number of logical blocks read from or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) written to the disk before coming back to the current disk. This is used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) by the block allocator to try to reduce the number of read-modify-write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) operations in a RAID5/6.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) * - 0x174
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) - s\_log\_groups\_per\_flex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) - Size of a flexible block group is 2 ^ ``s_log_groups_per_flex``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) * - 0x175
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) - s\_checksum\_type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) - Metadata checksum algorithm type. The only valid value is 1 (crc32c).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) * - 0x176
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) - s\_reserved\_pad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) * - 0x178
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) - s\_kbytes\_written
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) - Number of KiB written to this filesystem over its lifetime.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) * - 0x180
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) - s\_snapshot\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) - inode number of active snapshot. (Not used in e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) * - 0x184
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) - s\_snapshot\_id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) - Sequential ID of active snapshot. (Not used in e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) * - 0x188
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) - s\_snapshot\_r\_blocks\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) - Number of blocks reserved for active snapshot's future use. (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) * - 0x190
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) - s\_snapshot\_list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) - inode number of the head of the on-disk snapshot list. (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) * - 0x194
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) - s\_error\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) - Number of errors seen.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) * - 0x198
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) - s\_first\_error\_time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) - First time an error happened, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) * - 0x19C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) - s\_first\_error\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) - inode involved in first error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) * - 0x1A0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) - s\_first\_error\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) - Number of block involved of first error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) * - 0x1A8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) - s\_first\_error\_func[32]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) - Name of function where the error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) * - 0x1C8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) - s\_first\_error\_line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) - Line number where error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) * - 0x1CC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) - s\_last\_error\_time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) - Time of most recent error, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) * - 0x1D0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) - s\_last\_error\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) - inode involved in most recent error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) * - 0x1D4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) - s\_last\_error\_line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) - Line number where most recent error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) * - 0x1D8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) - s\_last\_error\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) - Number of block involved in most recent error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) * - 0x1E0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) - s\_last\_error\_func[32]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) - Name of function where the most recent error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) - s\_mount\_opts[64]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) - ASCIIZ string of mount options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) * - 0x240
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) - s\_usr\_quota\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) - Inode number of user `quota <quota>`__ file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) * - 0x244
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) - s\_grp\_quota\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) - Inode number of group `quota <quota>`__ file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) * - 0x248
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) - s\_overhead\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) - Overhead blocks/clusters in fs. (Huh? This field is always zero, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) means that the kernel calculates it dynamically.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) * - 0x24C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) - s\_backup\_bgs[2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) - Block groups containing superblock backups (if sparse\_super2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) * - 0x254
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) - s\_encrypt\_algos[4]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) - Encryption algorithms in use. There can be up to four algorithms in use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) at any time; valid algorithm codes are given in the super_encrypt_ table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) * - 0x258
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) - s\_encrypt\_pw\_salt[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) - Salt for the string2key algorithm for encryption.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) * - 0x268
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) - s\_lpf\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) - Inode number of lost+found
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) * - 0x26C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) - s\_prj\_quota\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) - Inode that tracks project quotas.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) * - 0x270
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) - s\_checksum\_seed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) - Checksum seed used for metadata\_csum calculations. This value is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) crc32c(~0, $orig\_fs\_uuid).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) * - 0x274
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) - s\_wtime_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) - Upper 8 bits of the s_wtime field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) * - 0x275
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) - s\_mtime_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) - Upper 8 bits of the s_mtime field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) * - 0x276
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) - s\_mkfs_time_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) - Upper 8 bits of the s_mkfs_time field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) * - 0x277
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) - s\_lastcheck_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) - Upper 8 bits of the s_lastcheck_hi field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) * - 0x278
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) - s\_first_error_time_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) - Upper 8 bits of the s_first_error_time_hi field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) * - 0x279
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) - s\_last_error_time_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) - Upper 8 bits of the s_last_error_time_hi field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) * - 0x27A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) - s\_pad[2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) - Zero padding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) * - 0x27C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) - s\_encoding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) - Filename charset encoding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) * - 0x27E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) - s\_encoding_flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) - Filename charset encoding flags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) * - 0x280
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) - s\_reserved[95]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) - Padding to the end of the block.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) * - 0x3FC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) - s\_checksum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) - Superblock checksum.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) .. _super_state:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) The superblock state is some combination of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) * - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) - Cleanly umounted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) * - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) - Errors detected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) * - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) - Orphans being recovered
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) .. _super_errors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) The superblock error policy is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) - Continue
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) * - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) - Remount read-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) * - 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) - Panic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) .. _super_creator:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) The filesystem creator is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) * - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) - Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) - Hurd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) * - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) - Masix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) * - 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) - FreeBSD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) * - 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) - Lites
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) .. _super_revision:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) The superblock revision is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) * - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) - Original format
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) - v2 format w/ dynamic inode sizes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) Note that ``EXT4_DYNAMIC_REV`` refers to a revision 1 or newer filesystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) .. _super_compat:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) The superblock compatible features field is a combination of any of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) :widths: 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) - Directory preallocation (COMPAT\_DIR\_PREALLOC).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) - “imagic inodes”. Not clear from the code what this does
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) (COMPAT\_IMAGIC\_INODES).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) - Has a journal (COMPAT\_HAS\_JOURNAL).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) - Supports extended attributes (COMPAT\_EXT\_ATTR).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) - Has reserved GDT blocks for filesystem expansion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) (COMPAT\_RESIZE\_INODE). Requires RO\_COMPAT\_SPARSE\_SUPER.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) * - 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) - Has directory indices (COMPAT\_DIR\_INDEX).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) - “Lazy BG”. Not in Linux kernel, seems to have been for uninitialized
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) block groups? (COMPAT\_LAZY\_BG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) * - 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) - “Exclude inode”. Not used. (COMPAT\_EXCLUDE\_INODE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) - “Exclude bitmap”. Seems to be used to indicate the presence of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) snapshot-related exclude bitmaps? Not defined in kernel or used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) e2fsprogs (COMPAT\_EXCLUDE\_BITMAP).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) - Sparse Super Block, v2. If this flag is set, the SB field s\_backup\_bgs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) points to the two block groups that contain backup superblocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) (COMPAT\_SPARSE\_SUPER2).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) * - 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) - Fast commits supported. Although fast commits blocks are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) backward incompatible, fast commit blocks are not always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) present in the journal. If fast commit blocks are present in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) the journal, JBD2 incompat feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) (JBD2\_FEATURE\_INCOMPAT\_FAST\_COMMIT) gets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) set (COMPAT\_FAST\_COMMIT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) .. _super_incompat:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) The superblock incompatible features field is a combination of any of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) :widths: 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) - Compression (INCOMPAT\_COMPRESSION).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) - Directory entries record the file type. See ext4\_dir\_entry\_2 below
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) (INCOMPAT\_FILETYPE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) - Filesystem needs recovery (INCOMPAT\_RECOVER).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) - Filesystem has a separate journal device (INCOMPAT\_JOURNAL\_DEV).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) - Meta block groups. See the earlier discussion of this feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) (INCOMPAT\_META\_BG).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) - Files in this filesystem use extents (INCOMPAT\_EXTENTS).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) * - 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) - Enable a filesystem size of 2^64 blocks (INCOMPAT\_64BIT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) - Multiple mount protection (INCOMPAT\_MMP).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) - Flexible block groups. See the earlier discussion of this feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) (INCOMPAT\_FLEX\_BG).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) * - 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) - Inodes can be used to store large extended attribute values
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) (INCOMPAT\_EA\_INODE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) * - 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) - Data in directory entry (INCOMPAT\_DIRDATA). (Not implemented?)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) * - 0x2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) - Metadata checksum seed is stored in the superblock. This feature enables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) the administrator to change the UUID of a metadata\_csum filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) while the filesystem is mounted; without it, the checksum definition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) requires all metadata blocks to be rewritten (INCOMPAT\_CSUM\_SEED).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) * - 0x4000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) - Large directory >2GB or 3-level htree (INCOMPAT\_LARGEDIR). Prior to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) this feature, directories could not be larger than 4GiB and could not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) have an htree more than 2 levels deep. If this feature is enabled,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) directories can be larger than 4GiB and have a maximum htree depth of 3.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) * - 0x8000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) - Data in inode (INCOMPAT\_INLINE\_DATA).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) * - 0x10000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) - Encrypted inodes are present on the filesystem. (INCOMPAT\_ENCRYPT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) .. _super_rocompat:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) The superblock read-only compatible features field is a combination of any of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) :widths: 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) - Sparse superblocks. See the earlier discussion of this feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) (RO\_COMPAT\_SPARSE\_SUPER).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) - This filesystem has been used to store a file greater than 2GiB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) (RO\_COMPAT\_LARGE\_FILE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) - Not used in kernel or e2fsprogs (RO\_COMPAT\_BTREE\_DIR).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) - This filesystem has files whose sizes are represented in units of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) logical blocks, not 512-byte sectors. This implies a very large file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) indeed! (RO\_COMPAT\_HUGE\_FILE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) - Group descriptors have checksums. In addition to detecting corruption,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) this is useful for lazy formatting with uninitialized groups
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) (RO\_COMPAT\_GDT\_CSUM).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) * - 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) - Indicates that the old ext3 32,000 subdirectory limit no longer applies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) (RO\_COMPAT\_DIR\_NLINK). A directory's i\_links\_count will be set to 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) if it is incremented past 64,999.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) - Indicates that large inodes exist on this filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) (RO\_COMPAT\_EXTRA\_ISIZE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) * - 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) - This filesystem has a snapshot (RO\_COMPAT\_HAS\_SNAPSHOT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) - `Quota <Quota>`__ (RO\_COMPAT\_QUOTA).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) - This filesystem supports “bigalloc”, which means that file extents are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) tracked in units of clusters (of blocks) instead of blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) (RO\_COMPAT\_BIGALLOC).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) * - 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) - This filesystem supports metadata checksumming.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) (RO\_COMPAT\_METADATA\_CSUM; implies RO\_COMPAT\_GDT\_CSUM, though
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) GDT\_CSUM must not be set)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) * - 0x800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) - Filesystem supports replicas. This feature is neither in the kernel nor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) e2fsprogs. (RO\_COMPAT\_REPLICA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) * - 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) - Read-only filesystem image; the kernel will not mount this image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) read-write and most tools will refuse to write to the image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) (RO\_COMPAT\_READONLY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) * - 0x2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) - Filesystem tracks project quotas. (RO\_COMPAT\_PROJECT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) * - 0x8000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) - Verity inodes may be present on the filesystem. (RO\_COMPAT\_VERITY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) .. _super_def_hash:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) The ``s_def_hash_version`` field is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) * - 0x0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) - Legacy.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) - Half MD4.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) - Tea.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) * - 0x3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) - Legacy, unsigned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) - Half MD4, unsigned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) * - 0x5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) - Tea, unsigned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) .. _super_mountopts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) The ``s_default_mount_opts`` field is any combination of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) * - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) - Print debugging info upon (re)mount. (EXT4\_DEFM\_DEBUG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) * - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) - New files take the gid of the containing directory (instead of the fsgid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) of the current process). (EXT4\_DEFM\_BSDGROUPS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) * - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) - Support userspace-provided extended attributes. (EXT4\_DEFM\_XATTR\_USER)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) * - 0x0008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) - Support POSIX access control lists (ACLs). (EXT4\_DEFM\_ACL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) * - 0x0010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) - Do not support 32-bit UIDs. (EXT4\_DEFM\_UID16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) * - 0x0020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) - All data and metadata are commited to the journal.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) (EXT4\_DEFM\_JMODE\_DATA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) * - 0x0040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) - All data are flushed to the disk before metadata are committed to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) journal. (EXT4\_DEFM\_JMODE\_ORDERED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) * - 0x0060
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) - Data ordering is not preserved; data may be written after the metadata
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) has been written. (EXT4\_DEFM\_JMODE\_WBACK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) * - 0x0100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) - Disable write flushes. (EXT4\_DEFM\_NOBARRIER)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) * - 0x0200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) - Track which blocks in a filesystem are metadata and therefore should not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) be used as data blocks. This option will be enabled by default on 3.18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) hopefully. (EXT4\_DEFM\_BLOCK\_VALIDITY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) * - 0x0400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) - Enable DISCARD support, where the storage device is told about blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) becoming unused. (EXT4\_DEFM\_DISCARD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) * - 0x0800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) - Disable delayed allocation. (EXT4\_DEFM\_NODELALLOC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) .. _super_flags:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) The ``s_flags`` field is any combination of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) * - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) - Signed directory hash in use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) * - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) - Unsigned directory hash in use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) * - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) - To test development code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) .. _super_encrypt:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) The ``s_encrypt_algos`` list can contain any of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) * - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) - Invalid algorithm (ENCRYPTION\_MODE\_INVALID).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) - 256-bit AES in XTS mode (ENCRYPTION\_MODE\_AES\_256\_XTS).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) * - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) - 256-bit AES in GCM mode (ENCRYPTION\_MODE\_AES\_256\_GCM).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) * - 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) - 256-bit AES in CBC mode (ENCRYPTION\_MODE\_AES\_256\_CBC).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) Total size of the superblock is 1024 bytes.