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

FreeBSD Manual Pages

  
 
  

home | help
TUNE2FS(8)		     System Manager's Manual		      TUNE2FS(8)

NAME
     tune2fs - adjust tunable file system parameters on ext2/ext3/ext4 file sys-
     tems

SYNOPSIS
     tune2fs  [  -l ] [ -c max-mount-counts ] [ -e errors-behavior ] [ -f ] [ -i
     interval-between-checks ] [ -I new_inode_size ] [ -j ] [ -J journal-options
     ] [ -m reserved-blocks-percentage ] [ -o [^]mount-options[,...]  ] [ -r re-
     served-blocks-count ] [ -u user ] [ -g group ] [ -C mount-count ] [ -E  ex-
     tended-options  ]	[  -L  volume-label ] [ -M last-mounted-directory ] [ -O
     [^]feature[,...]  ] [ -Q quota-options ] [ -T time-last-checked ] [ -U UUID
     ] [ -z undo_file ] device

DESCRIPTION
     tune2fs allows the system administrator to adjust various tunable file sys-
     tem parameters on Linux ext2, ext3, or ext4 file systems.	The current val-
     ues of these options can be displayed by using the -l option to  tune2fs(8)
     program, or by using the dumpe2fs(8) program.

     The device specifier can either be a filename (i.e., /dev/sda1), or a LABEL
     or  UUID specifier: "LABEL=volume-label" or "UUID=uuid".  (i.e., LABEL=home
     or UUID=e40486c6-84d5-4f2f-b99c-032281799c9d).

