@@ -30,7 +30,7 @@ this type of file system.
30
30
== License
31
31
32
32
....
33
- Copyright (C) 2010-2023 , Joachim Metz <[email protected] >.
33
+ Copyright (C) 2010-2024 , Joachim Metz <[email protected] >.
34
34
Permission is granted to copy, distribute and/or modify this document under the
35
35
terms of the GNU Free Documentation License, Version 1.3 or any later version
36
36
published by the Free Software Foundation; with no Invariant Sections, no
@@ -60,6 +60,7 @@ in the section entitled "GNU Free Documentation License".
60
60
| 0.0.14 | J.B. Metz | May 2022 | Additional information about device number.
61
61
| 0.0.15 | J.B. Metz | May 2023 | Additional information about extended attribute.
62
62
| 0.0.16 | J.B. Metz | August 2023 | Additional information about meta block groups.
63
+ | 0.0.17 | J.B. Metz | March 2024 | Additional information about orphan file feature.
63
64
|===
64
65
65
66
:numbered:
@@ -225,11 +226,11 @@ _If major version is EXT2_DYNAMIC_REV_
225
226
The inode size must be a power of 2 larger or equal to 128, the maximum supported by mke2fs is 1024
226
227
| 90 | 2 | | Block group +
227
228
Contains a block group number
228
- | 92 | 4 | | Compatible feature flags +
229
+ | 92 | 4 | | Compatible features flags +
229
230
See section: <<compatible_features_flags,Compatible features flags>>
230
- | 96 | 4 | | Incompatible feature flags +
231
+ | 96 | 4 | | Incompatible features flags +
231
232
See section: <<incompatible_features_flags,Incompatible features flags>>
232
- | 100 | 4 | | Read-only compatible feature flags +
233
+ | 100 | 4 | | Read-only compatible features flags +
233
234
See section: <<read_only_compatible_features_flags,Read-only compatible features flags>>
234
235
| 104 | 16 | | File system identifier +
235
236
Contains UUID that is stored in big-endian
@@ -317,11 +318,11 @@ _If major version is EXT2_DYNAMIC_REV_
317
318
| 88 | 2 | | Inode size +
318
319
The inode size must be a power of 2 larger or equal to 128, the maximum supported by mke2fs is 1024
319
320
| 90 | 2 | | Block group
320
- | 92 | 4 | | Compatible feature flags +
321
+ | 92 | 4 | | Compatible features flags +
321
322
See section: <<compatible_features_flags,Compatible features flags>>
322
- | 96 | 4 | | Incompatible feature flags +
323
+ | 96 | 4 | | Incompatible features flags +
323
324
See section: <<incompatible_features_flags,Incompatible features flags>>
324
- | 100 | 4 | | Read-only compatible feature flags +
325
+ | 100 | 4 | | Read-only compatible features flags +
325
326
See section: <<read_only_compatible_features_flags,Read-only compatible features flags>>
326
327
| 104 | 16 | | File system identifier +
327
328
Contains UUID that is stored in big-endian
@@ -372,52 +373,49 @@ Contains the upper 32-bit of the value
372
373
| 372 | 1 | | Flex block group size +
373
374
The size is stored as: 2 ^ value
374
375
| 373 | 1 | | [yellow-background]*Unknown (metadata checksum method)*
375
- | 374 | 2 | | [yellow-background]*Unknown (padding)*
376
- 4+| _Defined in ext4 reserved in earlier versions_
377
- 4+| _Common_ +
378
- | ... | ... | | [yellow-background]*Unknown (reserved)*
376
+ | 374 | 1 | | [yellow-background]*Unknown (encryption level)*
377
+ | 375 | 1 | | [yellow-background]*Unknown (padding)*
378
+ | 376 | 8 | | [yellow-background]*Unknown (s_kbytes_written)*
379
+ | 384 | 4 | | Inode number of active snapshot
380
+ | 388 | 4 | | Identifier of active snapshot
381
+ | 392 | 8 | | [yellow-background]*Unknown (reserved s_snapshot_r_blocks_count)*
382
+ | 400 | 4 | | Inode number of snapshot list head
383
+ | 404 | 4 | | [yellow-background]*Unknown (s_error_count)*
384
+ | 408 | 4 | | [yellow-background]*Unknown (s_first_error_time)*
385
+ | 412 | 4 | | [yellow-background]*Unknown (s_first_error_ino)*
386
+ | 416 | 8 | | [yellow-background]*Unknown (s_first_error_block)*
387
+ | 424 | 32 | | [yellow-background]*Unknown (s_first_error_func)*
388
+ | 456 | 4 | | [yellow-background]*Unknown (s_first_error_line)*
389
+ | 460 | 4 | | [yellow-background]*Unknown (s_last_error_time)*
390
+ | 464 | 4 | | [yellow-background]*Unknown (s_last_error_ino)*
391
+ | 468 | 4 | | [yellow-background]*Unknown (s_last_error_line)*
392
+ | 472 | 8 | | [yellow-background]*Unknown (s_last_error_block)*
393
+ | 480 | 32 | | [yellow-background]*Unknown (s_last_error_func)*
394
+ | 512 | 64 | | [yellow-background]*Unknown (s_mount_opts)*
395
+ | 576 | 4 | | [yellow-background]*Unknown (s_usr_quota_inum)*
396
+ | 560 | 4 | | [yellow-background]*Unknown (s_grp_quota_inum)*
397
+ | 564 | 4 | | [yellow-background]*Unknown (s_overhead_clusters)*
398
+ | 568 | 2 x 4 | | [yellow-background]*Unknown (s_backup_bgs)*
399
+ | 576 | 4 | | [yellow-background]*Unknown (s_encrypt_algos)*
400
+ | 580 | 16 | | [yellow-background]*Unknown (s_encrypt_pw_salt)*
401
+ | 596 | 4 | | [yellow-background]*Unknown (s_lpf_ino)*
402
+ | 600 | 4 | | [yellow-background]*Unknown (s_prj_quota_inum)*
403
+ | 604 | 4 | | [yellow-background]*Unknown (s_checksum_seed)*
404
+ | 608 | 1 | | [yellow-background]*Unknown (s_wtime_hi)*
405
+ | 609 | 1 | | [yellow-background]*Unknown (s_mtime_hi)*
406
+ | 610 | 1 | | [yellow-background]*Unknown (s_mkfs_time_hi)*
407
+ | 611 | 1 | | [yellow-background]*Unknown (s_lastcheck_hi)*
408
+ | 612 | 1 | | [yellow-background]*Unknown (s_first_error_time_hi)*
409
+ | 613 | 1 | | [yellow-background]*Unknown (s_last_error_time_hi)*
410
+ | 614 | 1 | | [yellow-background]*Unknown (s_first_error_errcode)*
411
+ | 615 | 1 | | [yellow-background]*Unknown (s_last_error_errcode)*
412
+ | 616 | 2 | | [yellow-background]*Unknown (s_encoding)*
413
+ | 618 | 2 | | [yellow-background]*Unknown (s_encoding_flags)*
414
+ | 620 | 4 | | [yellow-background]*Unknown (s_orphan_file_inum)*
415
+ | 624 | 94 x 4 | | [yellow-background]*Unknown (reserved)*
416
+ | 1000 | 4 | | [yellow-background]*Unknown (s_checksum)*
379
417
|===
380
418
381
- ....
382
- 4+| _Defined in ext4 reserved in earlier versions_
383
- 1146 __le64 s_kbytes_written; /* nr of lifetime kilobytes written */
384
- 1147 __le32 s_snapshot_inum; /* Inode number of active snapshot */
385
- 1148 __le32 s_snapshot_id; /* sequential ID of active snapshot */
386
- 1149 __le64 s_snapshot_r_blocks_count; /* reserved blocks for active
387
- 1150 snapshot's future use */
388
- 1151 __le32 s_snapshot_list; /* inode number of the head of the
389
- 1152 on-disk snapshot list */
390
- 1153 #define EXT4_S_ERR_START offsetof(struct ext4_super_block, s_error_count)
391
- 1154 __le32 s_error_count; /* number of fs errors */
392
- 1155 __le32 s_first_error_time; /* first time an error happened */
393
- 1156 __le32 s_first_error_ino; /* inode involved in first error */
394
- 1157 __le64 s_first_error_block; /* block involved of first error */
395
- 1158 __u8 s_first_error_func[32]; /* function where the error happened */
396
- 1159 __le32 s_first_error_line; /* line number where error happened */
397
- 1160 __le32 s_last_error_time; /* most recent time of an error */
398
- 1161 __le32 s_last_error_ino; /* inode involved in last error */
399
- 1162 __le32 s_last_error_line; /* line number where error happened */
400
- 1163 __le64 s_last_error_block; /* block involved of last error */
401
- 1164 __u8 s_last_error_func[32]; /* function where the error happened */
402
- 1165 #define EXT4_S_ERR_END offsetof(struct ext4_super_block, s_mount_opts)
403
- 1166 __u8 s_mount_opts[64];
404
- 1167 __le32 s_usr_quota_inum; /* inode for tracking user quota */
405
- 1168 __le32 s_grp_quota_inum; /* inode for tracking group quota */
406
- 1169 __le32 s_overhead_clusters; /* overhead blocks/clusters in fs */
407
- 1170 __le32 s_backup_bgs[2]; /* groups with sparse_super2 SBs */
408
- 1171 __u8 s_encrypt_algos[4]; /* Encryption algorithms in use */
409
- 1172 __le32 s_reserved[105]; /* Padding to the end of the block */
410
- 1173 __le32 s_checksum; /* crc32c(superblock) */
411
- ....
412
-
413
- ....
414
- __le16 s_desc_size; (replaces a reserved field)
415
- /* 64bit support valid if EXT4_FEATURE_INCOMPAT_64BIT */
416
- /*150*/ __le32 s_blocks_count_hi; /* Blocks count */
417
- __le32 s_r_blocks_count_hi; /* Reserved blocks count */
418
- __le32 s_free_blocks_count_hi; /* Free blocks count */
419
- ....
420
-
421
419
[NOTE]
422
420
Some versions of mkfs.ext set the file system creation time even for ext2 and
423
421
when EXT3_FEATURE_COMPAT_HAS_JOURNAL is not set.
@@ -486,6 +484,9 @@ EXT2_FEATURE_COMPAT_RESIZE_INODE | Has reserved GDT blocks for file system expan
486
484
| 0x00000100 | COMPAT_EXCLUDE_BITMAP | [yellow-background]*Unknown (Exclude inode)* +
487
485
[yellow-background]*Not implemented, intended for file system snapshot feature?*
488
486
| 0x00000200 | EXT4_FEATURE_COMPAT_SPARSE_SUPER2 | Has a version 2 sparse super block.
487
+ | 0x00000400 | EXT4_FEATURE_COMPAT_FAST_COMMIT | [yellow-background]*TODO: add description*
488
+ | 0x00000800 | EXT4_FEATURE_COMPAT_STABLE_INODES | [yellow-background]*TODO: add description*
489
+ | 0x00001000 | EXT4_FEATURE_COMPAT_ORPHAN_FILE | Has orphan file.
489
490
|===
490
491
491
492
[NOTE]
@@ -503,6 +504,7 @@ and COMPAT_ can be used interchangeably.
503
504
| 0x00000004 | EXT3_FEATURE_INCOMPAT_RECOVER | Needs recovery
504
505
| 0x00000008 | EXT3_FEATURE_INCOMPAT_JOURNAL_DEV | Has journal device
505
506
| 0x00000010 | EXT2_FEATURE_INCOMPAT_META_BG | Has meta (or metadata) block groups
507
+ | | |
506
508
| 0x00000040 | EXT4_FEATURE_INCOMPAT_EXTENTS | Has extents
507
509
| 0x00000080 | EXT4_FEATURE_INCOMPAT_64BIT | Has 64-bit support
508
510
| 0x00000100 | EXT4_FEATURE_INCOMPAT_MMP | Multiple mount protection
@@ -511,8 +513,8 @@ and COMPAT_ can be used interchangeably.
511
513
| | |
512
514
| 0x00001000 | EXT4_FEATURE_INCOMPAT_DIRDATA | Data in directory entry +
513
515
[yellow-background]*Not yet supported, in development*
514
- | 0x00002000 | EXT4_FEATURE_INCOMPAT_BG_USE_META_CSUM +
515
- EXT4_FEATURE_INCOMPAT_CSUM_SEED | Metadata checksum seed is stored in the superblock
516
+ | 0x00002000 | EXT4_FEATURE_INCOMPAT_CSUM_SEED +
517
+ EXT4_FEATURE_INCOMPAT_BG_USE_META_CSUM | Metadata checksum seed is stored in the superblock
516
518
| 0x00004000 | EXT4_FEATURE_INCOMPAT_LARGEDIR | Large directory >2GB or 3-level hash tree (HTree).
517
519
| 0x00008000 | EXT4_FEATURE_INCOMPAT_INLINE_DATA | Has data stored in inode.
518
520
| 0x00010000 | EXT4_FEATURE_INCOMPAT_ENCRYPT | Has encrypted inodes.
@@ -551,6 +553,7 @@ Block allocation bitmaps are tracked in units of clusters (of blocks) instead of
551
553
| 0x00002000 | EXT4_FEATURE_RO_COMPAT_PROJECT | Filesystem tracks project quotas.
552
554
| 0x00004000 | EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS | Filesystem has (read-only) shared blocks.
553
555
| 0x00008000 | EXT4_FEATURE_RO_COMPAT_VERITY | [yellow-background]*Unknown (Verity inodes may be present on the filesystem.)*
556
+ | 0x00010000 | EXT4_FEATURE_RO_COMPAT_ORPHAN_PRESENT | Orphan file may be non-empty.
554
557
|===
555
558
556
559
[NOTE]
0 commit comments