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  ex‐
15       tensibility  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.kernel.org/in
52              dex.php/Bigalloc for details.  May clash with delayed allocation
53              (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  ap‐
61              plications  to lookup for a file in the file system using an en‐
62              coding 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  di‐
75              rectory  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 at‐
83              tribute 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  ex‐
86              tended 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 de‐
96              vice 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 at‐
121              tributes.
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 di‐
128              rectory 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 file system consistency  even  across
141              unclean  shutdowns.   Setting the file system feature is equiva‐
142              lent to using the -j option with mke2fs or tune2fs.   This  fea‐
143              ture is supported by ext3 and ext4, and ignored by the ext2 file
144              system 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  di‐
165              rectory  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  file  system  metadata  (su‐
179              perblock,  group descriptor blocks, inode and block bitmaps, di‐
180              rectories, and extent tree blocks).  The checksum algorithm used
181              for the 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 in‐
184              stead of uninit_bg.
185
186       metadata_csum_seed
187              This feature allows the file system to store the metadata check‐
188              sum  seed  in  the superblock, which allows the administrator to
189              change the UUID of a file system 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 file system 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 file sys‐
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 file system 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 de‐
228              fault mke2fs will attempt to reserve enough space  so  that  the
229              file  system  may grow to 1024 times its initial size.  This can
230              be 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  su‐
238              perblock  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 de‐
245              scriptor(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       stable_inodes
253              Marks the file system's inode numbers and UUID as  stable.   re‐
254              size2fs(8) will not allow shrinking a file system with this fea‐
255              ture, nor will tune2fs(8) allow changing its UUID.  This feature
256              allows  the use of specialized encryption settings that make use
257              of the inode numbers and UUID.  Note that  the  encrypt  feature
258              still  needs to be enabled separately.  stable_inodes is a "com‐
259              pat" feature, so old kernels will allow it.
260
261       uninit_bg
262              This ext4 file system feature indicates that the block group de‐
263              scriptors  will be protected using checksums, making it safe for
264              mke2fs(8) to create a file system without  initializing  all  of
265              the  block groups.  The kernel will keep a high watermark of un‐
266              used inodes, and initialize  inode  tables  and  blocks  lazily.
267              This  feature  speeds up the time to check the file system using
268              e2fsck(8), and it also speeds up the time required for mke2fs(8)
269              to create the file system.
270
271       verity
272              Enables  support  for  verity protected files.  Verity files are
273              readonly, and their data is  transparently  verified  against  a
274              Merkle  tree  hidden past the end of the file.  Using the Merkle
275              tree's root hash, a verity file  can  be  efficiently  authenti‐
276              cated, independent of the file's size.
277
278              This  feature  is most useful for authenticating important read-
279              only files on read-write file systems.  If the file  system  it‐
280              self  is read-only, then using dm-verity to authenticate the en‐
281              tire block device may provide much better security.
282

MOUNT OPTIONS

284       This section describes mount options which are specific to ext2,  ext3,
285       and  ext4.   Other  generic  mount  options  may  be  used as well; see
286       mount(8) for details.
287

Mount options for ext2

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

Mount options for ext3

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

Mount options for ext4

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

FILE ATTRIBUTES

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

KERNEL SUPPORT

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

SEE ALSO

735       mke2fs(8),  mke2fs.conf(5),  e2fsck(8),  dumpe2fs(8),  tune2fs(8),  de‐
736       bugfs(8), mount(8), chattr(1)
737
738
739
740E2fsprogs version 1.47.0         February 2023                         EXT4(5)
Impressum