.\" -*- 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)
