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 does its work.	If you are  con-
	    cerned  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(2)	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 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 system.

     -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  feature
			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  to-
			tal 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 run after enabling this feature  will  take
			the full time, but subsequent e2fsck 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  '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.3	    July 2025			      TUNE2FS(8)

home | help