]>
Commit | Line | Data |
---|---|---|
3c22bf7e TT |
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 | |
b9ba837d | 9 | ext3 \- the third extended file system |
3c22bf7e TT |
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 | |
f8a801d0 | 21 | to handle mount requests for ext2 and ext3 file systems. |
3c22bf7e | 22 | .SH FILE SYSTEM FEATURES |
f8a801d0 PH |
23 | A file system formatted for ext2, ext3, or ext4 can have some |
24 | collection of the following file system feature flags enabled. Some of | |
3c22bf7e TT |
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. | |
3c22bf7e TT |
30 | .TP |
31 | .B 64bit | |
32 | .br | |
33 | Enables the file system to be larger than 2^32 blocks. This feature is set | |
34 | automatically, as needed, but it can be useful to specify this feature | |
35 | explicitly if the file system might need to be resized larger than 2^32 | |
36 | blocks, even if it was smaller than that threshold when it was | |
37 | originally created. Note that some older kernels and older versions | |
38 | of e2fsprogs will not support file systems with this ext4 feature enabled. | |
39 | .TP | |
40 | .B bigalloc | |
41 | .br | |
42 | This ext4 feature enables clustered block allocation, so that the unit of | |
43 | allocation is a power of two number of blocks. That is, each bit in the | |
44 | what had traditionally been known as the block allocation bitmap now | |
45 | indicates whether a cluster is in use or not, where a cluster is by | |
46 | default composed of 16 blocks. This feature can decrease the time | |
47 | spent on doing block allocation and brings smaller fragmentation, especially | |
48 | for large files. The size can be specified using the | |
f8a801d0 PH |
49 | .B mke2fs \-C |
50 | option. | |
3c22bf7e TT |
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 | |
f8a801d0 PH |
57 | .B nodelalloc |
58 | mount option). | |
3c22bf7e TT |
59 | .IP |
60 | This feature requires that the | |
61 | .B extent | |
f8a801d0 | 62 | feature be enabled. |
3c22bf7e TT |
63 | .TP |
64 | .B dir_index | |
65 | .br | |
66 | Use hashed b-trees to speed up name lookups in large directories. This | |
67 | feature is supported by ext3 and ext4 file systems, and is ignored by | |
68 | ext2 file systems. | |
69 | .TP | |
70 | .B dir_nlink | |
71 | .br | |
d7f373b4 TT |
72 | Normally, ext4 allows an inode to have no more than 65,000 hard links. |
73 | This applies to regular files as well as directories, which means that | |
74 | there can be no more than 64,998 subdirectories in a directory (because | |
75 | each of the '.' and '..' entries, as well as the directory entry for the | |
76 | directory in its parent directory counts as a hard link). This feature | |
77 | lifts this limit by causing ext4 to use a link count of 1 to indicate | |
78 | that the number of hard links to a directory is not known when the link | |
79 | count might exceed the maximum count limit. | |
3c22bf7e | 80 | .TP |
4c11e655 TN |
81 | .B ea_inode |
82 | .br | |
83 | Normally, a file's extended attributes and associated metadata must fit within | |
84 | the inode or the inode's associated extended attribute block. This feature | |
85 | allows the value of each extended attribute to be placed in the data blocks of a | |
86 | separate inode if necessary, increasing the limit on the size and number of | |
87 | extended attributes per file. | |
88 | .TP | |
50a6f4a2 TT |
89 | .B encrypt |
90 | .br | |
91 | This ext4 feature provides file-system level encryption of data blocks | |
92 | and file names. The inode metadata (timestamps, file size, user/group | |
93 | ownership, etc.) is | |
94 | .I not | |
95 | encrypted. | |
96 | .IP | |
97 | This feature is most useful on file systems with multiple users, or | |
98 | where not all files should be encrypted. In many use cases, especially | |
99 | on single-user systems, encryption at the block device layer using | |
100 | dm-crypt may provide much better security. | |
101 | .TP | |
f8a801d0 PH |
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 | |
3c22bf7e TT |
107 | .B extent |
108 | .br | |
109 | This ext4 feature allows the mapping of logical block numbers for a | |
110 | particular inode to physical blocks on the storage device to be stored | |
111 | using an extent tree, which is a more efficient data structure than the | |
112 | traditional indirect block scheme used by the ext2 and ext3 file | |
113 | systems. The use of the extent tree decreases metadata block overhead, | |
114 | improves file system performance, and decreases the needed to run | |
115 | .BR e2fsck (8) | |
116 | on the file system. | |
117 | (Note: both | |
118 | .B extent | |
119 | and | |
120 | .B extents | |
121 | are accepted as valid names for this feature for | |
122 | historical/backwards compatibility reasons.) | |
123 | .TP | |
124 | .B extra_isize | |
125 | .br | |
126 | This ext4 feature reserves a specific amount of space in each inode for | |
127 | extended metadata such as nanosecond timestamps and file creation time, | |
f8a801d0 | 128 | even if the current kernel does not currently need to reserve this much |
3c22bf7e | 129 | space. Without this feature, the kernel will reserve the amount of |
f8a801d0 | 130 | space for features it currently needs, and the rest may be |
3c22bf7e TT |
131 | consumed by extended attributes. |
132 | ||
133 | For this feature to be useful the inode size must be 256 bytes in size | |
134 | or larger. | |
135 | .TP | |
3c22bf7e TT |
136 | .B filetype |
137 | .br | |
f8a801d0 | 138 | This feature enables the storage of file type information in directory |
3c22bf7e TT |
139 | entries. This feature is supported by ext2, ext3, and ext4. |
140 | .TP | |
3c22bf7e TT |
141 | .B flex_bg |
142 | .br | |
143 | This ext4 feature allows the per-block group metadata (allocation | |
144 | bitmaps | |
145 | and inode tables) | |
146 | to be placed anywhere on the storage media. In addition, | |
147 | .B mke2fs | |
148 | will place the per-block group metadata together starting at the first | |
149 | block group of each "flex_bg group". The size of the flex_bg group | |
150 | can be specified using the | |
151 | .B \-G | |
152 | option. | |
153 | .TP | |
8ea62554 GKB |
154 | .B fname_encoding |
155 | .br | |
156 | This ext4 feature provides file system level character encoding support | |
157 | for files and directories name. This feature is name-preserving on the | |
158 | disk, but it allows applications to lookup for a file in the file system | |
159 | using any encoding equivalent version of the file name. | |
160 | ||
161 | This feature is required to perform in-kernel case-insensitive file | |
162 | name lookups. | |
163 | .TP | |
3c22bf7e TT |
164 | .B has_journal |
165 | .br | |
166 | Create a journal to ensure filesystem consistency even across unclean | |
167 | shutdowns. Setting the filesystem feature is equivalent to using the | |
168 | .B \-j | |
f8a801d0 PH |
169 | option with |
170 | .BR mke2fs " or " tune2fs. | |
171 | This feature is supported by ext3 and ext4, and ignored by the | |
3c22bf7e TT |
172 | ext2 file system driver. |
173 | .TP | |
174 | .B huge_file | |
175 | .br | |
176 | This ext4 feature allows files to be larger than 2 terabytes in size. | |
177 | .TP | |
f8a801d0 PH |
178 | .B inline_data |
179 | Allow data to be stored in the inode and extended attribute area. | |
180 | .TP | |
3c22bf7e TT |
181 | .B journal_dev |
182 | .br | |
183 | This feature is enabled on the superblock found on an external journal | |
184 | device. The block size for the external journal must be the same as the | |
185 | file system which uses it. | |
186 | .IP | |
187 | The external journal device can be used by a file system by specifying | |
188 | the | |
189 | .B \-J | |
190 | .BR device= <external-device> | |
191 | option to | |
192 | .BR mke2fs (8) | |
193 | or | |
194 | .BR tune2fs(8). | |
195 | .TP | |
4c11e655 TN |
196 | .B large_dir |
197 | .br | |
198 | This feature increases the limit on the number of files per directory by | |
199 | raising the maximum size of directories and, for hashed b-tree directories (see | |
200 | .BR dir_index ), | |
201 | the maximum height of the hashed b-tree used to store the directory entries. | |
202 | .TP | |
3c22bf7e TT |
203 | .B large_file |
204 | .br | |
205 | This feature flag is set automatically by modern kernels when a file | |
206 | larger than 2 gigabytes is created. Very old kernels could not | |
207 | handle large files, so this feature flag was used to prohibit those | |
208 | kernels from mounting file systems that they could not understand. | |
53a7a826 TN |
209 | .TP |
210 | .B metadata_csum | |
211 | .br | |
212 | This ext4 feature enables metadata checksumming. This feature stores | |
213 | checksums for all of the filesystem metadata (superblock, group | |
214 | descriptor blocks, inode and block bitmaps, directories, and | |
215 | extent tree blocks). The checksum algorithm used for the metadata | |
216 | blocks is different than the one used for group descriptors with the | |
217 | .B uninit_bg | |
218 | feature. These two features are incompatible and | |
219 | .B metadata_csum | |
220 | will be used preferentially instead of | |
221 | .BR uninit_bg . | |
222 | .TP | |
223 | .B metadata_csum_seed | |
224 | .br | |
225 | This feature allows the filesystem to store the metadata checksum seed in the | |
226 | superblock, which allows the administrator to change the UUID of a filesystem | |
227 | using the | |
228 | .B metadata_csum | |
229 | feature while it is mounted. | |
3c22bf7e TT |
230 | .TP |
231 | .B meta_bg | |
232 | .br | |
233 | This ext4 feature allows file systems to be resized on-line without explicitly | |
234 | needing to reserve space for growth in the size of the block group | |
235 | descriptors. This scheme is also used to resize file systems which are | |
236 | larger than 2^32 blocks. It is not recommended that this feature be set | |
237 | when a file system is created, since this alternate method of storing | |
f8a801d0 | 238 | the block group descriptors will slow down the time needed to mount the |
3c22bf7e TT |
239 | file system, and newer kernels can automatically set this feature as |
240 | necessary when doing an online resize and no more reserved space is | |
241 | available in the resize inode. | |
242 | .TP | |
243 | .B mmp | |
244 | .br | |
245 | This ext4 feature provides multiple mount protection (MMP). MMP helps to | |
246 | protect the filesystem from being multiply mounted and is useful in | |
247 | shared storage environments. | |
3c22bf7e | 248 | .TP |
0c18d036 LX |
249 | .B project |
250 | .br | |
251 | This ext4 feature provides project quota support. With this feature, | |
252 | the project ID of inode will be managed when the filesystem is mounted. | |
253 | .TP | |
f8a801d0 PH |
254 | .B quota |
255 | .br | |
256 | Create quota inodes (inode #3 for userquota and inode | |
257 | #4 for group quota) and set them in the superblock. | |
258 | With this feature, the quotas will be enabled | |
259 | automatically when the filesystem is mounted. | |
53a7a826 TN |
260 | .IP |
261 | Causes the quota files (i.e., user.quota and | |
262 | group.quota which existed | |
263 | in the older quota design) to be hidden inodes. | |
f8a801d0 | 264 | .TP |
3c22bf7e TT |
265 | .B resize_inode |
266 | .br | |
f8a801d0 PH |
267 | This file system feature indicates that space has been reserved so that |
268 | the block group descriptor table can be extended while resizing a mounted | |
269 | file system. The online resize operation | |
270 | is carried out by the kernel, triggered by | |
3c22bf7e TT |
271 | .BR resize2fs (8). |
272 | By default | |
273 | .B mke2fs | |
274 | will attempt to reserve enough space so that the | |
275 | filesystem may grow to 1024 times its initial size. This can be changed | |
276 | using the | |
277 | .B resize | |
278 | extended option. | |
279 | .IP | |
280 | This feature requires that the | |
281 | .B sparse_super | |
53a7a826 TN |
282 | or |
283 | .B sparse_super2 | |
3c22bf7e TT |
284 | feature be enabled. |
285 | .TP | |
286 | .B sparse_super | |
287 | .br | |
288 | This file system feature is set on all modern ext2, ext3, and ext4 file | |
f8a801d0 PH |
289 | systems. It indicates that backup copies of the superblock and block |
290 | group descriptors are present only in a few block groups, not all of | |
3c22bf7e TT |
291 | them. |
292 | .TP | |
f8a801d0 PH |
293 | .B sparse_super2 |
294 | .br | |
295 | This feature indicates that there will only be at most two backup | |
296 | superblocks and block group descriptors. The block groups used to store | |
297 | the backup superblock(s) and blockgroup descriptor(s) are stored in the | |
298 | superblock, but typically, one will be located at the beginning of block | |
299 | group #1, and one in the last block group in the file system. This | |
300 | feature is essentially a more extreme version of sparse_super and is | |
301 | designed to allow a much larger percentage of the disk to have | |
302 | contiguous blocks available for data files. | |
303 | .TP | |
3c22bf7e TT |
304 | .B uninit_bg |
305 | .br | |
306 | This ext4 file system feature indicates that the block group descriptors | |
307 | will be protected using checksums, making it safe for | |
308 | .BR mke2fs (8) | |
309 | to create a file system without initializing all of the block groups. | |
310 | The kernel will keep a high watermark of unused inodes, and initialize | |
f8a801d0 | 311 | inode tables and blocks lazily. This feature speeds up the time to check |
3c22bf7e TT |
312 | the file system using |
313 | .BR e2fsck (8), | |
314 | and it also speeds up the time required for | |
315 | .BR mke2fs (8) | |
316 | to create the file system. | |
3e500a8f ES |
317 | .SH MOUNT OPTIONS |
318 | This section describes mount options which are specific to ext2, ext3, | |
319 | and ext4. Other generic mount options may be used as well; see | |
320 | .BR mount (8) | |
321 | for details. | |
322 | .SH "Mount options for ext2" | |
323 | The `ext2' filesystem is the standard Linux filesystem. | |
324 | Since Linux 2.5.46, for most mount options the default | |
325 | is determined by the filesystem superblock. Set them with | |
326 | .BR tune2fs (8). | |
327 | .TP | |
328 | .BR acl | noacl | |
78b7cd3b TT |
329 | Support POSIX Access Control Lists (or not). See the |
330 | .BR acl (5) | |
331 | manual page. | |
3e500a8f ES |
332 | .TP |
333 | .BR bsddf | minixdf | |
334 | Set the behavior for the | |
335 | .I statfs | |
336 | system call. The | |
337 | .B minixdf | |
338 | behavior is to return in the | |
339 | .I f_blocks | |
340 | field the total number of blocks of the filesystem, while the | |
341 | .B bsddf | |
342 | behavior (which is the default) is to subtract the overhead blocks | |
343 | used by the ext2 filesystem and not available for file storage. Thus | |
344 | .sp 1 | |
345 | % mount /k \-o minixdf; df /k; umount /k | |
346 | .TS | |
347 | tab(#); | |
348 | l2 l2 r2 l2 l2 l | |
349 | l c r c c l. | |
350 | Filesystem#1024-blocks#Used#Available#Capacity#Mounted on | |
351 | /dev/sda6#2630655#86954#2412169#3%#/k | |
352 | .TE | |
353 | .sp 1 | |
354 | % mount /k \-o bsddf; df /k; umount /k | |
355 | .TS | |
356 | tab(#); | |
357 | l2 l2 r2 l2 l2 l | |
358 | l c r c c l. | |
359 | Filesystem#1024-blocks#Used#Available#Capacity#Mounted on | |
360 | /dev/sda6#2543714#13#2412169#0%#/k | |
361 | .TE | |
362 | .sp 1 | |
363 | (Note that this example shows that one can add command line options | |
364 | to the options given in | |
365 | .IR /etc/fstab .) | |
366 | .TP | |
367 | .BR check=none " or " nocheck | |
368 | No checking is done at mount time. This is the default. This is fast. | |
369 | It is wise to invoke | |
370 | .BR e2fsck (8) | |
371 | every now and then, e.g.\& at boot time. The non-default behavior is unsupported | |
372 | (check=normal and check=strict options have been removed). Note that these mount options | |
373 | don't have to be supported if ext4 kernel driver is used for ext2 and ext3 filesystems. | |
374 | .TP | |
375 | .B debug | |
376 | Print debugging info upon each (re)mount. | |
377 | .TP | |
378 | .BR errors= { continue | remount-ro | panic } | |
379 | Define the behavior when an error is encountered. | |
380 | (Either ignore errors and just mark the filesystem erroneous and continue, | |
381 | or remount the filesystem read-only, or panic and halt the system.) | |
382 | The default is set in the filesystem superblock, and can be | |
383 | changed using | |
384 | .BR tune2fs (8). | |
385 | .TP | |
386 | .BR grpid | bsdgroups " and " nogrpid | sysvgroups | |
387 | These options define what group id a newly created file gets. | |
388 | When | |
389 | .B grpid | |
390 | is set, it takes the group id of the directory in which it is created; | |
391 | otherwise (the default) it takes the fsgid of the current process, unless | |
392 | the directory has the setgid bit set, in which case it takes the gid | |
393 | from the parent directory, and also gets the setgid bit set | |
394 | if it is a directory itself. | |
395 | .TP | |
396 | .BR grpquota | noquota | quota | usrquota | |
397 | The usrquota (same as quota) mount option enables user quota support on the | |
398 | filesystem. grpquota enables group quotas support. You need the quota utilities | |
399 | to actually enable and manage the quota system. | |
400 | .TP | |
401 | .B nouid32 | |
402 | Disables 32-bit UIDs and GIDs. This is for interoperability with older | |
403 | kernels which only store and expect 16-bit values. | |
404 | .TP | |
405 | .BR oldalloc " or " orlov | |
406 | Use old allocator or Orlov allocator for new inodes. Orlov is default. | |
407 | .TP | |
408 | \fBresgid=\fP\,\fIn\fP and \fBresuid=\fP\,\fIn\fP | |
409 | The ext2 filesystem reserves a certain percentage of the available | |
410 | space (by default 5%, see | |
411 | .BR mke2fs (8) | |
412 | and | |
413 | .BR tune2fs (8)). | |
414 | These options determine who can use the reserved blocks. | |
415 | (Roughly: whoever has the specified uid, or belongs to the specified group.) | |
416 | .TP | |
417 | .BI sb= n | |
53a7a826 TN |
418 | Instead of using the normal superblock, use an alternative superblock |
419 | specified by | |
420 | .IR n . | |
421 | This option is normally used when the primary superblock has been | |
422 | corrupted. The location of backup superblocks is dependent on the | |
423 | filesystem's blocksize, the number of blocks per group, and features | |
424 | such as | |
425 | .BR sparse_super . | |
426 | .IP | |
427 | Additional backup superblocks can be determined by using the | |
3e500a8f | 428 | .B mke2fs |
53a7a826 TN |
429 | program using the |
430 | .B \-n | |
431 | option to print out where the superblocks exist, supposing | |
3e500a8f | 432 | .B mke2fs |
53a7a826 TN |
433 | is supplied with arguments that are consistent with the filesystem's layout |
434 | (e.g. blocksize, blocks per group, | |
435 | .BR sparse_super , | |
436 | etc.). | |
437 | .IP | |
3e500a8f ES |
438 | The block number here uses 1\ k units. Thus, if you want to use logical |
439 | block 32768 on a filesystem with 4\ k blocks, use "sb=131072". | |
440 | .TP | |
441 | .BR user_xattr | nouser_xattr | |
442 | Support "user." extended attributes (or not). | |
443 | ||
444 | ||
445 | .SH "Mount options for ext3" | |
446 | The ext3 filesystem is a version of the ext2 filesystem which has been | |
447 | enhanced with journaling. It supports the same options as ext2 as | |
448 | well as the following additions: | |
449 | .TP | |
3e500a8f ES |
450 | .BR journal_dev=devnum / journal_path=path |
451 | When the external journal device's major/minor numbers | |
452 | have changed, these options allow the user to specify | |
453 | the new journal location. The journal device is | |
454 | identified either through its new major/minor numbers encoded | |
455 | in devnum, or via a path to the device. | |
456 | .TP | |
457 | .BR norecovery / noload | |
458 | Don't load the journal on mounting. Note that | |
459 | if the filesystem was not unmounted cleanly, | |
460 | skipping the journal replay will lead to the | |
461 | filesystem containing inconsistencies that can | |
462 | lead to any number of problems. | |
463 | .TP | |
464 | .BR data= { journal | ordered | writeback } | |
465 | Specifies the journaling mode for file data. Metadata is always journaled. | |
466 | To use modes other than | |
467 | .B ordered | |
468 | on the root filesystem, pass the mode to the kernel as boot parameter, e.g.\& | |
469 | .IR rootflags=data=journal . | |
470 | .RS | |
471 | .TP | |
472 | .B journal | |
473 | All data is committed into the journal prior to being written into the | |
474 | main filesystem. | |
475 | .TP | |
476 | .B ordered | |
477 | This is the default mode. All data is forced directly out to the main file | |
478 | system prior to its metadata being committed to the journal. | |
479 | .TP | |
480 | .B writeback | |
481 | Data ordering is not preserved \(en data may be written into the main | |
482 | filesystem after its metadata has been committed to the journal. | |
483 | This is rumoured to be the highest-throughput option. It guarantees | |
484 | internal filesystem integrity, however it can allow old data to appear | |
485 | in files after a crash and journal recovery. | |
486 | .RE | |
487 | .TP | |
488 | .B data_err=ignore | |
489 | Just print an error message if an error occurs in a file data buffer in | |
490 | ordered mode. | |
491 | .TP | |
492 | .B data_err=abort | |
493 | Abort the journal if an error occurs in a file data buffer in ordered mode. | |
494 | .TP | |
495 | .BR barrier=0 " / " barrier=1 " | |
496 | This disables / enables the use of write barriers in the jbd code. barrier=0 | |
497 | disables, barrier=1 enables (default). This also requires an IO stack which can | |
498 | support barriers, and if jbd gets an error on a barrier write, it will disable | |
499 | barriers again with a warning. Write barriers enforce proper on-disk ordering | |
500 | of journal commits, making volatile disk write caches safe to use, at some | |
501 | performance penalty. If your disks are battery-backed in one way or another, | |
502 | disabling barriers may safely improve performance. | |
503 | .TP | |
504 | .BI commit= nrsec | |
0df8f611 | 505 | Start a journal commit every |
3e500a8f | 506 | .I nrsec |
0df8f611 | 507 | seconds. The default value is 5 seconds. Zero means default. |
3e500a8f ES |
508 | .TP |
509 | .B user_xattr | |
510 | Enable Extended User Attributes. See the | |
511 | .BR attr (5) | |
512 | manual page. | |
513 | .TP | |
53a7a826 | 514 | .BR jqfmt= { vfsold | vfsv0 | vfsv1 } |
3e500a8f | 515 | Apart from the old quota system (as in ext2, jqfmt=vfsold aka version 1 quota) |
53a7a826 TN |
516 | ext3 also supports journaled quotas (version 2 quota). jqfmt=vfsv0 or |
517 | jqfmt=vfsv1 enables journaled quotas. Journaled quotas have the advantage that | |
518 | even after a crash no quota check is required. When the | |
519 | .B quota | |
520 | filesystem feature is enabled, journaled quotas are used automatically, and | |
521 | this mount option is ignored. | |
522 | .TP | |
523 | .BR usrjquota=aquota.user | grpjquota=aquota.group | |
524 | For journaled quotas (jqfmt=vfsv0 or jqfmt=vfsv1), the mount options | |
3e500a8f | 525 | usrjquota=aquota.user and grpjquota=aquota.group are required to tell the |
53a7a826 TN |
526 | quota system which quota database files to use. When the |
527 | .B quota | |
528 | filesystem feature is enabled, journaled quotas are used automatically, and | |
529 | this mount option is ignored. | |
3e500a8f ES |
530 | |
531 | .SH "Mount options for ext4" | |
532 | The ext4 filesystem is an advanced level of the ext3 filesystem which | |
533 | incorporates scalability and reliability enhancements for supporting large | |
534 | filesystem. | |
535 | ||
536 | The options | |
53a7a826 TN |
537 | .B journal_dev, journal_path, norecovery, noload, data, commit, orlov, |
538 | .B oldalloc, [no]user_xattr, [no]acl, bsddf, minixdf, debug, errors, | |
539 | .B data_err, grpid, bsdgroups, nogrpid, sysvgroups, resgid, resuid, sb, | |
540 | .B quota, noquota, nouid32, grpquota, usrquota, usrjquota, grpjquota, | |
541 | .B and jqfmt are backwardly compatible with ext3 or ext2. | |
3e500a8f | 542 | .TP |
53a7a826 TN |
543 | .B journal_checksum | nojournal_checksum |
544 | The journal_checksum option enables checksumming of the journal transactions. | |
545 | This will allow the recovery code in e2fsck and the kernel to detect corruption | |
546 | in the kernel. It is a compatible change and will be ignored by older kernels. | |
3e500a8f ES |
547 | .TP |
548 | .B journal_async_commit | |
549 | Commit block can be written to disk without waiting for descriptor blocks. If | |
550 | enabled older kernels cannot mount the device. | |
551 | This will enable 'journal_checksum' internally. | |
552 | .TP | |
553 | .BR barrier=0 " / " barrier=1 " / " barrier " / " nobarrier | |
554 | These mount options have the same effect as in ext3. The mount options | |
555 | "barrier" and "nobarrier" are added for consistency with other ext4 mount | |
556 | options. | |
557 | ||
558 | The ext4 filesystem enables write barriers by default. | |
559 | .TP | |
560 | .BI inode_readahead_blks= n | |
561 | This tuning parameter controls the maximum number of inode table blocks that | |
562 | ext4's inode table readahead algorithm will pre-read into the buffer cache. | |
563 | The value must be a power of 2. The default value is 32 blocks. | |
564 | .TP | |
565 | .BI stripe= n | |
566 | Number of filesystem blocks that mballoc will try to use for allocation size | |
567 | and alignment. For RAID5/6 systems this should be the number of data disks * | |
568 | RAID chunk size in filesystem blocks. | |
569 | .TP | |
570 | .B delalloc | |
571 | Deferring block allocation until write-out time. | |
572 | .TP | |
573 | .B nodelalloc | |
574 | Disable delayed allocation. Blocks are allocated when data is copied from user | |
575 | to page cache. | |
576 | .TP | |
577 | .BI max_batch_time= usec | |
578 | Maximum amount of time ext4 should wait for additional filesystem operations to | |
579 | be batch together with a synchronous write operation. Since a synchronous | |
580 | write operation is going to force a commit and then a wait for the I/O | |
581 | complete, it doesn't cost much, and can be a huge throughput win, we wait for a | |
582 | small amount of time to see if any other transactions can piggyback on the | |
583 | synchronous write. The algorithm used is designed to automatically tune for | |
584 | the speed of the disk, by measuring the amount of time (on average) that it | |
585 | takes to finish committing a transaction. Call this time the "commit time". | |
586 | If the time that the transaction has been running is less than the commit time, | |
587 | ext4 will try sleeping for the commit time to see if other operations will join | |
588 | the transaction. The commit time is capped by the max_batch_time, which | |
589 | defaults to 15000\ \[mc]s (15\ ms). This optimization can be turned off entirely by | |
590 | setting max_batch_time to 0. | |
591 | .TP | |
592 | .BI min_batch_time= usec | |
593 | This parameter sets the commit time (as described above) to be at least | |
594 | min_batch_time. It defaults to zero microseconds. Increasing this parameter | |
595 | may improve the throughput of multi-threaded, synchronous workloads on very | |
596 | fast disks, at the cost of increasing latency. | |
597 | .TP | |
598 | .BI journal_ioprio= prio | |
599 | The I/O priority (from 0 to 7, where 0 is the highest priority) which should be | |
600 | used for I/O operations submitted by kjournald2 during a commit operation. | |
601 | This defaults to 3, which is a slightly higher priority than the default I/O | |
602 | priority. | |
603 | .TP | |
604 | .B abort | |
605 | Simulate the effects of calling ext4_abort() for | |
606 | debugging purposes. This is normally used while | |
607 | remounting a filesystem which is already mounted. | |
608 | .TP | |
609 | .BR auto_da_alloc | noauto_da_alloc | |
610 | Many broken applications don't use fsync() when | |
611 | replacing existing files via patterns such as | |
612 | ||
613 | fd = open("foo.new")/write(fd,...)/close(fd)/ rename("foo.new", "foo") | |
614 | ||
615 | or worse yet | |
616 | ||
617 | fd = open("foo", O_TRUNC)/write(fd,...)/close(fd). | |
618 | ||
619 | If auto_da_alloc is enabled, ext4 will detect the replace-via-rename and | |
620 | replace-via-truncate patterns and force that any delayed allocation blocks are | |
621 | allocated such that at the next journal commit, in the default data=ordered | |
622 | mode, the data blocks of the new file are forced to disk before the rename() | |
623 | operation is committed. This provides roughly the same level of guarantees as | |
624 | ext3, and avoids the "zero-length" problem that can happen when a system | |
625 | crashes before the delayed allocation blocks are forced to disk. | |
626 | .TP | |
627 | .B noinit_itable | |
628 | Do not initialize any uninitialized inode table blocks in the background. This | |
629 | feature may be used by installation CD's so that the install process can | |
630 | complete as quickly as possible; the inode table initialization process would | |
631 | then be deferred until the next time the filesystem is mounted. | |
632 | .TP | |
633 | .B init_itable=n | |
634 | The lazy itable init code will wait n times the number of milliseconds it took | |
635 | to zero out the previous block group's inode table. This minimizes the impact on | |
636 | system performance while the filesystem's inode table is being initialized. | |
637 | .TP | |
638 | .BR discard / nodiscard | |
639 | Controls whether ext4 should issue discard/TRIM commands to the underlying | |
640 | block device when blocks are freed. This is useful for SSD devices and | |
641 | sparse/thinly-provisioned LUNs, but it is off by default until sufficient | |
642 | testing has been done. | |
643 | .TP | |
3e500a8f | 644 | .BR block_validity / noblock_validity |
53a7a826 | 645 | This option enables/disables the in-kernel facility for tracking |
3e500a8f ES |
646 | filesystem metadata blocks within internal data structures. This allows multi-\c |
647 | block allocator and other routines to quickly locate extents which might | |
648 | overlap with filesystem metadata blocks. This option is intended for debugging | |
649 | purposes and since it negatively affects the performance, it is off by default. | |
650 | .TP | |
651 | .BR dioread_lock / dioread_nolock | |
652 | Controls whether or not ext4 should use the DIO read locking. If the | |
653 | dioread_nolock option is specified ext4 will allocate uninitialized extent | |
654 | before buffer write and convert the extent to initialized after IO completes. | |
655 | This approach allows ext4 code to avoid using inode mutex, which improves | |
656 | scalability on high speed storages. However this does not work with data | |
657 | journaling and dioread_nolock option will be ignored with kernel warning. | |
658 | Note that dioread_nolock code path is only used for extent-based files. | |
659 | Because of the restrictions this options comprises it is off by default | |
660 | (e.g.\& dioread_lock). | |
661 | .TP | |
662 | .B max_dir_size_kb=n | |
663 | This limits the size of the directories so that any attempt to expand them | |
664 | beyond the specified limit in kilobytes will cause an ENOSPC error. This is | |
665 | useful in memory-constrained environments, where a very large directory can | |
666 | cause severe performance problems or even provoke the Out Of Memory killer. (For | |
667 | example, if there is only 512\ MB memory available, a 176\ MB directory may | |
668 | seriously cramp the system's style.) | |
669 | .TP | |
670 | .B i_version | |
671 | Enable 64-bit inode version support. This option is off by default. | |
53a7a826 TN |
672 | .TP |
673 | .B nombcache | |
674 | This option disables use of mbcache for extended attribute deduplication. On | |
675 | systems where extended attributes are rarely or never shared between files, | |
676 | use of mbcache for deduplication adds unnecessary computational overhead. | |
677 | .TP | |
678 | .B prjquota | |
679 | The prjquota mount option enables project quota support on the filesystem. | |
680 | You need the quota utilities to actually enable and manage the quota system. | |
681 | This mount option requires the | |
682 | .B project | |
683 | filesystem feature. | |
3e500a8f | 684 | |
e92beaac ES |
685 | .SH FILE ATTRIBUTES |
686 | The ext2, ext3, and ext4 filesystems support setting the following file | |
687 | attributes on Linux systems using the | |
688 | .BR chattr (1) | |
689 | utility: | |
690 | .sp | |
691 | .BR a " - append only" | |
692 | .sp | |
693 | .BR A " - no atime updates" | |
694 | .sp | |
695 | .BR d " - no dump" | |
696 | .sp | |
697 | .BR D " - synchronous directory updates" | |
698 | .sp | |
699 | .BR i " - immutable" | |
700 | .sp | |
701 | .BR S " - synchronous updates" | |
702 | .sp | |
703 | .BR u " - undeletable" | |
704 | .sp | |
705 | In addition, the ext3 and ext4 filesystems support the following flag: | |
706 | .sp | |
707 | .BR j " - data journaling" | |
708 | .sp | |
709 | Finally, the ext4 filesystem also supports the following flag: | |
710 | .sp | |
711 | .BR e " - extents format" | |
712 | .sp | |
713 | For descriptions of these attribute flags, please refer to the | |
714 | .BR chattr (1) | |
715 | man page. | |
50a6f4a2 TT |
716 | .SH KERNEL SUPPORT |
717 | This section lists the file system driver (e.g., ext2, ext3, ext4) and | |
718 | upstream kernel version where a particular file system feature was | |
719 | supported. Note that in some cases the feature was present in earlier | |
720 | kernel versions, but there were known, serious bugs. In other cases the | |
721 | feature may still be considered in an experimental state. Finally, note | |
722 | that some distributions may have backported features into older kernels; | |
723 | in particular the kernel versions in certain "enterprise distributions" | |
724 | can be extremely misleading. | |
725 | .IP "\fBfiletype\fR" 2in | |
726 | ext2, 2.2.0 | |
727 | .IP "\fBsparse_super\fR" 2in | |
728 | ext2, 2.2.0 | |
729 | .IP "\fBlarge_file\fR" 2in | |
730 | ext2, 2.2.0 | |
731 | .IP "\fBhas_journal\fR" 2in | |
732 | ext3, 2.4.15 | |
733 | .IP "\fBext_attr\fR" 2in | |
734 | ext2/ext3, 2.6.0 | |
735 | .IP "\fBdir_index\fR" 2in | |
736 | ext3, 2.6.0 | |
737 | .IP "\fBresize_inode\fR" 2in | |
738 | ext3, 2.6.10 (online resizing) | |
739 | .IP "\fB64bit\fR" 2in | |
740 | ext4, 2.6.28 | |
741 | .IP "\fBdir_nlink\fR" 2in | |
742 | ext4, 2.6.28 | |
743 | .IP "\fBextent\fR" 2in | |
744 | ext4, 2.6.28 | |
745 | .IP "\fBextra_isize\fR" 2in | |
746 | ext4, 2.6.28 | |
747 | .IP "\fBflex_bg\fR" 2in | |
748 | ext4, 2.6.28 | |
749 | .IP "\fBhuge_file\fR" 2in | |
750 | ext4, 2.6.28 | |
751 | .IP "\fBmeta_bg\fR" 2in | |
752 | ext4, 2.6.28 | |
753 | .IP "\fBuninit_bg\fR" 2in | |
754 | ext4, 2.6.28 | |
755 | .IP "\fBmmp\fR" 2in | |
756 | ext4, 3.0 | |
757 | .IP "\fBbigalloc\fR" 2in | |
758 | ext4, 3.2 | |
759 | .IP "\fBquota\fR" 2in | |
760 | ext4, 3.6 | |
761 | .IP "\fBinline_data\fR" 2in | |
762 | ext4, 3.8 | |
763 | .IP "\fBsparse_super2\fR" 2in | |
764 | ext4, 3.16 | |
8515abdc | 765 | .IP "\fBmetadata_csum\fR" 2in |
50a6f4a2 TT |
766 | ext4, 3.18 |
767 | .IP "\fBencrypt\fR" 2in | |
768 | ext4, 4.1 | |
53a7a826 TN |
769 | .IP "\fBmetadata_csum_seed\fR" 2in |
770 | ext4, 4.4 | |
50a6f4a2 TT |
771 | .IP "\fBproject\fR" 2in |
772 | ext4, 4.5 | |
53a7a826 TN |
773 | .IP "\fBea_inode\fR" 2in |
774 | ext4, 4.13 | |
775 | .IP "\fBlarge_dir\fR" 2in | |
776 | ext4, 4.13 | |
3c22bf7e TT |
777 | .SH SEE ALSO |
778 | .BR mke2fs (8), | |
779 | .BR mke2fs.conf (5), | |
780 | .BR e2fsck (8), | |
781 | .BR dumpe2fs (8), | |
782 | .BR tune2fs (8), | |
3e500a8f | 783 | .BR debugfs (8), |
e92beaac ES |
784 | .BR mount (8), |
785 | .BR chattr (1) |