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