1EXT4(5)                       File Formats Manual                      EXT4(5)
2
3
4

NAME

6       ext2 - the second extended file system
7       ext3 - the third extended file system
8       ext4 - the fourth extended file system
9

DESCRIPTION

11       The second, third, and fourth extended file systems, or ext2, ext3, and
12       ext4 as they are commonly known, are Linux file systems that have  his‐
13       torically  been  the  default file system for many Linux distributions.
14       They are general purpose file  systems  that  have  been  designed  for
15       extensibility and backwards compatibility.  In particular, file systems
16       previously intended for use with the ext2 and ext3 file systems can  be
17       mounted  using  the  ext4 file system driver, and indeed in many modern
18       Linux distributions, the ext4 file system driver has been configured to
19       handle mount requests for ext2 and ext3 file systems.
20

FILE SYSTEM FEATURES

22       A  file  system formatted for ext2, ext3, or ext4 can have some collec‐
23       tion of the following file system feature flags enabled.  Some of these
24       features  are  not  supported by all implementations of the ext2, ext3,
25       and ext4 file system drivers, depending on Linux kernel version in use.
26       On  other  operating  systems,  such as the GNU/HURD or FreeBSD, only a
27       very restrictive set of file system features may be supported in  their
28       implementations of ext2.
29
30       64bit
31              Enables  the  file  system  to be larger than 2^32 blocks.  This
32              feature is set automatically, as needed, but it can be useful to
33              specify this feature explicitly if the file system might need to
34              be resized larger than 2^32 blocks, even if it was smaller  than
35              that  threshold  when it was originally created.  Note that some
36              older kernels and older versions of e2fsprogs will  not  support
37              file systems with this ext4 feature enabled.
38
39       bigalloc
40              This  ext4  feature  enables clustered block allocation, so that
41              the unit of allocation is a power of two number of blocks.  That
42              is,  each  bit  in  the what had traditionally been known as the
43              block allocation bitmap now indicates whether a  cluster  is  in
44              use or not, where a cluster is by default composed of 16 blocks.
45              This feature can decrease the time spent on doing block  alloca‐
46              tion  and  brings  smaller  fragmentation,  especially for large
47              files.  The size can be specified using the mke2fs -C option.
48
49              Warning: The bigalloc feature is still  under  development,  and
50              may  not be fully supported with your kernel or may have various
51              bugs.    Please   see   the   web   page   http://ext4.wiki.ker
52              nel.org/index.php/Bigalloc  for details.  May clash with delayed
53              allocation (see nodelalloc mount option).
54
55              This feature requires that the extent feature be enabled.
56
57       casefold
58              This ext4 feature provides file system level character  encoding
59              support  for  directories  with  the casefold (+F) flag enabled.
60              This feature is name-preserving  on  the  disk,  but  it  allows
61              applications  to  lookup  for a file in the file system using an
62              encoding equivalent version of the file name.
63
64       dir_index
65              Use hashed b-trees to speed up name lookups  in  large  directo‐
66              ries.   This feature is supported by ext3 and ext4 file systems,
67              and is ignored by ext2 file systems.
68
69       dir_nlink
70              Normally, ext4 allows an inode to have no more than 65,000  hard
71              links.   This  applies  to regular files as well as directories,
72              which means that there can be no more than 64,998 subdirectories
73              in  a  directory  (because  each of the '.' and '..' entries, as
74              well as the directory entry for  the  directory  in  its  parent
75              directory counts as a hard link).  This feature lifts this limit
76              by causing ext4 to use a link count of 1 to  indicate  that  the
77              number  of  hard links to a directory is not known when the link
78              count might exceed the maximum count limit.
79
80       ea_inode
81              Normally, a file's extended attributes and  associated  metadata
82              must  fit  within  the  inode or the inode's associated extended
83              attribute block. This feature allows the value of each  extended
84              attribute to be placed in the data blocks of a separate inode if
85              necessary, increasing the  limit  on  the  size  and  number  of
86              extended attributes per file.
87
88       encrypt
89              Enables  support for file-system level encryption of data blocks
90              and file names.  The  inode  metadata  (timestamps,  file  size,
91              user/group ownership, etc.) is not encrypted.
92
93              This feature is most useful on file systems with multiple users,
94              or where not all files should be encrypted.  In many use  cases,
95              especially  on  single-user  systems,  encryption  at  the block
96              device layer using dm-crypt may provide much better security.
97
98       ext_attr
99              This feature enables the use of extended attributes.  This  fea‐
100              ture is supported by ext2, ext3, and ext4.
101
102       extent
103              This  ext4  feature  allows the mapping of logical block numbers
104              for a particular inode to physical blocks on the storage  device
105              to  be  stored  using  an extent tree, which is a more efficient
106              data structure than the traditional indirect block  scheme  used
107              by  the  ext2 and ext3 file systems.  The use of the extent tree
108              decreases metadata block overhead, improves file system  perfor‐
109              mance,  and  decreases  the  needed to run e2fsck(8) on the file
110              system.  (Note: both extent and extents are  accepted  as  valid
111              names  for  this  feature for historical/backwards compatibility
112              reasons.)
113
114       extra_isize
115              This ext4 feature reserves a specific amount of  space  in  each
116              inode  for  extended  metadata such as nanosecond timestamps and
117              file creation time, even if the current  kernel  does  not  cur‐
118              rently  need  to reserve this much space.  Without this feature,
119              the kernel will reserve the amount of space for features it cur‐
120              rently   needs,  and  the  rest  may  be  consumed  by  extended
121              attributes.
122
123              For this feature to be useful the inode size must be  256  bytes
124              in size or larger.
125
126       filetype
127              This  feature  enables  the  storage of file type information in
128              directory entries.  This feature is supported by ext2, ext3, and
129              ext4.
130
131       flex_bg
132              This  ext4  feature allows the per-block group metadata (alloca‐
133              tion bitmaps and inode tables) to  be  placed  anywhere  on  the
134              storage  media.   In  addition,  mke2fs will place the per-block
135              group metadata together starting at the  first  block  group  of
136              each  "flex_bg  group".    The  size of the flex_bg group can be
137              specified using the -G option.
138
139       has_journal
140              Create a journal to ensure filesystem  consistency  even  across
141              unclean shutdowns.  Setting the filesystem feature is equivalent
142              to using the -j option with mke2fs or tune2fs.  This feature  is
143              supported  by ext3 and ext4, and ignored by the ext2 file system
144              driver.
145
146       huge_file
147              This ext4 feature allows files to be larger than 2 terabytes  in
148              size.
149
150       inline_data
151              Allow  data  to  be  stored  in the inode and extended attribute
152              area.
153
154       journal_dev
155              This feature is enabled on the superblock found on  an  external
156              journal device.  The block size for the external journal must be
157              the same as the file system which uses it.
158
159              The external journal device can be used  by  a  file  system  by
160              specifying  the  -J device=<external-device> option to mke2fs(8)
161              or tune2fs(8).
162
163       large_dir
164              This feature increases the limit on  the  number  of  files  per
165              directory  by  raising  the maximum size of directories and, for
166              hashed b-tree directories (see dir_index), the maximum height of
167              the hashed b-tree used to store the directory entries.
168
169       large_file
170              This  feature flag is set automatically by modern kernels when a
171              file larger than 2 gigabytes is created.  Very old kernels could
172              not  handle  large  files, so this feature flag was used to pro‐
173              hibit those kernels from mounting file systems that  they  could
174              not understand.
175
176       metadata_csum
177              This  ext4  feature enables metadata checksumming.  This feature
178              stores checksums for all of the filesystem metadata (superblock,
179              group  descriptor  blocks, inode and block bitmaps, directories,
180              and extent tree blocks).  The checksum algorithm  used  for  the
181              metadata  blocks  is  different  than  the  one  used  for group
182              descriptors with the uninit_bg feature.  These two features  are
183              incompatible  and  metadata_csum  will  be  used  preferentially
184              instead of uninit_bg.
185
186       metadata_csum_seed
187              This feature allows the filesystem to store the metadata  check‐
188              sum  seed  in  the superblock, which allows the administrator to
189              change the UUID of a filesystem using the metadata_csum  feature
190              while it is mounted.
191
192       meta_bg
193              This  ext4  feature  allows  file  systems to be resized on-line
194              without explicitly needing to reserve space for  growth  in  the
195              size  of  the block group descriptors.  This scheme is also used
196              to resize file systems which are larger than 2^32 blocks.  It is
197              not  recommended  that this feature be set when a file system is
198              created, since this alternate method of storing the block  group
199              descriptors  will  slow  down  the time needed to mount the file
200              system, and newer kernels can automatically set this feature  as
201              necessary when doing an online resize and no more reserved space
202              is available in the resize inode.
203
204       mmp
205              This ext4 feature provides multiple mount protection (MMP).  MMP
206              helps  to protect the filesystem from being multiply mounted and
207              is useful in shared storage environments.
208
209       project
210              This ext4 feature provides project quota support. With this fea‐
211              ture,  the project ID of inode will be managed when the filesys‐
212              tem is mounted.
213
214       quota
215              Create quota inodes (inode #3 for userquota  and  inode  #4  for
216              group quota) and set them in the superblock.  With this feature,
217              the quotas will be enabled automatically when the filesystem  is
218              mounted.
219
220              Causes  the  quota files (i.e., user.quota and group.quota which
221              existed in the older quota design) to be hidden inodes.
222
223       resize_inode
224              This file system feature indicates that space has been  reserved
225              so  that  the block group descriptor table can be extended while
226              resizing a mounted file system.  The online resize operation  is
227              carried  out  by  the  kernel,  triggered  by  resize2fs(8).  By
228              default mke2fs will attempt to reserve enough space so that  the
229              filesystem may grow to 1024 times its initial size.  This can be
230              changed using the resize extended option.
231
232              This feature requires that  the  sparse_super  or  sparse_super2
233              feature be enabled.
234
235       sparse_super
236              This  file  system  feature is set on all modern ext2, ext3, and
237              ext4 file systems.  It  indicates  that  backup  copies  of  the
238              superblock and block group descriptors are present only in a few
239              block groups, not all of them.
240
241       sparse_super2
242              This feature indicates that there  will  only  be  at  most  two
243              backup  superblocks  and  block  group  descriptors.   The block
244              groups used to store the  backup  superblock(s)  and  blockgroup
245              descriptor(s)  are  stored in the superblock, but typically, one
246              will be located at the beginning of block group #1, and  one  in
247              the last block group in the file system.  This feature is essen‐
248              tially a more extreme version of sparse_super and is designed to
249              allow  a  much  larger percentage of the disk to have contiguous
250              blocks available for data files.
251
252       uninit_bg
253              This ext4 file system feature indicates  that  the  block  group
254              descriptors  will  be  protected using checksums, making it safe
255              for mke2fs(8) to create a file system without  initializing  all
256              of  the  block groups.  The kernel will keep a high watermark of
257              unused inodes, and initialize inode tables  and  blocks  lazily.
258              This  feature  speeds up the time to check the file system using
259              e2fsck(8), and it also speeds up the time required for mke2fs(8)
260              to create the file system.
261
262       verity
263              Enables  support  for  verity protected files.  Verity files are
264              readonly, and their data is  transparently  verified  against  a
265              Merkle  tree  hidden past the end of the file.  Using the Merkle
266              tree's root hash, a verity file  can  be  efficiently  authenti‐
267              cated, independent of the file's size.
268
269              This  feature  is most useful for authenticating important read-
270              only files on read-write  file  systems.   If  the  file  system
271              itself  is  read-only,  then using dm-verity to authenticate the
272              entire block device may provide much better security.
273

