Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
EXT4(5)			      File Formats Manual		       EXT4(5)

NAME
       ext2 - the second extended file system
       ext3 - the third	extended file system
       ext4 - the fourth extended file system

DESCRIPTION
       The second, third, and fourth extended file systems, or ext2, ext3, and
       ext4 as they are	commonly known,	are Linux file systems that have  his-
       torically  been	the  default file system for many Linux	distributions.
       They are	general	purpose	file systems that have been designed  for  ex-
       tensibility  and	 backwards compatibility.  In particular, file systems
       previously intended for use with	the ext2 and ext3 file systems can  be
       mounted	using  the  ext4 file system driver, and indeed	in many	modern
       Linux distributions, the	ext4 file system driver	has been configured to
       handle mount requests for ext2 and ext3 file systems.

FILE SYSTEM FEATURES
       A  file	system formatted for ext2, ext3, or ext4 can have some collec-
       tion of the following file system feature flags enabled.	 Some of these
       features	 are  not  supported by	all implementations of the ext2, ext3,
       and ext4	file system drivers, depending on Linux	kernel version in use.
       On  other  operating  systems,  such as the GNU/HURD or FreeBSD,	only a
       very restrictive	set of file system features may	be supported in	 their
       implementations of ext2.

       64bit
	      Enables  the  file  system  to be	larger than 2^32 blocks.  This
	      feature is set automatically, as needed, but it can be useful to
	      specify this feature explicitly if the file system might need to
	      be resized larger	than 2^32 blocks, even if it was smaller  than
	      that  threshold  when it was originally created.	Note that some
	      older kernels and	older versions of e2fsprogs will  not  support
	      file systems with	this ext4 feature enabled.

       bigalloc
	      This  ext4  feature  enables clustered block allocation, so that
	      the unit of allocation is	a power	of two number of blocks.  That
	      is,  each	 bit  in  the what had traditionally been known	as the
	      block allocation bitmap now indicates whether a  cluster	is  in
	      use or not, where	a cluster is by	default	composed of 16 blocks.
	      This feature can decrease	the time spent on doing	block  alloca-
	      tion  and	 brings	 smaller  fragmentation,  especially for large
	      files.  The size can be specified	using the mke2fs -C option.

	      Warning: The bigalloc feature is still  under  development,  and
	      may  not be fully	supported with your kernel or may have various
	      bugs.  Please see	the web	 page  http://ext4.wiki.kernel.org/in-
	      dex.php/Bigalloc for details.  May clash with delayed allocation
	      (see nodelalloc mount option).

	      This feature requires that the extent feature be enabled.

       casefold
	      This ext4	feature	provides file system level character  encoding
	      support  for  directories	 with  the casefold (+F) flag enabled.
	      This feature is name-preserving on the disk, but it  allows  ap-
	      plications  to lookup for	a file in the file system using	an en-
	      coding equivalent	version	of the file name.

       dir_index
	      Use hashed b-trees to speed up name lookups  in  large  directo-
	      ries.   This feature is supported	by ext3	and ext4 file systems,
	      and is ignored by	ext2 file systems.

       dir_nlink
	      Normally,	ext4 allows an inode to	have no	more than 65,000  hard
	      links.   This  applies  to regular files as well as directories,
	      which means that there can be no more than 64,998	subdirectories
	      in  a  directory	(because  each of the '.' and '..' entries, as
	      well as the directory entry for the directory in its parent  di-
	      rectory  counts  as a hard link).	 This feature lifts this limit
	      by causing ext4 to use a link count of 1 to  indicate  that  the
	      number  of  hard links to	a directory is not known when the link
	      count might exceed the maximum count limit.

       ea_inode
	      Normally,	a file's extended attributes and  associated  metadata
	      must fit within the inode	or the inode's associated extended at-
	      tribute block. This feature allows the value  of	each  extended
	      attribute	to be placed in	the data blocks	of a separate inode if
	      necessary, increasing the	limit on the size and  number  of  ex-
	      tended attributes	per file.

       encrypt
	      Enables  support for file-system level encryption	of data	blocks
	      and file names.  The  inode  metadata  (timestamps,  file	 size,
	      user/group ownership, etc.) is not encrypted.

	      This feature is most useful on file systems with multiple	users,
	      or where not all files should be encrypted.  In many use	cases,
	      especially  on  single-user systems, encryption at the block de-
	      vice layer using dm-crypt	may provide much better	security.

       ext_attr
	      This feature enables the use of extended attributes.  This  fea-
	      ture is supported	by ext2, ext3, and ext4.

       extent
	      This  ext4  feature  allows the mapping of logical block numbers
	      for a particular inode to	physical blocks	on the storage	device
	      to  be  stored  using  an	extent tree, which is a	more efficient
	      data structure than the traditional indirect block  scheme  used
	      by  the  ext2 and	ext3 file systems.  The	use of the extent tree
	      decreases	metadata block overhead, improves file system  perfor-
	      mance,  and  decreases  the  needed to run e2fsck(8) on the file
	      system.  (Note: both extent and extents are  accepted  as	 valid
	      names  for  this	feature	for historical/backwards compatibility
	      reasons.)

       extra_isize
	      This ext4	feature	reserves a specific amount of  space  in  each
	      inode  for  extended  metadata such as nanosecond	timestamps and
	      file creation time, even if the current  kernel  does  not  cur-
	      rently  need  to reserve this much space.	 Without this feature,
	      the kernel will reserve the amount of space for features it cur-
	      rently  needs,  and  the	rest  may  be consumed by extended at-
	      tributes.

	      For this feature to be useful the	inode size must	be  256	 bytes
	      in size or larger.

       filetype
	      This feature enables the storage of file type information	in di-
	      rectory entries.	This feature is	supported by ext2,  ext3,  and
	      ext4.

       flex_bg
	      This  ext4  feature allows the per-block group metadata (alloca-
	      tion bitmaps and inode tables) to	 be  placed  anywhere  on  the
	      storage  media.	In  addition,  mke2fs will place the per-block
	      group metadata together starting at the  first  block  group  of
	      each  "flex_bg  group".	 The  size of the flex_bg group	can be
	      specified	using the -G option.

       has_journal
	      Create a journal to ensure file system consistency  even	across
	      unclean  shutdowns.   Setting the	file system feature is equiva-
	      lent to using the	-j option with mke2fs or tune2fs.   This  fea-
	      ture is supported	by ext3	and ext4, and ignored by the ext2 file
	      system driver.

       huge_file
	      This ext4	feature	allows files to	be larger than 2 terabytes  in
	      size.

       inline_data
	      Allow  data  to  be  stored  in the inode	and extended attribute
	      area.

       journal_dev
	      This feature is enabled on the superblock	found on  an  external
	      journal device.  The block size for the external journal must be
	      the same as the file system which	uses it.

	      The external journal device can be used  by  a  file  system  by
	      specifying  the  -J device=<external-device> option to mke2fs(8)
	      or tune2fs(8).

       large_dir
	      This feature increases the limit on the number of	files per  di-
	      rectory  by  raising  the	 maximum  size of directories and, for
	      hashed b-tree directories	(see dir_index), the maximum height of
	      the hashed b-tree	used to	store the directory entries.

       large_file
	      This  feature flag is set	automatically by modern	kernels	when a
	      file larger than 2 gigabytes is created.	Very old kernels could
	      not  handle  large  files, so this feature flag was used to pro-
	      hibit those kernels from mounting	file systems that  they	 could
	      not understand.

       metadata_csum
	      This  ext4  feature enables metadata checksumming.  This feature
	      stores checksums for  all	 of  the  file	system	metadata  (su-
	      perblock,	 group descriptor blocks, inode	and block bitmaps, di-
	      rectories, and extent tree blocks).  The checksum	algorithm used
	      for the metadata blocks is different than	the one	used for group
	      descriptors with the uninit_bg feature.  These two features  are
	      incompatible  and	 metadata_csum will be used preferentially in-
	      stead of uninit_bg.

       metadata_csum_seed
	      This feature allows the file system to store the metadata	check-
	      sum  seed	 in  the superblock, which allows the administrator to
	      change the UUID of a file	system using the metadata_csum feature
	      while it is mounted.

       meta_bg
	      This  ext4  feature  allows  file	 systems to be resized on-line
	      without explicitly needing to reserve space for  growth  in  the
	      size  of	the block group	descriptors.  This scheme is also used
	      to resize	file systems which are larger than 2^32	blocks.	 It is
	      not  recommended	that this feature be set when a	file system is
	      created, since this alternate method of storing the block	 group
	      descriptors  will	 slow  down  the time needed to	mount the file
	      system, and newer	kernels	can automatically set this feature  as
	      necessary	when doing an online resize and	no more	reserved space
	      is available in the resize inode.

       mmp
	      This ext4	feature	provides multiple mount	protection (MMP).  MMP
	      helps to protect the file	system from being multiply mounted and
	      is useful	in shared storage environments.

       project
	      This ext4	feature	provides project quota support.	With this fea-
	      ture, the	project	ID of inode will be managed when the file sys-
	      tem is mounted.

       quota
	      Create quota inodes (inode #3 for	userquota  and	inode  #4  for
	      group quota) and set them	in the superblock.  With this feature,
	      the quotas will be enabled automatically when the	file system is
	      mounted.

	      Causes  the  quota files (i.e., user.quota and group.quota which
	      existed in the older quota design) to be hidden inodes.

       resize_inode
	      This file	system feature indicates that space has	been  reserved
	      so  that	the block group	descriptor table can be	extended while
	      resizing a mounted file system.  The online resize operation  is
	      carried  out  by	the kernel, triggered by resize2fs(8).	By de-
	      fault mke2fs will	attempt	to reserve enough space	 so  that  the
	      file  system  may	grow to	1024 times its initial size.  This can
	      be changed using the resize extended option.

	      This feature requires that  the  sparse_super  or	 sparse_super2
	      feature be enabled.

       sparse_super
	      This  file  system  feature is set on all	modern ext2, ext3, and
	      ext4 file	systems.  It indicates that backup copies of  the  su-
	      perblock	and  block group descriptors are present only in a few
	      block groups, not	all of them.

       sparse_super2
	      This feature indicates that there	 will  only  be	 at  most  two
	      backup  superblocks  and	block  group  descriptors.   The block
	      groups used to store the backup superblock(s) and	blockgroup de-
	      scriptor(s)  are	stored	in  the	superblock, but	typically, one
	      will be located at the beginning of block	group #1, and  one  in
	      the last block group in the file system.	This feature is	essen-
	      tially a more extreme version of sparse_super and	is designed to
	      allow  a	much  larger percentage	of the disk to have contiguous
	      blocks available for data	files.

       stable_inodes
	      Marks the	file system's inode numbers and	UUID as	 stable.   re-
	      size2fs(8) will not allow	shrinking a file system	with this fea-
	      ture, nor	will tune2fs(8)	allow changing its UUID.  This feature
	      allows  the use of specialized encryption	settings that make use
	      of the inode numbers and UUID.  Note that	 the  encrypt  feature
	      still  needs to be enabled separately.  stable_inodes is a "com-
	      pat" feature, so old kernels will	allow it.

       uninit_bg
	      This ext4	file system feature indicates that the block group de-
	      scriptors	 will be protected using checksums, making it safe for
	      mke2fs(8)	to create a file system	without	 initializing  all  of
	      the  block groups.  The kernel will keep a high watermark	of un-
	      used inodes, and initialize  inode  tables  and  blocks  lazily.
	      This  feature  speeds up the time	to check the file system using
	      e2fsck(8), and it	also speeds up the time	required for mke2fs(8)
	      to create	the file system.

       verity
	      Enables  support	for  verity protected files.  Verity files are
	      readonly,	and their data is  transparently  verified  against  a
	      Merkle  tree  hidden past	the end	of the file.  Using the	Merkle
	      tree's root hash,	a verity file  can  be	efficiently  authenti-
	      cated, independent of the	file's size.

	      This  feature  is	most useful for	authenticating important read-
	      only files on read-write file systems.  If the file  system  it-
	      self  is read-only, then using dm-verity to authenticate the en-
	      tire block device	may provide much better	security.

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

