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