JP Abgrall | e0ed740 | 2014-03-19 19:08:39 -0700 | [diff] [blame] | 1 | .\" -*- nroff -*- |
| 2 | .\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. |
| 3 | .\" This file may be copied under the terms of the GNU Public License. |
| 4 | .\" |
| 5 | .TH EXT4 5 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@" |
| 6 | .SH NAME |
| 7 | ext2 \- the second extended file system |
| 8 | .br |
| 9 | ext2 \- the third extended file system |
| 10 | .br |
| 11 | ext4 \- the fourth extended file system |
| 12 | .SH DESCRIPTION |
| 13 | The second, third, and fourth extended file systems, or ext2, ext3, and |
| 14 | ext4 as they are commonly known, are Linux file systems that have |
| 15 | historically been the default file system for many Linux distributions. |
| 16 | They are general purpose file systems that have been designed for |
| 17 | extensibility and backwards compatibility. In particular, file systems |
| 18 | previously intended for use with the ext2 and ext3 file systems can be |
| 19 | mounted using the ext4 file system driver, and indeed in many modern |
| 20 | Linux distributions, the ext4 file system driver has been configured |
| 21 | handle mount requests for ext2 and ext3 file systems. |
| 22 | .SH FILE SYSTEM FEATURES |
| 23 | A file system formated for ext2, ext3, or ext4 can be have some |
| 24 | collection of the follow file system feature flags enabled. Some of |
| 25 | these features are not supported by all implementations of the ext2, |
| 26 | ext3, and ext4 file system drivers, depending on Linux kernel version in |
| 27 | use. On other operating systems, such as the GNU/HURD or FreeBSD, only |
| 28 | a very restrictive set of file system features may be supported in their |
| 29 | implementations of ext2. |
| 30 | .RS 1.2i |
| 31 | .TP |
| 32 | .B 64bit |
| 33 | .br |
| 34 | Enables the file system to be larger than 2^32 blocks. This feature is set |
| 35 | automatically, as needed, but it can be useful to specify this feature |
| 36 | explicitly if the file system might need to be resized larger than 2^32 |
| 37 | blocks, even if it was smaller than that threshold when it was |
| 38 | originally created. Note that some older kernels and older versions |
| 39 | of e2fsprogs will not support file systems with this ext4 feature enabled. |
| 40 | .TP |
| 41 | .B bigalloc |
| 42 | .br |
| 43 | This ext4 feature enables clustered block allocation, so that the unit of |
| 44 | allocation is a power of two number of blocks. That is, each bit in the |
| 45 | what had traditionally been known as the block allocation bitmap now |
| 46 | indicates whether a cluster is in use or not, where a cluster is by |
| 47 | default composed of 16 blocks. This feature can decrease the time |
| 48 | spent on doing block allocation and brings smaller fragmentation, especially |
| 49 | for large files. The size can be specified using the |
| 50 | .B \-C option. |
| 51 | .IP |
| 52 | .B Warning: |
| 53 | The bigalloc feature is still under development, and may not be fully |
| 54 | supported with your kernel or may have various bugs. Please see the web |
| 55 | page http://ext4.wiki.kernel.org/index.php/Bigalloc for details. |
| 56 | May clash with delayed allocation (see |
| 57 | .BR nodelalloc mount option). |
| 58 | .IP |
| 59 | This feature requires that the |
| 60 | .B extent |
| 61 | features be enabled. |
| 62 | .TP |
| 63 | .B dir_index |
| 64 | .br |
| 65 | Use hashed b-trees to speed up name lookups in large directories. This |
| 66 | feature is supported by ext3 and ext4 file systems, and is ignored by |
| 67 | ext2 file systems. |
| 68 | .TP |
| 69 | .B dir_nlink |
| 70 | .br |
| 71 | This ext4 feature allows more than 65000 subdirectories per directory. |
| 72 | .TP |
| 73 | .B extent |
| 74 | .br |
| 75 | This ext4 feature allows the mapping of logical block numbers for a |
| 76 | particular inode to physical blocks on the storage device to be stored |
| 77 | using an extent tree, which is a more efficient data structure than the |
| 78 | traditional indirect block scheme used by the ext2 and ext3 file |
| 79 | systems. The use of the extent tree decreases metadata block overhead, |
| 80 | improves file system performance, and decreases the needed to run |
| 81 | .BR e2fsck (8) |
| 82 | on the file system. |
| 83 | (Note: both |
| 84 | .B extent |
| 85 | and |
| 86 | .B extents |
| 87 | are accepted as valid names for this feature for |
| 88 | historical/backwards compatibility reasons.) |
| 89 | .TP |
| 90 | .B extra_isize |
| 91 | .br |
| 92 | This ext4 feature reserves a specific amount of space in each inode for |
| 93 | extended metadata such as nanosecond timestamps and file creation time, |
| 94 | even if the current kernel does not current need to reserve this much |
| 95 | space. Without this feature, the kernel will reserve the amount of |
| 96 | space for features currently it currently needs, and the rest may be |
| 97 | consumed by extended attributes. |
| 98 | |
| 99 | For this feature to be useful the inode size must be 256 bytes in size |
| 100 | or larger. |
| 101 | .TP |
| 102 | .B ext_attr |
| 103 | .br |
| 104 | This feature enables the use of extended attributes. This feature is |
| 105 | supported by ext2, ext3, and ext4. |
| 106 | .TP |
| 107 | .B filetype |
| 108 | .br |
| 109 | This feature enables the storage file type information in directory |
| 110 | entries. This feature is supported by ext2, ext3, and ext4. |
| 111 | .TP |
| 112 | .TP |
| 113 | .B flex_bg |
| 114 | .br |
| 115 | This ext4 feature allows the per-block group metadata (allocation |
| 116 | bitmaps |
| 117 | and inode tables) |
| 118 | to be placed anywhere on the storage media. In addition, |
| 119 | .B mke2fs |
| 120 | will place the per-block group metadata together starting at the first |
| 121 | block group of each "flex_bg group". The size of the flex_bg group |
| 122 | can be specified using the |
| 123 | .B \-G |
| 124 | option. |
| 125 | .TP |
| 126 | .B has_journal |
| 127 | .br |
| 128 | Create a journal to ensure filesystem consistency even across unclean |
| 129 | shutdowns. Setting the filesystem feature is equivalent to using the |
| 130 | .B \-j |
| 131 | option. This feature is supported by ext3 and ext4, and ignored by the |
| 132 | ext2 file system driver. |
| 133 | .TP |
| 134 | .B huge_file |
| 135 | .br |
| 136 | This ext4 feature allows files to be larger than 2 terabytes in size. |
| 137 | .TP |
| 138 | .B journal_dev |
| 139 | .br |
| 140 | This feature is enabled on the superblock found on an external journal |
| 141 | device. The block size for the external journal must be the same as the |
| 142 | file system which uses it. |
| 143 | .IP |
| 144 | The external journal device can be used by a file system by specifying |
| 145 | the |
| 146 | .B \-J |
| 147 | .BR device= <external-device> |
| 148 | option to |
| 149 | .BR mke2fs (8) |
| 150 | or |
| 151 | .BR tune2fs(8). |
| 152 | .TP |
| 153 | .B large_file |
| 154 | .br |
| 155 | This feature flag is set automatically by modern kernels when a file |
| 156 | larger than 2 gigabytes is created. Very old kernels could not |
| 157 | handle large files, so this feature flag was used to prohibit those |
| 158 | kernels from mounting file systems that they could not understand. |
| 159 | .\" .TP |
| 160 | .\" .B metadata_csum |
| 161 | .\" .br |
| 162 | .\" This ext4 feature enables metadata checksumming. This feature stores |
| 163 | .\" checksums for all of the filesystem metadata (superblock, group |
| 164 | .\" descriptor blocks, inode and block bitmaps, directories, and |
| 165 | .\" extent tree blocks). The checksum algorithm used for the metadata |
| 166 | .\" blocks is different than the one used for group descriptors with the |
| 167 | .\" .B uninit_bg |
| 168 | .\" feature, these two features are incompatible and |
| 169 | .\" .B metadata_csum |
| 170 | .\" will be used preferentially instead of |
| 171 | .\" .BR uninit_bg . |
| 172 | .\" .br |
| 173 | .\" .B Future feature, available in e2fsprogs 1.43-WIP |
| 174 | .TP |
| 175 | .B meta_bg |
| 176 | .br |
| 177 | This ext4 feature allows file systems to be resized on-line without explicitly |
| 178 | needing to reserve space for growth in the size of the block group |
| 179 | descriptors. This scheme is also used to resize file systems which are |
| 180 | larger than 2^32 blocks. It is not recommended that this feature be set |
| 181 | when a file system is created, since this alternate method of storing |
| 182 | the block group descriptor will slow down the time needed to mount the |
| 183 | file system, and newer kernels can automatically set this feature as |
| 184 | necessary when doing an online resize and no more reserved space is |
| 185 | available in the resize inode. |
| 186 | .TP |
| 187 | .B mmp |
| 188 | .br |
| 189 | This ext4 feature provides multiple mount protection (MMP). MMP helps to |
| 190 | protect the filesystem from being multiply mounted and is useful in |
| 191 | shared storage environments. |
| 192 | @QUOTA_MAN_COMMENT@.TP |
| 193 | @QUOTA_MAN_COMMENT@.B quota |
| 194 | @QUOTA_MAN_COMMENT@.br |
| 195 | @QUOTA_MAN_COMMENT@Create quota inodes (inode #3 for userquota and inode |
| 196 | @QUOTA_MAN_COMMENT@#4 for group quota) and set them in the superblock. |
| 197 | @QUOTA_MAN_COMMENT@With this feature, the quotas will be enabled |
| 198 | @QUOTA_MAN_COMMENT@automatically when the filesystem is mounted. |
| 199 | @QUOTA_MAN_COMMENT@.IP |
| 200 | @QUOTA_MAN_COMMENT@Causes the quota files (i.e., user.quota and |
| 201 | @QUOTA_MAN_COMMENT@group.quota which existed |
| 202 | @QUOTA_MAN_COMMENT@in the older quota design) to be hidden inodes. |
| 203 | @QUOTA_MAN_COMMENT@.IP |
| 204 | @QUOTA_MAN_COMMENT@.B Warning: |
| 205 | @QUOTA_MAN_COMMENT@The quota feature is still under development, |
| 206 | @QUOTA_MAN_COMMENT@and may not be fully supported with your kernel |
| 207 | @QUOTA_MAN_COMMENT@or may have various bugs. Please |
| 208 | @QUOTA_MAN_COMMENT@see https://ext4.wiki.kernel.org/index.php/Quota |
| 209 | @QUOTA_MAN_COMMENT@for more details. |
| 210 | .TP |
| 211 | .B resize_inode |
| 212 | .br |
| 213 | This file system feature indicates that space has been reserved so |
| 214 | the block group descriptor table can be extended by the file system is |
| 215 | resized while the file system is mounted. The online resize operation |
| 216 | is carried out by the kernel, triggered, by |
| 217 | .BR resize2fs (8). |
| 218 | By default |
| 219 | .B mke2fs |
| 220 | will attempt to reserve enough space so that the |
| 221 | filesystem may grow to 1024 times its initial size. This can be changed |
| 222 | using the |
| 223 | .B resize |
| 224 | extended option. |
| 225 | .IP |
| 226 | This feature requires that the |
| 227 | .B sparse_super |
| 228 | feature be enabled. |
| 229 | .TP |
| 230 | .B sparse_super |
| 231 | .br |
| 232 | This file system feature is set on all modern ext2, ext3, and ext4 file |
| 233 | system. It indicates that backup copies of the superblock and block |
| 234 | group descriptors be present only on a few block groups, and not all of |
| 235 | them. |
| 236 | .TP |
| 237 | .B uninit_bg |
| 238 | .br |
| 239 | This ext4 file system feature indicates that the block group descriptors |
| 240 | will be protected using checksums, making it safe for |
| 241 | .BR mke2fs (8) |
| 242 | to create a file system without initializing all of the block groups. |
| 243 | The kernel will keep a high watermark of unused inodes, and initialize |
| 244 | inode tables and block lazily. This feature speeds up the time to check |
| 245 | the file system using |
| 246 | .BR e2fsck (8), |
| 247 | and it also speeds up the time required for |
| 248 | .BR mke2fs (8) |
| 249 | to create the file system. |
| 250 | .RE |
| 251 | .SH SEE ALSO |
| 252 | .BR mke2fs (8), |
| 253 | .BR mke2fs.conf (5), |
| 254 | .BR e2fsck (8), |
| 255 | .BR dumpe2fs (8), |
| 256 | .BR tune2fs (8), |
| 257 | .BR debugfs (8) |