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