| .\" -*- nroff -*- |
| .\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. |
| .\" This file may be copied under the terms of the GNU Public License. |
| .\" |
| .TH EXT4 5 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@" |
| .SH NAME |
| ext2 \- the second extended file system |
| .br |
| ext2 \- the third extended file system |
| .br |
| ext4 \- the fourth extended file system |
| .SH DESCRIPTION |
| The second, third, and fourth extended file systems, or ext2, ext3, and |
| ext4 as they are commonly known, are Linux file systems that have |
| historically been the default file system for many Linux distributions. |
| They are general purpose file systems that have been designed for |
| extensibility and backwards compatibility. In particular, file systems |
| previously intended for use with the ext2 and ext3 file systems can be |
| mounted using the ext4 file system driver, and indeed in many modern |
| Linux distributions, the ext4 file system driver has been configured |
| handle mount requests for ext2 and ext3 file systems. |
| .SH FILE SYSTEM FEATURES |
| A file system formated for ext2, ext3, or ext4 can be have some |
| collection of the follow file system feature flags enabled. Some of |
| these features are not supported by all implementations of the ext2, |
| ext3, and ext4 file system drivers, depending on Linux kernel version in |
| use. On other operating systems, such as the GNU/HURD or FreeBSD, only |
| a very restrictive set of file system features may be supported in their |
| implementations of ext2. |
| .RS 1.2i |
| .TP |
| .B 64bit |
| .br |
| Enables the file system to be larger than 2^32 blocks. This feature is set |
| automatically, as needed, but it can be useful to specify this feature |
| explicitly if the file system might need to be resized larger than 2^32 |
| blocks, even if it was smaller than that threshold when it was |
| originally created. Note that some older kernels and older versions |
| of e2fsprogs will not support file systems with this ext4 feature enabled. |
| .TP |
| .B bigalloc |
| .br |
| This ext4 feature enables clustered block allocation, so that the unit of |
| allocation is a power of two number of blocks. That is, each bit in the |
| what had traditionally been known as the block allocation bitmap now |
| indicates whether a cluster is in use or not, where a cluster is by |
| default composed of 16 blocks. This feature can decrease the time |
| spent on doing block allocation and brings smaller fragmentation, especially |
| for large files. The size can be specified using the |
| .B \-C option. |
| .IP |
| .B Warning: |
| The bigalloc feature is still under development, and may not be fully |
| supported with your kernel or may have various bugs. Please see the web |
| page http://ext4.wiki.kernel.org/index.php/Bigalloc for details. |
| May clash with delayed allocation (see |
| .BR nodelalloc mount option). |
| .IP |
| This feature requires that the |
| .B extent |
| features be enabled. |
| .TP |
| .B dir_index |
| .br |
| Use hashed b-trees to speed up name lookups in large directories. This |
| feature is supported by ext3 and ext4 file systems, and is ignored by |
| ext2 file systems. |
| .TP |
| .B dir_nlink |
| .br |
| This ext4 feature allows more than 65000 subdirectories per directory. |
| .TP |
| .B extent |
| .br |
| This ext4 feature allows the mapping of logical block numbers for a |
| particular inode to physical blocks on the storage device to be stored |
| using an extent tree, which is a more efficient data structure than the |
| traditional indirect block scheme used by the ext2 and ext3 file |
| systems. The use of the extent tree decreases metadata block overhead, |
| improves file system performance, and decreases the needed to run |
| .BR e2fsck (8) |
| on the file system. |
| (Note: both |
| .B extent |
| and |
| .B extents |
| are accepted as valid names for this feature for |
| historical/backwards compatibility reasons.) |
| .TP |
| .B extra_isize |
| .br |
| This ext4 feature reserves a specific amount of space in each inode for |
| extended metadata such as nanosecond timestamps and file creation time, |
| even if the current kernel does not current need to reserve this much |
| space. Without this feature, the kernel will reserve the amount of |
| space for features currently it currently needs, and the rest may be |
| consumed by extended attributes. |
| |
| For this feature to be useful the inode size must be 256 bytes in size |
| or larger. |
| .TP |
| .B ext_attr |
| .br |
| This feature enables the use of extended attributes. This feature is |
| supported by ext2, ext3, and ext4. |
| .TP |
| .B filetype |
| .br |
| This feature enables the storage file type information in directory |
| entries. This feature is supported by ext2, ext3, and ext4. |
| .TP |
| .B flex_bg |
| .br |
| This ext4 feature allows the per-block group metadata (allocation |
| bitmaps |
| and inode tables) |
| to be placed anywhere on the storage media. In addition, |
| .B mke2fs |
| will place the per-block group metadata together starting at the first |
| block group of each "flex_bg group". The size of the flex_bg group |
| can be specified using the |
| .B \-G |
| option. |
| .TP |
| .B has_journal |
| .br |
| Create a journal to ensure filesystem consistency even across unclean |
| shutdowns. Setting the filesystem feature is equivalent to using the |
| .B \-j |
| option. This feature is supported by ext3 and ext4, and ignored by the |
| ext2 file system driver. |
| .TP |
| .B huge_file |
| .br |
| This ext4 feature allows files to be larger than 2 terabytes in size. |
| .TP |
| .B journal_dev |
| .br |
| This feature is enabled on the superblock found on an external journal |
| device. The block size for the external journal must be the same as the |
| file system which uses it. |
| .IP |
| The external journal device can be used by a file system by specifying |
| the |
| .B \-J |
| .BR device= <external-device> |
| option to |
| .BR mke2fs (8) |
| or |
| .BR tune2fs(8). |
| .TP |
| .B large_file |
| .br |
| This feature flag is set automatically by modern kernels when a file |
| larger than 2 gigabytes is created. Very old kernels could not |
| handle large files, so this feature flag was used to prohibit those |
| kernels from mounting file systems that they could not understand. |
| .\" .TP |
| .\" .B metadata_csum |
| .\" .br |
| .\" This ext4 feature enables metadata checksumming. This feature stores |
| .\" checksums for all of the filesystem metadata (superblock, group |
| .\" descriptor blocks, inode and block bitmaps, directories, and |
| .\" extent tree blocks). The checksum algorithm used for the metadata |
| .\" blocks is different than the one used for group descriptors with the |
| .\" .B uninit_bg |
| .\" feature, these two features are incompatible and |
| .\" .B metadata_csum |
| .\" will be used preferentially instead of |
| .\" .BR uninit_bg . |
| .\" .br |
| .\" .B Future feature, available in e2fsprogs 1.43-WIP |
| .TP |
| .B sparse_super2 |
| .br |
| This feature indicates that there will only at most two backup |
| superblock and block group descriptors. The block groups used to store |
| the backup superblock and blockgroup descriptors are stored in the |
| superblock, but typically, one will be located at the beginning of block |
| group #1, and one in the last block group in the file system. This is |
| feature is essentially a more extreme version of sparse_super and is |
| designed to allow the a much larger percentage of the disk to have |
| contiguous blocks available for data files. |
| .TP |
| .B meta_bg |
| .br |
| This ext4 feature allows file systems to be resized on-line without explicitly |
| needing to reserve space for growth in the size of the block group |
| descriptors. This scheme is also used to resize file systems which are |
| larger than 2^32 blocks. It is not recommended that this feature be set |
| when a file system is created, since this alternate method of storing |
| the block group descriptor will slow down the time needed to mount the |
| file system, and newer kernels can automatically set this feature as |
| necessary when doing an online resize and no more reserved space is |
| available in the resize inode. |
| .TP |
| .B mmp |
| .br |
| This ext4 feature provides multiple mount protection (MMP). MMP helps to |
| protect the filesystem from being multiply mounted and is useful in |
| shared storage environments. |
| @QUOTA_MAN_COMMENT@.TP |
| @QUOTA_MAN_COMMENT@.B quota |
| @QUOTA_MAN_COMMENT@.br |
| @QUOTA_MAN_COMMENT@Create quota inodes (inode #3 for userquota and inode |
| @QUOTA_MAN_COMMENT@#4 for group quota) and set them in the superblock. |
| @QUOTA_MAN_COMMENT@With this feature, the quotas will be enabled |
| @QUOTA_MAN_COMMENT@automatically when the filesystem is mounted. |
| @QUOTA_MAN_COMMENT@.IP |
| @QUOTA_MAN_COMMENT@Causes the quota files (i.e., user.quota and |
| @QUOTA_MAN_COMMENT@group.quota which existed |
| @QUOTA_MAN_COMMENT@in the older quota design) to be hidden inodes. |
| @QUOTA_MAN_COMMENT@.IP |
| @QUOTA_MAN_COMMENT@.B Warning: |
| @QUOTA_MAN_COMMENT@The quota feature is still under development, |
| @QUOTA_MAN_COMMENT@and may not be fully supported with your kernel |
| @QUOTA_MAN_COMMENT@or may have various bugs. Please |
| @QUOTA_MAN_COMMENT@see https://ext4.wiki.kernel.org/index.php/Quota |
| @QUOTA_MAN_COMMENT@for more details. |
| .TP |
| .B resize_inode |
| .br |
| This file system feature indicates that space has been reserved so |
| the block group descriptor table can be extended by the file system is |
| resized while the file system is mounted. The online resize operation |
| is carried out by the kernel, triggered, by |
| .BR resize2fs (8). |
| By default |
| .B mke2fs |
| will attempt to reserve enough space so that the |
| filesystem may grow to 1024 times its initial size. This can be changed |
| using the |
| .B resize |
| extended option. |
| .IP |
| This feature requires that the |
| .B sparse_super |
| feature be enabled. |
| .TP |
| .B sparse_super |
| .br |
| This file system feature is set on all modern ext2, ext3, and ext4 file |
| system. It indicates that backup copies of the superblock and block |
| group descriptors be present only on a few block groups, and not all of |
| them. |
| .TP |
| .B uninit_bg |
| .br |
| This ext4 file system feature indicates that the block group descriptors |
| will be protected using checksums, making it safe for |
| .BR mke2fs (8) |
| to create a file system without initializing all of the block groups. |
| The kernel will keep a high watermark of unused inodes, and initialize |
| inode tables and block lazily. This feature speeds up the time to check |
| the file system using |
| .BR e2fsck (8), |
| and it also speeds up the time required for |
| .BR mke2fs (8) |
| to create the file system. |
| .RE |
| .SH SEE ALSO |
| .BR mke2fs (8), |
| .BR mke2fs.conf (5), |
| .BR e2fsck (8), |
| .BR dumpe2fs (8), |
| .BR tune2fs (8), |
| .BR debugfs (8) |