OPTIONS
     -c max-mount-counts
	    Adjust the number of mounts after which  the  file	system	will  be
	    checked  by  e2fsck(8).  If max-mount-counts is the string "random",
	    tune2fs will use a random value between 20 and  40.   If  max-mount-
	    counts  is	0  or -1, the number of times the file system is mounted
	    will be disregarded by e2fsck(8) and the kernel.

	    Staggering the mount-counts  at  which  file  systems  are	forcibly
	    checked  will  avoid all file systems being checked at one time when
	    using journaled file systems.

	    Mount-count-dependent checking is disabled by default to avoid unan-
	    ticipated long reboots while e2fsck(8) does its work.   If	you  are
	    concerned about file system corruptions caused by potential hardware
	    problems  of  kernel bugs, a better solution than mount-count-depen-
	    dent checking is to use the e2scrub(8) program.  This  does  require
	    placing the file system on an LVM volume, however.

     -C mount-count
	    Set the number of times the file system has been mounted.  If set to
	    a  greater	value  than the max-mount-counts parameter set by the -c
	    option, e2fsck(8) will check the file system at the next reboot.

     -e error-behavior
	    Change the behavior of the kernel code when errors are detected.  In
	    all cases, a file system error will cause  e2fsck(8)  to  check  the
	    file system on the next boot.  error-behavior can be one of the fol-
	    lowing:

		 continue    Continue normal execution.

		 remount-ro  Remount file system read-only.

		 panic	     Cause a kernel panic.

     -E extended-options
	    Set  extended  options  for  the  file system.  Extended options are
	    comma separated, and may take an argument  using  the  equals  ('=')
	    sign.  The following extended options are supported:

		 clear_mmp
			Reset  the  MMP  block (if any) back to the clean state.
			Use only if absolutely certain the device  is  not  cur-
			rently	mounted  or  being  fscked, or major file system
			corruption can result.	Needs -f.

		 encoding=encoding-name
			Enable the casefold feature in the super block	and  set
			encoding-name  as the encoding to be used.  If encoding-
			name is not specified, "utf8"  is  used.   The	encoding
			cannot be altered if casefold was previously enabled.

		 encoding_flags=encoding-flags
			Define parameters for file name character encoding oper-
			ations.   If a flag is not changed using this parameter,
			its default value is used.  encoding-flags should  be  a
			comma-separated lists of flags to be enabled.  The flags
			cannot be altered if casefold was previously enabled.

			The  only flag that can be set right now is strict which
			means that invalid strings should  be  rejected  by  the
			file  system.	In the default configuration, the strict
			flag is disabled.

		 force_fsck
			Set a flag in the file system superblock indicating that
			errors have been found.  This will force fsck to run  at
			the next mount.

		 hash_alg=hash-alg
			Set  the  default  hash  algorithm used for file systems
			with hashed b-tree directories.   Valid  algorithms  ac-
			cepted are: legacy, half_md4, and tea.

		 mmp_update_interval=interval
			Adjust	the initial MMP update interval to interval sec-
			onds.  Specifying an interval of 0 means to use the  de-
			fault  interval.   The	specified  interval must be less
			than 300 seconds.  Requires that the mmp feature be  en-
			abled.

		 mount_opts=mount_option_string
			Set  a	set  of default mount options which will be used
			when the file system is mounted.   Unlike  the	bitmask-
			based  default mount options which can be specified with
			the  -o  option,  mount_option_string  is  an  arbitrary
			string	with  a  maximum  length  of  63 bytes, which is
			stored in the superblock.

			The ext4 file system driver will first	apply  the  bit-
			mask-based default options, and then parse the mount_op-
			tion_string,  before  parsing  the  mount options passed
			from the mount(8) program.

			This superblock setting is only honored in 2.6.35+  ker-
			nels;  and  not  at all by the ext2 and ext3 file system
			drivers.

		 orphan_file_size=size
			Set size of the file for  tracking  unlinked  but  still
			open  inodes  and  inodes  with  truncate  in  progress.
			Larger file allows for better scalability,  reserving  a
			few blocks per CPU is ideal.

		 stride=stride-size
			Configure  the file system for a RAID array with stride-
			size file system blocks.  This is the number  of  blocks
			read  or  written  to  disk  before moving to next disk.
			This mostly affects placement of  file	system	metadata
			like  bitmaps at mke2fs(8) time to avoid placing them on
			a single disk, which can hurt the performance.	 It  may
			also be used by block allocator.

		 stripe_width=stripe-width
			Configure  the file system for a RAID array with stripe-
			width file system blocks per stripe.  This is  typically
			be  stride-size * N, where N is the number of data disks
			in the RAID (e.g. RAID 5 N+1, RAID 6 N+2).  This  allows
			the  block allocator to prevent read-modify-write of the
			parity in a RAID stripe if possible  when  the	data  is
			written.

		 test_fs
			Set a flag in the file system superblock indicating that
			it  may  be mounted using experimental kernel code, such
			as the ext4dev file system.

		 ^test_fs
			Clear the  test_fs  flag,  indicating  the  file  system
			should	only be mounted using production-level file sys-
			tem code.

     -f     Force the tune2fs operation to complete even in the face of  errors.
	    This option is useful when removing the has_journal file system fea-
	    ture  from	a  file system which has an external journal (or is cor-
	    rupted such that it appears to have an external journal),  but  that
	    external  journal  is  not available.  If the file system appears to
	    require journal replay, the -f flag must be specified twice to  pro-
	    ceed.

	    Warning:  Removing	an external journal from a file system which was
	    not cleanly unmounted without first replaying the  external  journal
	    can result in severe data loss and file system corruption.

     -g group
	    Set  the  group  which can use the reserved file system blocks.  The
	    group parameter can be a numerical gid or a group name.  If a  group
	    name  is  given,  it  is  converted  to a numerical gid before it is
	    stored in the superblock.

     -i  interval-between-checks[d|m|w]
	    Adjust the maximal time between two file system checks.   No  suffix
	    or d will interpret the number interval-between-checks as days, m as
	    months,  and  w as weeks.  A value of zero will disable the time-de-
	    pendent checking.

	    There are pros and cons to disabling these periodic checks; see  the
	    discussion under the -c (mount-count-dependent check) option for de-
	    tails.

     -I     Change  the  inode	size  used  by	the  file system.  This requires
	    rewriting the inode table, so it requires that the	file  system  is
	    checked  for  consistency first using e2fsck(8).  This operation can
	    also take a while and the file system can be corrupted and data lost
	    if it is interrupted while in the middle of converting the file sys-
	    tem.  Backing up the file system before changing inode size is  rec-
	    ommended.

	    File  systems  with  an inode size of 128 bytes do not support time-
	    stamps beyond January 19, 2038.   Inodes  which  are  256  bytes  or
	    larger will support extended timestamps, project id's, and the abil-
	    ity  to  store  some  extended attributes in the inode table for im-
	    proved performance.

     -j     Add an ext3 journal to the file system.  If the  -J  option  is  not
	    specified,	the default journal parameters will be used to create an
	    appropriately sized journal (given the  size  of  the  file  system)
	    stored within the file system.  Note that you must be using a kernel
	    which has ext3 support in order to actually make use of the journal.

	    If this option is used to create a journal on a mounted file system,
	    an immutable file, .journal, will be created in the top-level direc-
	    tory  of  the  file system, as it is the only safe way to create the
	    journal inode while the file system  is  mounted.	While  the  ext3
	    journal  is visible, it is not safe to delete it, or modify it while
	    the file system is mounted; for this reason the file is  marked  im-
	    mutable.   While checking unmounted file systems, e2fsck(8) will au-
	    tomatically move .journal files to the invisible,  reserved  journal
	    inode.   For all file systems except for the root file system,  this
	    should happen automatically and naturally during the next reboot cy-
	    cle.  Since the root file system  is  mounted  read-only,  e2fsck(8)
	    must be run from a rescue floppy in order to effect this transition.

	    On	some  distributions,  such  as	Debian, if an initial ramdisk is
	    used, the initrd scripts will automatically  convert  an  ext2  root
	    file  system  to  ext3  if the /etc/fstab(5) file specifies the ext3
	    file system for the root file system in order to avoid requiring the
	    use of a rescue floppy to add an ext3 journal to the root file  sys-
	    tem.

     -J journal-options
	    Override  the  default ext3 journal parameters.  Journal options are
	    comma separated, and may take an argument  using  the  equals  ('=')
	    sign.  The following journal options are supported:

		 device=external-journal
			Attach	the  file system to the journal block device lo-
			cated on external-journal.  The  external  journal  must
			have been already created using the command

			mke2fs -O journal_dev external-journal

			Note  that  external-journal  must be formatted with the
			same block size as file systems which will be using  it.
			In addition, while there is support for attaching multi-
			ple file systems to a single external journal, the Linux
			kernel and e2fsck(8) do not currently support shared ex-
			ternal journals yet.

			Instead  of specifying a device name directly, external-
			journal can also be specified by either  LABEL=label  or
			UUID=UUID  to  locate the external journal by either the
			volume label or UUID stored in the  ext2  superblock  at
			the  start of the journal.  Use dumpe2fs(8) to display a
			journal device's volume label and UUID.  See also the -L
			option of tune2fs(8).

		 fast_commit_size=fast-commit-size
			Create an additional fast commit journal  area	of  size
			fast-commit-size  kilobytes.   This option is only valid
			if fast_commit feature is enabled on  the  file  system.
			If  this option is not specified and if fast_commit fea-
			ture is turned on, fast commit	area  size  defaults  to
			journal-size  /  64  megabytes.   The  total size of the
			journal with fast_commit feature set is journal-size + (
			fast-commit-size * 1024 ) megabytes.  The total  journal
			size  may  be no more than 10,240,000 file system blocks
			or  half  the  total  file  system  size  (whichever  is
			smaller).

		 location=journal-location
			Specify the location of the journal.  The argument jour-
			nal-location  can either be specified as a block number,
			or if the number has a units  suffix  (e.g.,  'M',  'G',
			etc.)  interpret  it as the offset from the beginning of
			the file system.

		 size=journal-size
			Create a journal stored in the file system of size jour-
			nal-size megabytes.  The size of the journal must be  at
			least  1024  file system blocks (i.e., 1 MiB if using 1k
			blocks, 4 MiB if using 4k blocks, etc.)  and may  be  no
			more  than 10,240,000 file system blocks.  There must be
			enough free space in the file system to create a journal
			of that size.

	    Only one of the size or device options can be given for a file  sys-
	    tem.

     -l     List  the contents of the file system superblock, including the cur-
	    rent values of the parameters that can be set via this program.

     -L volume-label
	    Set the volume label of the file system.  Ext2  file  system  labels
	    can be at most 16 characters long; if volume-label is longer than 16
	    characters, tune2fs will truncate it and print a warning.  For other
	    file  systems that support online label manipulation and are mounted
	    tune2fs will work as well, but it will not attempt to  truncate  the
	    volume-label  at  all.   The  volume  label can be used by mount(8),
	    fsck(8), and /etc/fstab(5) (and possibly others) by  specifying  LA-
	    BEL=volume-label  instead  of  a  block  special  device  name  like
	    /dev/hda5.

     -m reserved-blocks-percentage
	    Set the percentage of the file system which may only be allocated by
	    privileged processes.  Reserving some number of file  system  blocks
	    for  use  by privileged processes is done to avoid file system frag-
	    mentation, and to allow system daemons, such as syslogd(8), to  con-
	    tinue  to function correctly after non-privileged processes are pre-
	    vented from writing to the file system.  Normally, the default  per-
	    centage of reserved blocks is 5%.

     -M last-mounted-directory
	    Set the last-mounted directory for the file system.

     -o [^]mount-option[,...]
	    Set or clear the indicated default mount options in the file system.
	    Default  mount  options can be overridden by mount options specified
	    either  in	/etc/fstab(5)  or  on  the  command  line  arguments  to
	    mount(8).	Older  kernels may not support this feature; in particu-
	    lar, kernels which predate 2.4.20 will almost certainly  ignore  the
	    default mount options field in the superblock.

	    More  than one mount option can be cleared or set by separating fea-
	    tures with commas.	Mount options prefixed with  a	caret  character
	    ('^') will be cleared in the file system's superblock; mount options
	    without  a	prefix character or prefixed with a plus character ('+')
	    will be added to the file system.

	    The following mount options can be set or cleared using tune2fs:

		 debug	Enable debugging code for this file system.

		 bsdgroups
			Emulate BSD behavior when creating new files: they  will
			take  the  group-id  of the directory in which they were
			created.  The standard System V behavior is the default,
			where newly created files take on the fsgid of the  cur-
			rent  process,	unless	the directory has the setgid bit
			set, in which case it takes the gid from the parent  di-
			rectory, and also gets the setgid bit set if it is a di-
			rectory itself.

		 user_xattr
			Enable user-specified extended attributes.

		 acl	Enable Posix Access Control Lists.

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

		 journal_data
			When the file system is mounted with journaling enabled,
			all data (not just metadata) is committed into the jour-
			nal prior to being written into the main file system.

		 journal_data_ordered
			When the file system is mounted with journaling enabled,
			all  data is forced directly out to the main file system
			prior to its metadata being committed to the journal.

		 journal_data_writeback
			When the file system is mounted with journaling enabled,
			data may be written into the main file system after  its
			metadata  has  been  committed to the journal.	This may
			increase throughput, however, it may allow old	data  to
			appear in files after a crash and journal recovery.

		 nobarrier
			The  file system will be mounted with barrier operations
			in the journal disabled.  (This option is currently only
			supported by the ext4 file system driver in 2.6.35+ ker-
			nels.)

		 block_validity
			The file system will be mounted with the  block_validity
			option	enabled,  which  causes  extra checks to be per-
			formed after reading or writing from  the  file  system.
			This  prevents	corrupted  metadata  blocks from causing
			file system damage by overwriting parts of the inode ta-
			ble or block group descriptors.  This comes at the  cost
			of  increased  memory and CPU overhead, so it is enabled
			only for debugging purposes.  (This option is  currently
			only supported by the ext4 file system driver in 2.6.35+
			kernels.)

		 discard
			The  file  system will be mounted with the discard mount
			option.  This will cause the file system driver  to  at-
			tempt  to  use	the trim/discard feature of some storage
			devices  (such	as  SSD's  and	thin-provisioned  drives
			available  in  some enterprise storage arrays) to inform
			the storage device  that  blocks  belonging  to  deleted
			files can be reused for other purposes.  (This option is
			currently  only supported by the ext4 file system driver
			in 2.6.35+ kernels.)

		 nodelalloc
			The file system will  be  mounted  with  the  nodelalloc
			mount  option.	This will disable the delayed allocation
			feature.  (This option is currently  only  supported  by
			the ext4 file system driver in 2.6.35+ kernels.)

     -O [^]feature[,...]
	    Set  or  clear  the  indicated file system features (options) in the
	    file system.  More than one file system feature can  be  cleared  or
	    set  by  separating features with commas.  File System features pre-
	    fixed with a caret character ('^') will be cleared in the file  sys-
	    tem's superblock; file system features without a prefix character or
	    prefixed  with a plus character ('+') will be added to the file sys-
	    tem.  For a detailed description of the file system features, please
	    see the man page ext4(5).

	    The following file system features	can  be  set  or  cleared  using
	    tune2fs:

		 64bit	Enable the file system to be larger than 2^32 blocks.

		 casefold
			Enable	support  for file system level casefolding.  The
			option can be cleared only if filesystem has no directo-
			ries with F attribute.

		 dir_index
			Use hashed b-trees to speed up lookups for large  direc-
			tories.

		 dir_nlink
			Allow more than 65000 subdirectories per directory.

		 ea_inode
			Allow  the value of each extended attribute to be placed
			in the data blocks of a separate inode if necessary, in-
			creasing the limit on the size and  number  of	extended
			attributes  per  file.	 tune2fs currently only supports
			setting this file system feature.

		 encrypt
			Enable	support  for  file  system   level   encryption.
			tune2fs currently only supports setting this file system
			feature.

		 extent
			Enable	the use of extent trees to store the location of
			data blocks in inodes.	tune2fs currently only	supports
			setting this file system feature.

		 extra_isize
			Enable the extended inode fields used by ext4.

		 filetype
			Store file type information in directory entries.

		 flex_bg
			Allow  bitmaps	and inode tables for a block group to be
			placed anywhere on the storage media.  tune2fs will  not
			reorganize  the location of the inode tables and alloca-
			tion bitmaps, as mke2fs(8) will do  when  it  creates  a
			freshly formatted file system with flex_bg enabled.

		 has_journal
			Use  a	journal  to  ensure file system consistency even
			across unclean shutdowns.  Setting the file system  fea-
			ture is equivalent to using the -j option.

		 fast_commit
			Enable	fast  commit journaling feature to improve fsync
			latency.

		 large_dir
			Increase the limit on the number of files per directory.
			tune2fs currently only supports setting this file system
			feature.

		 huge_file
			Support files larger than 2 terabytes in size.

		 large_file
			File System can contain  files	that  are  greater  than
			2 GiB.

		 metadata_csum
			Store  a  checksum to protect the contents in each meta-
			data block.

		 metadata_csum_seed
			Allow the file system to  store  the  metadata	checksum
			seed  in  the  superblock, enabling the administrator to
			change the UUID of a file system using the metadata_csum
			feature while it is mounted.

		 mmp	Enable or disable multiple mount protection  (MMP)  fea-
			ture.

		 orphan_file
			Store  the  list of orphan inodes in multiple blocks in-
			stead of a single linked-list to avoid potential  scala-
			bility	bottlenecks  for  workloads that perform a large
			number of file truncations or extensions in parallel.

		 project
			Enable project ID tracking.  This is  used  for  project
			quota tracking.

		 quota	Enable internal file system quota inodes.

		 read-only
			Force the kernel to mount the file system read-only.

		 resize_inode
			Reserve  space	so  the block group descriptor table may
			grow in the future.  tune2fs only supports clearing this
			file system feature.

		 sparse_super
			Limit the number of backup superblocks to save space  on
			large  file  systems.	tune2fs  currently only supports
			setting this file system feature.

		 stable_inodes
			Prevent the file system from being shrunk or having  its
			UUID  changed,	in order to allow the use of specialized
			encryption settings that make use of the  inode  numbers
			and  UUID.  tune2fs currently only supports setting this
			file system feature.

		 uninit_bg
			Allow the kernel to initialize bitmaps and inode  tables
			lazily,  and to keep a high watermark for the unused in-
			odes in a file system, to reduce  e2fsck(8)  time.   The
			first  e2fsck(8)  run  after  enabling this feature will
			take the full time, but subsequent e2fsck(8)  runs  will
			take  only a fraction of the original time, depending on
			how full the file system is.

		 verity
			Enable support for verity protected files.  tune2fs cur-
			rently only supports setting this file system feature.

	    After setting or clearing sparse_super, uninit_bg, filetype, or  re-
	    size_inode	file  system features, the file system may require being
	    checked using e2fsck(8) to return the file system  to  a  consistent
	    state.   tune2fs will print a message requesting that the system ad-
	    ministrator run e2fsck(8) if necessary.  After setting the dir_index
	    feature, e2fsck -D can be run to convert existing directories to the
	    hashed B-tree format.  Enabling certain  file  system  features  may
	    prevent  the  file system from being mounted by kernels which do not
	    support those features.  In particular, the  uninit_bg  and  flex_bg
	    features are only supported by the ext4 file system.

     -r reserved-blocks-count
	    Set the number of reserved file system blocks.

     -Q quota-options
	    Sets  the  quota  feature  on  the superblock and works on the quota
	    files for the given quota type.  Quota options could be one or  more
	    of the following:

		 [^]usrquota
			Sets/clears user quota inode in the superblock.

		 [^]grpquota
			Sets/clears group quota inode in the superblock.

		 [^]prjquota
			Sets/clears project quota inode in the superblock.

     -T time-last-checked
	    Set  the  time  the  file system was last checked using e2fsck.  The
	    time is interpreted using the current (local) timezone.  This can be
	    useful in scripts which use a Logical Volume Manager to make a  con-
	    sistent  snapshot  of  a file system, and then check the file system
	    during off hours to make sure it hasn't been corrupted due to  hard-
	    ware  problems, etc.  If the file system was clean, then this option
	    can be used to set the last checked time on the original  file  sys-
	    tem.  The format of time-last-checked is the international date for-
	    mat,  with	an  optional time specifier, i.e.  YYYYMMDD[HH[MM[SS]]].
	    The keyword now is also accepted, in which	case  the  last  checked
	    time will be set to the current time.

     -u user
	    Set  the user who can use the reserved file system blocks.	user can
	    be a numerical uid or a user name.	If a user name is given,  it  is
	    converted to a numerical uid before it is stored in the superblock.

     -U UUID
	    Set  the  universally unique identifier (UUID) of the file system to
	    UUID.  The format of the UUID is a series of hex digits separated by
	    hyphens,  like  this:  "c1b9d5a2-f162-11cf-9ece-0020afc76f16".   The
	    UUID parameter may also be one of the following:

		 clear	clear the file system UUID

		 random
			generate a new randomly-generated UUID

		 time	generate a new time-based UUID

	    The  UUID  may  be used by mount(8), fsck(8), and /etc/fstab(5) (and
	    possibly others) by specifying UUID=uuid instead of a block  special
	    device name like /dev/hda1.

	    See  uuidgen(8) for more information.  If the system does not have a
	    good random number generator such as  /dev/random  or  /dev/urandom,
	    tune2fs  will  automatically use a time-based UUID instead of a ran-
	    domly-generated UUID.

     -z undo_file
	    Before overwriting a file system block, write the  old  contents  of
	    the  block	to  an	undo  file.   This  undo  file	can be used with
	    e2undo(8) to restore the old contents  of  the  file  system  should
	    something  go wrong.  If the empty string is passed as the undo_file
	    argument, the undo file will be written to a file named  tune2fs-de-
	    vice.e2undo  in  the  directory specified via the E2FSPROGS_UNDO_DIR
	    environment variable.

	    WARNING: The undo file cannot be used to recover  from  a  power  or
	    system crash.

BUGS
     We haven't found any bugs yet.  That doesn't mean there aren't any...

AUTHOR
     tune2fs  was  written  by Remy Card <Remy.Card@linux.org>.  It is currently
     being maintained by Theodore Ts'o <tytso@alum.mit.edu>.  tune2fs  uses  the
     ext2fs  library written by Theodore Ts'o <tytso@mit.edu>.	This manual page
     was written  by  Christian  Kuhtz	<chk@data-hh.Hanse.DE>.   Time-dependent
     checking was added by Uwe Ohse <uwe@tirka.gun.de>.

AVAILABILITY
     tune2fs   is   part   of  the  e2fsprogs  package	and  is  available  from
     http://e2fsprogs.sourceforge.net.

SEE ALSO
     debugfs(8), dumpe2fs(8), e2fsck(8), mke2fs(8), ext4(5)

E2fsprogs version 1.47.4	   March 2025			      TUNE2FS(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tune2fs&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help