MOUNT OPTIONS

275       This section describes mount options which are specific to ext2,  ext3,
276       and  ext4.   Other  generic  mount  options  may  be  used as well; see
277       mount(8) for details.
278

Mount options for ext2

280       The `ext2' filesystem is the standard Linux  filesystem.   Since  Linux
281       2.5.46,  for  most  mount  options  the  default  is  determined by the
282       filesystem superblock. Set them with tune2fs(8).
283
284       acl|noacl
285              Support POSIX Access Control Lists (or  not).   See  the  acl(5)
286              manual page.
287
288       bsddf|minixdf
289              Set  the behavior for the statfs system call. The minixdf behav‐
290              ior is to return in the  f_blocks  field  the  total  number  of
291              blocks of the filesystem, while the bsddf behavior (which is the
292              default) is to subtract the overhead blocks  used  by  the  ext2
293              filesystem and not available for file storage. Thus
294
295              % mount /k -o minixdf; df /k; umount /k
296
297              Filesystem  1024-blocks   Used  Available  Capacity  Mounted on
298              /dev/sda6     2630655    86954   2412169      3%     /k
299
300              % mount /k -o bsddf; df /k; umount /k
301
302              Filesystem  1024-blocks  Used  Available  Capacity  Mounted on
303              /dev/sda6     2543714      13   2412169      0%     /k
304
305              (Note  that  this  example  shows  that one can add command line
306              options to the options given in /etc/fstab.)
307
308       check=none or nocheck
309              No checking is done at mount time. This is the default. This  is
310              fast.   It  is wise to invoke e2fsck(8) every now and then, e.g.
311              at  boot  time.  The   non-default   behavior   is   unsupported
312              (check=normal  and check=strict options have been removed). Note
313              that these mount options don't have to be supported if ext4 ker‐
314              nel driver is used for ext2 and ext3 filesystems.
315
316       debug  Print debugging info upon each (re)mount.
317
318       errors={continue|remount-ro|panic}
319              Define  the  behavior  when  an  error  is encountered.  (Either
320              ignore errors and just mark the filesystem  erroneous  and  con‐
321              tinue,  or  remount  the filesystem read-only, or panic and halt
322              the system.)  The default is set in the  filesystem  superblock,
323              and can be changed using tune2fs(8).
324
325       grpid|bsdgroups and nogrpid|sysvgroups
326              These  options  define  what group id a newly created file gets.
327              When grpid is set, it takes the group id  of  the  directory  in
328              which  it is created; otherwise (the default) it takes the fsgid
329              of the current process, unless the directory has the setgid  bit
330              set,  in  which case it takes the gid from the parent directory,
331              and also gets the setgid bit set if it is a directory itself.
332
333       grpquota|noquota|quota|usrquota
334              The usrquota (same as quota) mount  option  enables  user  quota
335              support  on  the  filesystem. grpquota enables group quotas sup‐
336              port. You need the quota utilities to actually enable and manage
337              the quota system.
338
339       nouid32
340              Disables  32-bit  UIDs  and  GIDs.  This is for interoperability
341              with older kernels which only store and expect 16-bit values.
342
343       oldalloc or orlov
344              Use old allocator or Orlov allocator for new  inodes.  Orlov  is
345              default.
346
347       resgid=n and resuid=n
348              The  ext2 filesystem reserves a certain percentage of the avail‐
349              able space (by default 5%, see mke2fs(8) and tune2fs(8)).  These
350              options  determine  who  can use the reserved blocks.  (Roughly:
351              whoever has the specified  uid,  or  belongs  to  the  specified
352              group.)
353
354       sb=n   Instead  of  using  the  normal  superblock,  use an alternative
355              superblock specified by n.  This option is  normally  used  when
356              the  primary  superblock  has  been  corrupted.  The location of
357              backup superblocks is dependent on the  filesystem's  blocksize,
358              the   number   of   blocks  per  group,  and  features  such  as
359              sparse_super.
360
361              Additional backup superblocks can be  determined  by  using  the
362              mke2fs  program  using  the  -n  option  to  print out where the
363              superblocks exist, supposing mke2fs is supplied  with  arguments
364              that  are  consistent  with the filesystem's layout (e.g. block‐
365              size, blocks per group, sparse_super, etc.).
366
367              The block number here uses 1 k units. Thus, if you want  to  use
368              logical  block  32768  on  a  filesystem  with  4 k  blocks, use
369              "sb=131072".
370
371       user_xattr|nouser_xattr
372              Support "user." extended attributes (or not).
373
374
375

Mount options for ext3

377       The ext3 filesystem is a version of the ext2 filesystem which has  been
378       enhanced with journaling.  It supports the same options as ext2 as well
379       as the following additions:
380
381       journal_dev=devnum/journal_path=path
382              When the external  journal  device's  major/minor  numbers  have
383              changed, these options allow the user to specify the new journal
384              location.  The journal device is identified either  through  its
385              new  major/minor numbers encoded in devnum, or via a path to the
386              device.
387
388       norecovery/noload
389              Don't load the journal on mounting.  Note that if the filesystem
390              was not unmounted cleanly, skipping the journal replay will lead
391              to the filesystem containing inconsistencies that  can  lead  to
392              any number of problems.
393
394       data={journal|ordered|writeback}
395              Specifies the journaling mode for file data.  Metadata is always
396              journaled.  To use modes other than ordered on the root filesys‐
397              tem,  pass  the mode to the kernel as boot parameter, e.g. root‐
398              flags=data=journal.
399
400              journal
401                     All data is committed into the  journal  prior  to  being
402                     written into the main filesystem.
403
404              ordered
405                     This  is  the  default mode.  All data is forced directly
406                     out to the main file system prior to its  metadata  being
407                     committed to the journal.
408
409              writeback
410                     Data ordering is not preserved – data may be written into
411                     the main filesystem after its metadata has been committed
412                     to  the  journal.   This  is  rumoured to be the highest-
413                     throughput option.   It  guarantees  internal  filesystem
414                     integrity,  however  it  can  allow old data to appear in
415                     files after a crash and journal recovery.
416
417       data_err=ignore
418              Just print an error message if an error occurs in  a  file  data
419              buffer in ordered mode.
420
421       data_err=abort
422              Abort  the  journal  if an error occurs in a file data buffer in
423              ordered mode.
424
425       barrier=0 / barrier=1
426              This disables / enables the use of write  barriers  in  the  jbd
427              code.   barrier=0  disables,  barrier=1  enables (default). This
428              also requires an IO stack which can support barriers, and if jbd
429              gets an error on a barrier write, it will disable barriers again
430              with a warning.  Write barriers enforce proper on-disk  ordering
431              of  journal  commits,  making volatile disk write caches safe to
432              use, at some performance penalty.  If your  disks  are  battery-
433              backed  in  one  way  or  another, disabling barriers may safely
434              improve performance.
435
436       commit=nrsec
437              Start a journal commit every nrsec seconds.  The  default  value
438              is 5 seconds.  Zero means default.
439
440       user_xattr
441              Enable Extended User Attributes. See the attr(5) manual page.
442
443       jqfmt={vfsold|vfsv0|vfsv1}
444              Apart  from  the  old quota system (as in ext2, jqfmt=vfsold aka
445              version 1 quota) ext3 also supports journaled quotas (version  2
446              quota).  jqfmt=vfsv0  or  jqfmt=vfsv1  enables journaled quotas.
447              Journaled quotas have the advantage that even after a  crash  no
448              quota  check  is  required. When the quota filesystem feature is
449              enabled, journaled quotas are used automatically, and this mount
450              option is ignored.
451
452       usrjquota=aquota.user|grpjquota=aquota.group
453              For  journaled  quotas  (jqfmt=vfsv0  or jqfmt=vfsv1), the mount
454              options  usrjquota=aquota.user  and  grpjquota=aquota.group  are
455              required  to tell the quota system which quota database files to
456              use. When the quota filesystem  feature  is  enabled,  journaled
457              quotas are used automatically, and this mount option is ignored.
458
459

Mount options for ext4

461       The  ext4  filesystem is an advanced level of the ext3 filesystem which
462       incorporates scalability and reliability  enhancements  for  supporting
463       large filesystem.
464
465       The  options  journal_dev, journal_path, norecovery, noload, data, com‐
466       mit, orlov, oldalloc, [no]user_xattr, [no]acl, bsddf,  minixdf,  debug,
467       errors,   data_err,  grpid,  bsdgroups,  nogrpid,  sysvgroups,  resgid,
468       resuid, sb, quota, noquota,  nouid32,  grpquota,  usrquota,  usrjquota,
469       grpjquota, and jqfmt are backwardly compatible with ext3 or ext2.
470
471       journal_checksum | nojournal_checksum
472              The  journal_checksum option enables checksumming of the journal
473              transactions.  This will allow the recovery code in  e2fsck  and
474              the  kernel to detect corruption in the kernel. It is a compati‐
475              ble change and will be ignored by older kernels.
476
477       journal_async_commit
478              Commit block can be written to disk without waiting for descrip‐
479              tor  blocks.  If  enabled older kernels cannot mount the device.
480              This will enable 'journal_checksum' internally.
481
482       barrier=0 / barrier=1 / barrier / nobarrier
483              These mount options have the same effect as in ext3.  The  mount
484              options "barrier" and "nobarrier" are added for consistency with
485              other ext4 mount options.
486
487              The ext4 filesystem enables write barriers by default.
488
489       inode_readahead_blks=n
490              This tuning parameter controls the maximum number of inode table
491              blocks that ext4's inode table readahead algorithm will pre-read
492              into the buffer cache.  The value must be  a  power  of  2.  The
493              default value is 32 blocks.
494
495       stripe=n
496              Number  of  filesystem  blocks  that mballoc will try to use for
497              allocation size and alignment. For RAID5/6 systems  this  should
498              be  the  number  of  data  disks * RAID chunk size in filesystem
499              blocks.
500
501       delalloc
502              Deferring block allocation until write-out time.
503
504       nodelalloc
505              Disable delayed allocation. Blocks are allocated  when  data  is
506              copied from user to page cache.
507
508       max_batch_time=usec
509              Maximum  amount of time ext4 should wait for additional filesys‐
510              tem operations to be batch together  with  a  synchronous  write
511              operation. Since a synchronous write operation is going to force
512              a commit and then a wait for the I/O complete, it  doesn't  cost
513              much,  and  can  be  a  huge throughput win, we wait for a small
514              amount of time to see if any other transactions can piggyback on
515              the  synchronous  write. The algorithm used is designed to auto‐
516              matically tune for the speed  of  the  disk,  by  measuring  the
517              amount of time (on average) that it takes to finish committing a
518              transaction. Call this time the "commit time".  If the time that
519              the  transaction  has been running is less than the commit time,
520              ext4 will try sleeping for the commit time to see if other oper‐
521              ations  will  join the transaction. The commit time is capped by
522              the max_batch_time, which defaults  to  15000 µs  (15 ms).  This
523              optimization   can   be   turned   off   entirely   by   setting
524              max_batch_time to 0.
525
526       min_batch_time=usec
527              This parameter sets the commit time (as described above)  to  be
528              at  least  min_batch_time.  It  defaults  to  zero microseconds.
529              Increasing this parameter may improve the throughput  of  multi-
530              threaded,  synchronous workloads on very fast disks, at the cost
531              of increasing latency.
532
533       journal_ioprio=prio
534              The I/O priority (from 0 to 7, where 0 is the highest  priority)
535              which  should be used for I/O operations submitted by kjournald2
536              during a commit operation.  This  defaults  to  3,  which  is  a
537              slightly higher priority than the default I/O priority.
538
539       abort  Simulate  the effects of calling ext4_abort() for debugging pur‐
540              poses.  This is normally  used  while  remounting  a  filesystem
541              which is already mounted.
542
543       auto_da_alloc|noauto_da_alloc
544              Many broken applications don't use fsync() when replacing exist‐
545              ing files via patterns such as
546
547              fd = open("foo.new")/write(fd,...)/close(fd)/  rename("foo.new",
548              "foo")
549
550              or worse yet
551
552              fd = open("foo", O_TRUNC)/write(fd,...)/close(fd).
553
554              If  auto_da_alloc  is enabled, ext4 will detect the replace-via-
555              rename and replace-via-truncate  patterns  and  force  that  any
556              delayed  allocation  blocks  are allocated such that at the next
557              journal commit, in  the  default  data=ordered  mode,  the  data
558              blocks  of  the  new file are forced to disk before the rename()
559              operation is committed.  This provides roughly the same level of
560              guarantees  as  ext3,  and avoids the "zero-length" problem that
561              can happen when a system crashes before the  delayed  allocation
562              blocks are forced to disk.
563
564       noinit_itable
565              Do  not  initialize  any uninitialized inode table blocks in the
566              background. This feature may be used  by  installation  CD's  so
567              that  the  install  process can complete as quickly as possible;
568              the inode table initialization process would  then  be  deferred
569              until the next time the filesystem is mounted.
570
571       init_itable=n
572              The  lazy  itable init code will wait n times the number of mil‐
573              liseconds it took to zero out the previous block  group's  inode
574              table. This minimizes the impact on system performance while the
575              filesystem's inode table is being initialized.
576
577       discard/nodiscard
578              Controls whether ext4 should issue discard/TRIM commands to  the
579              underlying  block  device when blocks are freed.  This is useful
580              for SSD devices and sparse/thinly-provisioned LUNs,  but  it  is
581              off by default until sufficient testing has been done.
582
583       block_validity/noblock_validity
584              This option enables/disables the in-kernel facility for tracking
585              filesystem metadata blocks within internal data structures. This
586              allows  multi-block  allocator  and  other  routines  to quickly
587              locate extents which  might  overlap  with  filesystem  metadata
588              blocks. This option is intended for debugging purposes and since
589              it negatively affects the performance, it is off by default.
590
591       dioread_lock/dioread_nolock
592              Controls whether or not ext4 should use the DIO read locking. If
593              the dioread_nolock option is specified ext4 will allocate unini‐
594              tialized extent before buffer write and convert  the  extent  to
595              initialized  after IO completes.  This approach allows ext4 code
596              to avoid using inode mutex, which improves scalability  on  high
597              speed  storages. However this does not work with data journaling
598              and dioread_nolock option will be ignored with  kernel  warning.
599              Note that dioread_nolock code path is only used for extent-based
600              files.  Because of the restrictions this options comprises it is
601              off by default (e.g. dioread_lock).
602
603       max_dir_size_kb=n
604              This  limits  the size of the directories so that any attempt to
605              expand them beyond the specified limit in kilobytes  will  cause
606              an  ENOSPC  error. This is useful in memory-constrained environ‐
607              ments, where a very large directory can cause severe performance
608              problems or even provoke the Out Of Memory killer. (For example,
609              if there is only 512 MB memory available, a 176 MB directory may
610              seriously cramp the system's style.)
611
612       i_version
613              Enable  64-bit  inode  version  support.  This  option is off by
614              default.
615
616       nombcache
617              This option disables use of mbcache for extended attribute dedu‐
618              plication.  On  systems  where extended attributes are rarely or
619              never shared between files, use  of  mbcache  for  deduplication
620              adds unnecessary computational overhead.
621
622       prjquota
623              The  prjquota  mount option enables project quota support on the
624              filesystem.  You need the quota utilities to actually enable and
625              manage the quota system.  This mount option requires the project
626              filesystem feature.
627
628

FILE ATTRIBUTES

630       The ext2, ext3, and ext4 filesystems support setting the following file
631       attributes on Linux systems using the chattr(1) utility:
632
633       a - append only
634
635       A - no atime updates
636
637       d - no dump
638
639       D - synchronous directory updates
640
641       i - immutable
642
643       S - synchronous updates
644
645       u - undeletable
646
647       In addition, the ext3 and ext4 filesystems support the following flag:
648
649       j - data journaling
650
651       Finally, the ext4 filesystem also supports the following flag:
652
653       e - extents format
654
655       For  descriptions  of  these  attribute  flags,  please  refer  to  the
656       chattr(1) man page.
657

KERNEL SUPPORT

659       This section lists the file system driver (e.g., ext2, ext3, ext4)  and
660       upstream kernel version where a particular file system feature was sup‐
661       ported.  Note that in some cases the feature  was  present  in  earlier
662       kernel  versions,  but  there were known, serious bugs.  In other cases
663       the feature may still be considered in an experimental state.  Finally,
664       note  that  some  distributions may have backported features into older
665       kernels; in particular the kernel versions in certain "enterprise  dis‐
666       tributions" can be extremely misleading.
667
668       filetype            ext2, 2.2.0
669
670       sparse_super        ext2, 2.2.0
671
672       large_file          ext2, 2.2.0
673
674       has_journal         ext3, 2.4.15
675
676       ext_attr            ext2/ext3, 2.6.0
677
678       dir_index           ext3, 2.6.0
679
680       resize_inode        ext3, 2.6.10 (online resizing)
681
682       64bit               ext4, 2.6.28
683
684       dir_nlink           ext4, 2.6.28
685
686       extent              ext4, 2.6.28
687
688       extra_isize         ext4, 2.6.28
689
690       flex_bg             ext4, 2.6.28
691
692       huge_file           ext4, 2.6.28
693
694       meta_bg             ext4, 2.6.28
695
696       uninit_bg           ext4, 2.6.28
697
698       mmp                 ext4, 3.0
699
700       bigalloc            ext4, 3.2
701
702       quota               ext4, 3.6
703
704       inline_data         ext4, 3.8
705
706       sparse_super2       ext4, 3.16
707
708       metadata_csum       ext4, 3.18
709
710       encrypt             ext4, 4.1
711
712       metadata_csum_seed  ext4, 4.4
713
714       project             ext4, 4.5
715
716       ea_inode            ext4, 4.13
717
718       large_dir           ext4, 4.13
719
720       casefold            ext4, 5.2
721
722       verity              ext4, 5.4
723

SEE ALSO

725       mke2fs(8),    mke2fs.conf(5),   e2fsck(8),   dumpe2fs(8),   tune2fs(8),
726       debugfs(8), mount(8), chattr(1)
727
728
729
730E2fsprogs version 1.45.5         January 2020                          EXT4(5)
Impressum