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

FreeBSD Manual Pages


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

       tune2fs	-  adjust  tunable  filesystem	parameters  on	ext2/ext3/ext4

       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	 reserved-blocks-count	] [ -u user ] [	-g group ] [ -C	mount-
       count ] [ -E extended-options ] [ -L volume-label ] [ -M	 last-mounted-
       directory  ]  [	-O [^]feature[,...]  ] [ -Q quota-options ] [ -T time-
       last-checked ] [	-U UUID	] [ -z undo_file ] device

       tune2fs allows the  system  administrator  to  adjust  various  tunable
       filesystem  parameters  on  Linux ext2, ext3, or	ext4 filesystems.  The
       current values 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).

       -c max-mount-counts
	      Adjust  the  number of mounts after which	the filesystem will be
	      checked by e2fsck(8).  If	max-mount-counts is 0 or -1, the  num-
	      ber  of  times  the filesystem is	mounted	will be	disregarded by
	      e2fsck(8)	and the	kernel.

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

	      Mount-count-dependent checking is	disabled by default  to	 avoid
	      unanticipated long reboots while e2fsck does its work.  However,
	      you may wish to consider the consequences	 of  disabling	mount-
	      count-dependent  checking	 entirely.   Bad  disk drives, cables,
	      memory, and kernel bugs could all	corrupt	a  filesystem  without
	      marking  the  filesystem	dirty  or  in error.  If you are using
	      journaling on your filesystem, your  filesystem  will  never  be
	      marked  dirty, so	it will	not normally be	checked.  A filesystem
	      error detected by	the kernel will	still force  an	 fsck  on  the
	      next reboot, but it may already be too late to prevent data loss
	      at that point.

	      See also the -i option for time-dependent	checking.

       -C mount-count
	      Set the number of	times the filesystem 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 filesystem at  the  next

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

		   continue    Continue	normal execution.

		   remount-ro  Remount filesystem read-only.

		   panic       Cause a kernel panic.

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

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

			  Adjust  the  initial MMP update interval to interval
			  seconds.  Specifying an interval of 0	means  to  use
			  the  default	interval.  The specified interval must
			  be less than 300 seconds.   Requires	that  the  mmp
			  feature be enabled.

			  Configure  the  filesystem  for  a  RAID  array with
			  stride-size filesystem blocks. This is the number of
			  blocks read or written to disk before	moving to next
			  disk.	This mostly affects  placement	of  filesystem
			  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 alloca-

			  Configure the	 filesystem  for  a  RAID  array  with
			  stripe-width	filesystem  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.

			  Set the default hash algorithm used for  filesystems
			  with	hashed	b-tree	directories.  Valid algorithms
			  accepted are:	legacy,	half_md4, and tea.

			  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	previ-
			  ously	enabled.

			  Define parameters for	file name  character  encoding
			  operations.  If a flag is not	changed	using this pa-
			  rameter, its default value is	used.	encoding-flags
			  should be a comma-separated lists of flags to	be en-
			  abled.  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.

			  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
			  bitmask-based	default	options, and  then  parse  the
			  mount_option_string,	before	parsing	 the mount op-
			  tions	passed from the	mount(8) program.

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

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

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

			  Clear	the test_fs flag,  indicating  the  filesystem
			  should   only	  be  mounted  using  production-level
			  filesystem code.

       -f     Force the	tune2fs	operation to complete even in the face of  er-
	      rors.   This  option  is	useful	when  removing the has_journal
	      filesystem feature from a	filesystem which has an	external jour-
	      nal  (or	is  corrupted such that	it appears to have an external
	      journal),	but that external journal is not available.    If  the
	      filesystem  appears  to require journal replay, the -f flag must
	      be specified twice to proceed.

	      WARNING: Removing	an external journal from  a  filesystem	 which
	      was  not	cleanly	unmounted without first	replaying the external
	      journal can result in severe data	loss  and  filesystem  corrup-

       -g group
	      Set the group which can use the reserved filesystem 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 filesystem checks.  No  suf-
	      fix  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-dependent checking.

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

       -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	opera-
	      tion can also take a while and the file system can be  corrupted
	      and  data	 lost if it is interrupted while in the	middle of con-
	      verting the file system.	Backing	 up  the  file	system	before
	      changing inode size is recommended.

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

       -j     Add  an ext3 journal to the filesystem.  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 filesys-
	      tem) stored within the filesystem.  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 filesys-
	      tem,  an	immutable  file, .journal, will	be created in the top-
	      level directory of the filesystem, as it is the only safe	way to
	      create the journal inode while the filesystem is mounted.	 While
	      the ext3 journal is visible, it is not safe  to  delete  it,  or
	      modify  it  while	the filesystem is mounted; for this reason the
	      file is marked immutable.	 While checking	unmounted filesystems,
	      e2fsck(8)	 will automatically move .journal files	to the invisi-
	      ble, reserved journal inode.  For	all filesystems	except for the
	      root filesystem,	this should happen automatically and naturally
	      during the next reboot cycle.   Since  the  root	filesystem  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
	      filesystem to ext3 if the	/etc/fstab  file  specifies  the  ext3
	      filesystem  for  the root	filesystem in order to avoid requiring
	      the use of a rescue floppy to add	an ext3	journal	 to  the  root

       -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:

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

			  Specify  the	location of the	journal.  The argument
			  journal-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.

			  Attach  the  filesystem  to the journal block	device
			  located 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 filesystems which will	be us-
			  ing it.  In addition,	while there is support for at-
			  taching multiple filesystems to  a  single  external
			  journal,  the	Linux kernel and e2fsck(8) do not cur-
			  rently support shared	external journals yet.

			  Instead of specifying	a device name directly,	exter-
			  nal-journal  can  also  be  specified	 by either LA-
			  BEL=label or UUID=UUID to locate the external	 jour-
			  nal 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 la-
			  bel and UUID.	 See also the -L option	of tune2fs(8).

	      Only one of the size or  device  options	can  be	 given	for  a

       -l     List  the	 contents  of the filesystem superblock, including the
	      current values of	the parameters that can	be set via  this  pro-

       -L volume-label
	      Set  the volume label of the filesystem.	Ext2 filesystem	labels
	      can be at	most 16	characters long;  if  volume-label  is	longer
	      than  16	characters, tune2fs will truncate it and print a warn-
	      ing.  The	volume label can be used  by  mount(8),	 fsck(8),  and
	      /etc/fstab(5)  (and possibly others) by specifying LABEL=volume-
	      label instead of a block special device name like	/dev/hda5.

       -m reserved-blocks-percentage
	      Set the percentage of the	filesystem which may only be allocated
	      by  privileged  processes.   Reserving some number of filesystem
	      blocks for use by	privileged processes is	done to	avoid filesys-
	      tem  fragmentation,  and	to  allow system daemons, such as sys-
	      logd(8), to continue to function correctly after	non-privileged
	      processes	 are  prevented	 from writing to the filesystem.  Nor-
	      mally, the default percentage of reserved	blocks is 5%.

       -M last-mounted-directory
	      Set the last-mounted directory for the filesystem.

       -o [^]mount-option[,...]
	      Set or clear the indicated default mount options in the filesys-
	      tem.   Default  mount options can	be overridden by mount options
	      specified	either in /etc/fstab(5)	or on the command  line	 argu-
	      ments  to	mount(8).  Older kernels may not support this feature;
	      in particular, kernels which predate  2.4.20  will  almost  cer-
	      tainly ignore the	default	mount options field in the superblock.

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

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

		   debug  Enable debugging code	for this filesystem.

			  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 current process, unless the	direc-
			  tory 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.

			  Enable user-specified	extended attributes.

		   acl	  Enable Posix Access Control Lists.

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

			  When the filesystem is mounted with journalling  en-
			  abled,  all  data  (not  just	metadata) is committed
			  into the journal prior to  being  written  into  the
			  main filesystem.

			  When	the filesystem is mounted with journalling en-
			  abled, all data is forced directly out to  the  main
			  file system prior to its metadata being committed to
			  the journal.

			  When the filesystem is mounted with journalling  en-
			  abled,  data may be written into the main filesystem
			  after	its metadata has been committed	to  the	 jour-
			  nal.	 This may increase throughput, however,	it may
			  allow	old data to appear in files after a crash  and
			  journal recovery.

			  The  file system will	be mounted with	barrier	opera-
			  tions	in the journal disabled.  (This	option is cur-
			  rently only supported	by the ext4 file system	driver
			  in 2.6.35+ kernels.)

			  The file system will be mounted with	the  block_va-
			  lidity  option enabled, which	causes extra checks to
			  be performed after reading or	writing	from the  file
			  system.   This  prevents  corrupted  metadata	blocks
			  from causing file system damage by overwriting parts
			  of the inode table or	block group descriptors.  This
			  comes	at the cost of increased memory	and CPU	 over-
			  head,	 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.)

			  The  file  system  will  be mounted with the discard
			  mount	option.	  This	will  cause  the  file	system
			  driver to attempt to use the trim/discard feature of
			  some storage devices (such as	SSD's and  thin-provi-
			  sioned  drives  available in some enterprise storage
			  arrays) to inform the	storage	device that blocks be-
			  longing  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.)

			  The  file system will	be mounted with	the nodelalloc
			  mount	option.	 This will disable the delayed alloca-
			  tion	feature.   (This option	is currently only sup-
			  ported by the	ext4 file  system  driver  in  2.6.35+

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

	      The following filesystem features	can be set  or	cleared	 using

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

			  Enable support for file  system  level  casefolding.
			  Tune2fs   currently	only   supports	 setting  this
			  filesystem feature.

			  Use hashed b-trees to	speed up lookups for large di-

			  Allow	more than 65000	subdirectories per directory.

			  Allow	 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 num-
			  ber of extended attributes per file.	 Tune2fs  cur-
			  rently  only	supports  setting this filesystem fea-

			  Enable support for  file  system  level  encryption.
			  Tune2fs   currently	only   supports	 setting  this
			  filesystem feature.

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

			  Enable the extended inode fields used	by ext4.

			  Store	file type information in directory entries.

			  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 allocation bitmaps, as mke2fs(8) will do when it
			  creates a freshly formatted file system with flex_bg

			  Use  a journal to ensure filesystem consistency even
			  across unclean shutdowns.   Setting  the  filesystem
			  feature is equivalent	to using the -j	option.

			  Increase the limit on	the number of files per	direc-
			  tory.	 Tune2fs currently only	supports setting  this
			  filesystem feature.

			  Support files	larger than 2 terabytes	in size.

			  Filesystem  can  contain files that are greater than

			  Store	a checksum to protect  the  contents  in  each
			  metadata block.

			  Allow	 the filesystem	to store the metadata checksum
			  seed in the superblock, enabling  the	 administrator
			  to  change  the UUID of a filesystem using the meta-
			  data_csum feature while it is	mounted.

		   mmp	  Enable or disable multiple  mount  protection	 (MMP)

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

		   quota  Enable internal file system quota inodes.

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

			  Reserve space	so the block  group  descriptor	 table
			  may  grow  in	 the  future.	Tune2fs	 only supports
			  clearing this	filesystem feature.

			  Limit	the number of backup superblocks to save space
			  on  large  filesystems.  Tune2fs currently only sup-
			  ports	setting	this filesystem	feature.

			  Allow	the kernel to initialize bitmaps and inode ta-
			  bles	lazily,	 and  to keep a	high watermark for the
			  unused inodes	in a filesystem, to  reduce  e2fsck(8)
			  time.	 The first e2fsck run after enabling this fea-
			  ture 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
			  currently only supports setting this filesystem fea-

	      After setting or clearing	sparse_super, uninit_bg, filetype,  or
	      resize_inode  filesystem	features,  the file system may require
	      being checked using e2fsck(8) to return the filesystem to	a con-
	      sistent state.  Tune2fs will print a message requesting that the
	      system administrator 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
	      filesystem  features  may	 prevent  the  filesystem  from	 being
	      mounted by kernels which do not support those features.  In par-
	      ticular,	the  uninit_bg and flex_bg features are	only supported
	      by the ext4 filesystem.

       -r reserved-blocks-count
	      Set the number of	reserved filesystem 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:

			  Sets/clears user quota inode in the superblock.

			  Sets/clears group quota inode	in the superblock.

			  Sets/clears project quota inode in the superblock.

       -T time-last-checked
	      Set the time the filesystem 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  consistent snapshot of a	filesystem, and	then check the
	      filesystem during	off hours to make sure	it  hasn't  been  cor-
	      rupted  due  to  hardware	 problems, etc.	 If the	filesystem was
	      clean, then this option can be used to set the last checked time
	      on  the original filesystem.  The	format of time-last-checked is
	      the international	date format, 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

       -u user
	      Set  the	user who can use the reserved filesystem 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

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

		   clear  clear	the filesystem 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 randomly-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-device.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.

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

       tune2fs was written by Remy Card	 <>.	  It  is  cur-
       rently being maintained by Theodore Ts'o	<>.  tune2fs
       uses the	ext2fs library written by Theodore Ts'o	<>.  This
       manual  page  was  written  by  Christian Kuhtz <chk@data-hh.Hanse.DE>.
       Time-dependent checking was added by Uwe	Ohse <>.

       tune2fs is  part	 of  the  e2fsprogs  package  and  is  available  from

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

E2fsprogs version 1.45.7	 January 2021			    TUNE2FS(8)


Want to link to this manual page? Use this URL:

home | help