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