Mount options for ext2
       The `ext2' file system is the standard Linux file system.  Since	 Linux
       2.5.46,	for  most  mount options the default is	determined by the file
       system superblock. Set them with	tune2fs(8).

       acl|noacl
	      Support POSIX Access Control Lists (or  not).   See  the	acl(5)
	      manual page.

       bsddf|minixdf
	      Set  the behavior	for the	statfs system call. The	minixdf	behav-
	      ior is to	return in the  f_blocks	 field	the  total  number  of
	      blocks  of  the  file system, while the bsddf behavior (which is
	      the default) is to subtract the overhead blocks used by the ext2
	      file system and not available for	file storage. Thus

	      %	mount /k -o minixdf; df	/k; umount /k

	      File System  1024-blocks	 Used  Available  Capacity  Mounted on
	      /dev/sda6	     2630655	86954	2412169	     3%	    /k

	      %	mount /k -o bsddf; df /k; umount /k

	      File System  1024-blocks	Used  Available	 Capacity  Mounted on
	      /dev/sda6	     2543714	  13   2412169	    0%	   /k

	      (Note  that this example shows that one can add command line op-
	      tions to the options given in /etc/fstab.)

       check=none or nocheck
	      No checking is done at mount time. This is the default. This  is
	      fast.   It  is wise to invoke e2fsck(8) every now	and then, e.g.
	      at  boot	time.  The   non-default   behavior   is   unsupported
	      (check=normal  and check=strict options have been	removed). Note
	      that these mount options don't have to be	supported if ext4 ker-
	      nel driver is used for ext2 and ext3 file	systems.

       debug  Print debugging info upon	each (re)mount.

       errors={continue|remount-ro|panic}
	      Define  the  behavior when an error is encountered.  (Either ig-
	      nore errors and just mark	the file  system  erroneous  and  con-
	      tinue,  or  remount the file system read-only, or	panic and halt
	      the system.)  The	default	is set in the file system  superblock,
	      and can be changed using tune2fs(8).

       grpid|bsdgroups and nogrpid|sysvgroups
	      These  options  define  what group id a newly created file gets.
	      When grpid is set, it takes the group id	of  the	 directory  in
	      which  it	is created; otherwise (the default) it takes the fsgid
	      of the current process, unless the directory has the setgid  bit
	      set,  in	which case it takes the	gid from the parent directory,
	      and also gets the	setgid bit set if it is	a directory itself.

       grpquota|noquota|quota|usrquota
	      The usrquota (same as quota) mount  option  enables  user	 quota
	      support  on  the file system. grpquota enables group quotas sup-
	      port. You	need the quota utilities to actually enable and	manage
	      the quota	system.

       nouid32
	      Disables	32-bit	UIDs  and  GIDs.  This is for interoperability
	      with older kernels which only store and expect 16-bit values.

       oldalloc	or orlov
	      Use old allocator	or Orlov allocator for new  inodes.  Orlov  is
	      default.

       resgid=n	and resuid=n
	      The ext2 file system reserves a certain percentage of the	avail-
	      able space (by default 5%, see mke2fs(8) and tune2fs(8)).	 These
	      options  determine  who  can use the reserved blocks.  (Roughly:
	      whoever has the specified	 uid,  or  belongs  to	the  specified
	      group.)

       sb=n   Instead  of  using the normal superblock,	use an alternative su-
	      perblock specified by n.	This option is normally	used when  the
	      primary  superblock  has been corrupted.	The location of	backup
	      superblocks is dependent on the  file  system's  blocksize,  the
	      number of	blocks per group, and features such as sparse_super.

	      Additional  backup  superblocks  can  be determined by using the
	      mke2fs program using the -n option to print out  where  the  su-
	      perblocks	 exist,	 supposing  mke2fs  is supplied	with arguments
	      that are consistent with the file	system's layout	 (e.g.	block-
	      size, blocks per group, sparse_super, etc.).

	      The  block  number here uses 1 k units. Thus, if you want	to use
	      logical block 32768 on  a	 file  system  with  4 k  blocks,  use
	      "sb=131072".

       user_xattr|nouser_xattr
	      Support "user." extended attributes (or not).

Mount options for ext3
       The  ext3  file	system	is a version of	the ext2 file system which has
       been enhanced with journaling.  It supports the same options as ext2 as
       well as the following additions:

       journal_dev=devnum/journal_path=path
	      When  the	 external  journal  device's  major/minor numbers have
	      changed, these options allow the user to specify the new journal
	      location.	  The  journal device is identified either through its
	      new major/minor numbers encoded in devnum, or via	a path to  the
	      device.

       norecovery/noload
	      Don't  load the journal on mounting.  Note that if the file sys-
	      tem was not unmounted cleanly, skipping the journal replay  will
	      lead to the file system containing inconsistencies that can lead
	      to any number of problems.

       data={journal|ordered|writeback}
	      Specifies	the journaling mode for	file data.  Metadata is	always
	      journaled.   To  use  modes  other than ordered on the root file
	      system, pass the mode to the  kernel  as	boot  parameter,  e.g.
	      rootflags=data=journal.

	      journal
		     All  data	is  committed  into the	journal	prior to being
		     written into the main file	system.

	      ordered
		     This is the default mode.	All data  is  forced  directly
		     out  to  the main file system prior to its	metadata being
		     committed to the journal.

	      writeback
		     Data ordering is not preserved - data may be written into
		     the  main file system after its metadata has been commit-
		     ted to the	journal.  This is rumoured to be the  highest-
		     throughput	 option.   It  guarantees internal file	system
		     integrity,	however	it can allow old  data	to  appear  in
		     files after a crash and journal recovery.

       data_err=ignore
	      Just  print  an  error message if	an error occurs	in a file data
	      buffer in	ordered	mode.

       data_err=abort
	      Abort the	journal	if an error occurs in a	file  data  buffer  in
	      ordered mode.

       barrier=0 / barrier=1
	      This  disables  /	 enables  the use of write barriers in the jbd
	      code.  barrier=0 disables,  barrier=1  enables  (default).  This
	      also requires an IO stack	which can support barriers, and	if jbd
	      gets an error on a barrier write,	it will	disable	barriers again
	      with  a warning.	Write barriers enforce proper on-disk ordering
	      of journal commits, making volatile disk write  caches  safe  to
	      use,  at	some  performance penalty.  If your disks are battery-
	      backed in	one way	or another, disabling barriers may safely  im-
	      prove performance.

       commit=nrsec
	      Start  a	journal	commit every nrsec seconds.  The default value
	      is 5 seconds.  Zero means	default.

       user_xattr
	      Enable Extended User Attributes. See the attr(5) manual page.

       jqfmt={vfsold|vfsv0|vfsv1}
	      Apart from the old quota system (as in  ext2,  jqfmt=vfsold  aka
	      version  1 quota)	ext3 also supports journaled quotas (version 2
	      quota). jqfmt=vfsv0 or  jqfmt=vfsv1  enables  journaled  quotas.
	      Journaled	 quotas	 have the advantage that even after a crash no
	      quota check is required. When the	quota file system  feature  is
	      enabled, journaled quotas	are used automatically,	and this mount
	      option is	ignored.

       usrjquota=aquota.user|grpjquota=aquota.group
	      For journaled quotas (jqfmt=vfsv0	or jqfmt=vfsv1), the mount op-
	      tions  usrjquota=aquota.user  and	grpjquota=aquota.group are re-
	      quired to	tell the quota system which quota  database  files  to
	      use.  When  the  quota file system feature is enabled, journaled
	      quotas are used automatically, and this mount option is ignored.

Mount options for ext4
       The ext4	file system is an advanced level of the	ext3 file system which
       incorporates  scalability  and  reliability enhancements	for supporting
       large file system.

       The options journal_dev,	journal_path, norecovery, noload,  data,  com-
       mit,  orlov,  oldalloc, [no]user_xattr, [no]acl,	bsddf, minixdf,	debug,
       errors, data_err, grpid,	bsdgroups, nogrpid,  sysvgroups,  resgid,  re-
       suid,  sb,  quota, noquota, nouid32, grpquota, usrquota,	usrjquota, gr-
       pjquota,	and jqfmt are backwardly compatible with ext3 or ext2.

       journal_checksum	| nojournal_checksum
	      The journal_checksum option enables checksumming of the  journal
	      transactions.   This  will allow the recovery code in e2fsck and
	      the kernel to detect corruption in the kernel. It	is a  compati-
	      ble change and will be ignored by	older kernels.

       journal_async_commit
	      Commit block can be written to disk without waiting for descrip-
	      tor blocks. If enabled older kernels cannot  mount  the  device.
	      This will	enable 'journal_checksum' internally.

       barrier=0 / barrier=1 / barrier / nobarrier
	      These  mount options have	the same effect	as in ext3.  The mount
	      options "barrier"	and "nobarrier"	are added for consistency with
	      other ext4 mount options.

	      The ext4 file system enables write barriers by default.

       inode_readahead_blks=n
	      This tuning parameter controls the maximum number	of inode table
	      blocks that ext4's inode table readahead algorithm will pre-read
	      into  the	buffer cache.  The value must be a power of 2. The de-
	      fault value is 32	blocks.

       stripe=n
	      Number of	file system blocks that	mballoc	will try  to  use  for
	      allocation  size	and alignment. For RAID5/6 systems this	should
	      be the number of data disks * RAID chunk	size  in  file	system
	      blocks.

       delalloc
	      Deferring	block allocation until write-out time.

       nodelalloc
	      Disable  delayed	allocation.  Blocks are	allocated when data is
	      copied from user to page cache.

       max_batch_time=usec
	      Maximum amount of	time ext4 should wait for additional file sys-
	      tem operations to	be batch together with a synchronous write op-
	      eration. Since a synchronous write operation is going to force a
	      commit  and  then	 a  wait for the I/O complete, it doesn't cost
	      much, and	can be a huge throughput win,  we  wait	 for  a	 small
	      amount of	time to	see if any other transactions can piggyback on
	      the synchronous write. The algorithm used	is designed  to	 auto-
	      matically	 tune  for  the	 speed	of  the	disk, by measuring the
	      amount of	time (on average) that it takes	to finish committing a
	      transaction. Call	this time the "commit time".  If the time that
	      the transaction has been running is less than the	 commit	 time,
	      ext4 will	try sleeping for the commit time to see	if other oper-
	      ations will join the transaction.	The commit time	is  capped  by
	      the  max_batch_time,  which  defaults to 15000 <micro>s (15 ms).
	      This  optimization  can  be  turned  off	entirely  by   setting
	      max_batch_time to	0.

       min_batch_time=usec
	      This  parameter  sets the	commit time (as	described above) to be
	      at least min_batch_time. It defaults to zero  microseconds.  In-
	      creasing	this  parameter	 may  improve the throughput of	multi-
	      threaded,	synchronous workloads on very fast disks, at the  cost
	      of increasing latency.

       journal_ioprio=prio
	      The  I/O priority	(from 0	to 7, where 0 is the highest priority)
	      which should be used for I/O operations submitted	by  kjournald2
	      during  a	 commit	 operation.   This  defaults  to 3, which is a
	      slightly higher priority than the	default	I/O priority.

       abort  Simulate the effects of calling ext4_abort() for debugging  pur-
	      poses.   This  is	 normally  used	while remounting a file	system
	      which is already mounted.

       auto_da_alloc|noauto_da_alloc
	      Many broken applications don't use fsync() when replacing	exist-
	      ing files	via patterns such as

	      fd  = open("foo.new")/write(fd,...)/close(fd)/ rename("foo.new",
	      "foo")

	      or worse yet

	      fd = open("foo", O_TRUNC)/write(fd,...)/close(fd).

	      If auto_da_alloc is enabled, ext4	will detect  the  replace-via-
	      rename  and replace-via-truncate patterns	and force that any de-
	      layed allocation blocks are allocated  such  that	 at  the  next
	      journal  commit,	in  the	 default  data=ordered	mode, the data
	      blocks of	the new	file are forced	to disk	 before	 the  rename()
	      operation	is committed.  This provides roughly the same level of
	      guarantees as ext3, and avoids the  "zero-length"	 problem  that
	      can  happen  when	a system crashes before	the delayed allocation
	      blocks are forced	to disk.

       noinit_itable
	      Do not initialize	any uninitialized inode	table  blocks  in  the
	      background.  This	 feature  may  be used by installation CD's so
	      that the install process can complete as	quickly	 as  possible;
	      the  inode  table	 initialization	process	would then be deferred
	      until the	next time the file system is mounted.

       init_itable=n
	      The lazy itable init code	will wait n times the number  of  mil-
	      liseconds	 it  took to zero out the previous block group's inode
	      table. This minimizes the	impact on system performance while the
	      file system's inode table	is being initialized.

       discard/nodiscard
	      Controls	whether	ext4 should issue discard/TRIM commands	to the
	      underlying block device when blocks are freed.  This  is	useful
	      for  SSD	devices	 and sparse/thinly-provisioned LUNs, but it is
	      off by default until sufficient testing has been done.

       block_validity/noblock_validity
	      This option enables/disables the in-kernel facility for tracking
	      file  system  metadata  blocks  within internal data structures.
	      This allows multi-block allocator	and other routines to  quickly
	      locate  extents  which  might  overlap with file system metadata
	      blocks. This option is intended for debugging purposes and since
	      it negatively affects the	performance, it	is off by default.

       dioread_lock/dioread_nolock
	      Controls whether or not ext4 should use the DIO read locking. If
	      the dioread_nolock option	is specified ext4 will allocate	unini-
	      tialized	extent	before	buffer write and convert the extent to
	      initialized after	IO completes.  This approach allows ext4  code
	      to  avoid	 using inode mutex, which improves scalability on high
	      speed storages. However this does	not work with data  journaling
	      and  dioread_nolock  option will be ignored with kernel warning.
	      Note that	dioread_nolock code path is only used for extent-based
	      files.  Because of the restrictions this options comprises it is
	      off by default (e.g. dioread_lock).

       max_dir_size_kb=n
	      This limits the size of the directories so that any  attempt  to
	      expand  them  beyond the specified limit in kilobytes will cause
	      an ENOSPC	error. This is useful in  memory-constrained  environ-
	      ments, where a very large	directory can cause severe performance
	      problems or even provoke the Out Of Memory killer. (For example,
	      if there is only 512 MB memory available,	a 176 MB directory may
	      seriously	cramp the system's style.)

       i_version
	      Enable 64-bit inode version support. This	option is off  by  de-
	      fault.

       nombcache
	      This option disables use of mbcache for extended attribute dedu-
	      plication. On systems where extended attributes  are  rarely  or
	      never  shared  between  files,  use of mbcache for deduplication
	      adds unnecessary computational overhead.

       prjquota
	      The prjquota mount option	enables	project	quota support  on  the
	      file  system.   You  need	the quota utilities to actually	enable
	      and manage the quota system.  This  mount	 option	 requires  the
	      project file system feature.

FILE ATTRIBUTES
       The  ext2,  ext3,  and  ext4 file systems support setting the following
       file attributes on Linux	systems	using the chattr(1) utility:

       a - append only

       A - no atime updates

       d - no dump

       D - synchronous directory updates

       i - immutable

       S - synchronous updates

       u - undeletable

       In addition, the	ext3 and ext4 file systems support the following flag:

       j - data	journaling

       Finally,	the ext4 file system also supports the following flag:

       e - extents format

       For  descriptions  of  these  attribute	flags,	please	refer  to  the
       chattr(1) man page.

KERNEL SUPPORT
       This  section lists the file system driver (e.g., ext2, ext3, ext4) and
       upstream	kernel version where a particular file system feature was sup-
       ported.	 Note  that  in	 some cases the	feature	was present in earlier
       kernel versions,	but there were known, serious bugs.   In  other	 cases
       the feature may still be	considered in an experimental state.  Finally,
       note that some distributions may	have backported	 features  into	 older
       kernels;	 in particular the kernel versions in certain "enterprise dis-
       tributions" can be extremely misleading.

       filetype		   ext2, 2.2.0

       sparse_super	   ext2, 2.2.0

       large_file	   ext2, 2.2.0

       has_journal	   ext3, 2.4.15

       ext_attr		   ext2/ext3, 2.6.0

       dir_index	   ext3, 2.6.0

       resize_inode	   ext3, 2.6.10	(online	resizing)

       64bit		   ext4, 2.6.28

       dir_nlink	   ext4, 2.6.28

       extent		   ext4, 2.6.28

       extra_isize	   ext4, 2.6.28

       flex_bg		   ext4, 2.6.28

       huge_file	   ext4, 2.6.28

       meta_bg		   ext4, 2.6.28

       uninit_bg	   ext4, 2.6.28

       mmp		   ext4, 3.0

       bigalloc		   ext4, 3.2

       quota		   ext4, 3.6

       inline_data	   ext4, 3.8

       sparse_super2	   ext4, 3.16

       metadata_csum	   ext4, 3.18

       encrypt		   ext4, 4.1

       metadata_csum_seed  ext4, 4.4

       project		   ext4, 4.5

       ea_inode		   ext4, 4.13

       large_dir	   ext4, 4.13

       casefold		   ext4, 5.2

       verity		   ext4, 5.4

       stable_inodes	   ext4, 5.5

SEE ALSO
       mke2fs(8),  mke2fs.conf(5),  e2fsck(8),	dumpe2fs(8),  tune2fs(8),  de-
       bugfs(8), mount(8), chattr(1)

E2fsprogs version 1.46.4	  August 2021			       EXT4(5)

NAME | DESCRIPTION | FILE SYSTEM FEATURES | MOUNT OPTIONS | Mount options for ext2 | Mount options for ext3 | Mount options for ext4 | FILE ATTRIBUTES | KERNEL SUPPORT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ext4&sektion=5&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help