1TUNE2FS(8) System Manager's Manual TUNE2FS(8)
2
3
4
6 tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4
7 filesystems
8
10 tune2fs [ -l ] [ -c max-mount-counts ] [ -e errors-behavior ] [ -f ] [
11 -i interval-between-checks ] [ -I new_inode_size ] [ -j ] [ -J journal-
12 options ] [ -m reserved-blocks-percentage ] [ -o [^]mount-options[,...]
13 ] [ -r reserved-blocks-count ] [ -u user ] [ -g group ] [ -C mount-
14 count ] [ -E extended-options ] [ -L volume-label ] [ -M last-mounted-
15 directory ] [ -O [^]feature[,...] ] [ -Q quota-options ] [ -T time-
16 last-checked ] [ -U UUID ] [ -z undo_file ] device
17
19 tune2fs allows the system administrator to adjust various tunable
20 filesystem parameters on Linux ext2, ext3, or ext4 filesystems. The
21 current values of these options can be displayed by using the -l option
22 to tune2fs(8) program, or by using the dumpe2fs(8) program.
23
24 The device specifier can either be a filename (i.e., /dev/sda1), or a
25 LABEL or UUID specifier: "LABEL=volume-label" or "UUID=uuid". (i.e.,
26 LABEL=home or UUID=e40486c6-84d5-4f2f-b99c-032281799c9d).
27
29 -c max-mount-counts
30 Adjust the number of mounts after which the filesystem will be
31 checked by e2fsck(8). If max-mount-counts is the string "ran‐
32 dom", tune2fs will use a random value between 20 and 40. If
33 max-mount-counts is 0 or -1, the number of times the filesystem
34 is mounted will be disregarded by e2fsck(8) and the kernel.
35
36 Staggering the mount-counts at which filesystems are forcibly
37 checked will avoid all filesystems being checked at one time
38 when using journaled filesystems.
39
40 Mount-count-dependent checking is disabled by default to avoid
41 unanticipated long reboots while e2fsck does its work. If you
42 are concerned about file system corruptions caused by potential
43 hardware problems of kernel bugs, a better solution than mount-
44 count-dependent checking is to use the e2scrub(8) program. This
45 does require placing the file system on an LVM volume, however.
46
47 -C mount-count
48 Set the number of times the filesystem has been mounted. If set
49 to a greater value than the max-mount-counts parameter set by
50 the -c option, e2fsck(8) will check the filesystem at the next
51 reboot.
52
53 -e error-behavior
54 Change the behavior of the kernel code when errors are detected.
55 In all cases, a filesystem error will cause e2fsck(8) to check
56 the filesystem on the next boot. error-behavior can be one of
57 the following:
58
59 continue Continue normal execution.
60
61 remount-ro Remount filesystem read-only.
62
63 panic Cause a kernel panic.
64
65 -E extended-options
66 Set extended options for the filesystem. Extended options are
67 comma separated, and may take an argument using the equals ('=')
68 sign. The following extended options are supported:
69
70 clear_mmp
71 Reset the MMP block (if any) back to the clean
72 state. Use only if absolutely certain the device is
73 not currently mounted or being fscked, or major
74 filesystem corruption can result. Needs '-f'.
75
76 mmp_update_interval=interval
77 Adjust the initial MMP update interval to interval
78 seconds. Specifying an interval of 0 means to use
79 the default interval. The specified interval must
80 be less than 300 seconds. Requires that the mmp
81 feature be enabled.
82
83 stride=stride-size
84 Configure the filesystem for a RAID array with
85 stride-size filesystem blocks. This is the number of
86 blocks read or written to disk before moving to next
87 disk. This mostly affects placement of filesystem
88 metadata like bitmaps at mke2fs(2) time to avoid
89 placing them on a single disk, which can hurt the
90 performance. It may also be used by block alloca‐
91 tor.
92
93 stripe_width=stripe-width
94 Configure the filesystem for a RAID array with
95 stripe-width filesystem blocks per stripe. This is
96 typically be stride-size * N, where N is the number
97 of data disks in the RAID (e.g. RAID 5 N+1, RAID 6
98 N+2). This allows the block allocator to prevent
99 read-modify-write of the parity in a RAID stripe if
100 possible when the data is written.
101
102 hash_alg=hash-alg
103 Set the default hash algorithm used for filesystems
104 with hashed b-tree directories. Valid algorithms
105 accepted are: legacy, half_md4, and tea.
106
107 encoding=encoding-name
108 Enable the casefold feature in the super block and
109 set encoding-name as the encoding to be used. If
110 encoding-name is not specified, utf8 is used. The
111 encoding cannot be altered if casefold was previ‐
112 ously enabled.
113
114 encoding_flags=encoding-flags
115 Define parameters for file name character encoding
116 operations. If a flag is not changed using this pa‐
117 rameter, its default value is used. encoding-flags
118 should be a comma-separated lists of flags to be en‐
119 abled. The flags cannot be altered if casefold was
120 previously enabled.
121
122 The only flag that can be set right now is strict
123 which means that invalid strings should be rejected
124 by the file system. In the default configuration,
125 the strict flag is disabled.
126
127 mount_opts=mount_option_string
128 Set a set of default mount options which will be
129 used when the file system is mounted. Unlike the
130 bitmask-based default mount options which can be
131 specified with the -o option, mount_option_string is
132 an arbitrary string with a maximum length of 63
133 bytes, which is stored in the superblock.
134
135 The ext4 file system driver will first apply the
136 bitmask-based default options, and then parse the
137 mount_option_string, before parsing the mount op‐
138 tions passed from the mount(8) program.
139
140 This superblock setting is only honored in 2.6.35+
141 kernels; and not at all by the ext2 and ext3 file
142 system drivers.
143
144 force_fsck
145 Set a flag in the filesystem superblock indicating
146 that errors have been found. This will force fsck
147 to run at the next mount.
148
149 test_fs
150 Set a flag in the filesystem superblock indicating
151 that it may be mounted using experimental kernel
152 code, such as the ext4dev filesystem.
153
154 ^test_fs
155 Clear the test_fs flag, indicating the filesystem
156 should only be mounted using production-level
157 filesystem code.
158
159 -f Force the tune2fs operation to complete even in the face of er‐
160 rors. This option is useful when removing the has_journal
161 filesystem feature from a filesystem which has an external jour‐
162 nal (or is corrupted such that it appears to have an external
163 journal), but that external journal is not available. If the
164 filesystem appears to require journal replay, the -f flag must
165 be specified twice to proceed.
166
167 WARNING: Removing an external journal from a filesystem which
168 was not cleanly unmounted without first replaying the external
169 journal can result in severe data loss and filesystem corrup‐
170 tion.
171
172 -g group
173 Set the group which can use the reserved filesystem blocks. The
174 group parameter can be a numerical gid or a group name. If a
175 group name is given, it is converted to a numerical gid before
176 it is stored in the superblock.
177
178 -i interval-between-checks[d|m|w]
179 Adjust the maximal time between two filesystem checks. No suf‐
180 fix or d will interpret the number interval-between-checks as
181 days, m as months, and w as weeks. A value of zero will disable
182 the time-dependent checking.
183
184 There are pros and cons to disabling these periodic checks; see
185 the discussion under the -c (mount-count-dependent check) option
186 for details.
187
188 -I Change the inode size used by the file system. This requires
189 rewriting the inode table, so it requires that the file system
190 is checked for consistency first using e2fsck(8). This opera‐
191 tion can also take a while and the file system can be corrupted
192 and data lost if it is interrupted while in the middle of con‐
193 verting the file system. Backing up the file system before
194 changing inode size is recommended.
195
196 File systems with an inode size of 128 bytes do not support
197 timestamps beyond January 19, 2038. Inodes which are 256 bytes
198 or larger will support extended timestamps, project id's, and
199 the ability to store some extended attributes in the inode table
200 for improved performance.
201
202 -j Add an ext3 journal to the filesystem. If the -J option is not
203 specified, the default journal parameters will be used to create
204 an appropriately sized journal (given the size of the filesys‐
205 tem) stored within the filesystem. Note that you must be using
206 a kernel which has ext3 support in order to actually make use of
207 the journal.
208
209 If this option is used to create a journal on a mounted filesys‐
210 tem, an immutable file, .journal, will be created in the top-
211 level directory of the filesystem, as it is the only safe way to
212 create the journal inode while the filesystem is mounted. While
213 the ext3 journal is visible, it is not safe to delete it, or
214 modify it while the filesystem is mounted; for this reason the
215 file is marked immutable. While checking unmounted filesystems,
216 e2fsck(8) will automatically move .journal files to the invisi‐
217 ble, reserved journal inode. For all filesystems except for the
218 root filesystem, this should happen automatically and naturally
219 during the next reboot cycle. Since the root filesystem is
220 mounted read-only, e2fsck(8) must be run from a rescue floppy in
221 order to effect this transition.
222
223 On some distributions, such as Debian, if an initial ramdisk is
224 used, the initrd scripts will automatically convert an ext2 root
225 filesystem to ext3 if the /etc/fstab file specifies the ext3
226 filesystem for the root filesystem in order to avoid requiring
227 the use of a rescue floppy to add an ext3 journal to the root
228 filesystem.
229
230 -J journal-options
231 Override the default ext3 journal parameters. Journal options
232 are comma separated, and may take an argument using the equals
233 ('=') sign. The following journal options are supported:
234
235 size=journal-size
236 Create a journal stored in the filesystem of size
237 journal-size megabytes. The size of the journal
238 must be at least 1024 filesystem blocks (i.e., 1MB
239 if using 1k blocks, 4MB if using 4k blocks, etc.)
240 and may be no more than 10,240,000 filesystem
241 blocks. There must be enough free space in the
242 filesystem to create a journal of that size.
243
244 fast_commit_size=fast-commit-size
245 Create an additional fast commit journal area of
246 size fast-commit-size kilobytes. This option is
247 only valid if fast_commit feature is enabled on the
248 file system. If this option is not specified and if
249 fast_commit feature is turned on, fast commit area
250 size defaults to journal-size / 64 megabytes. The
251 total size of the journal with fast_commit feature
252 set is journal-size + ( fast-commit-size * 1024)
253 megabytes. The total journal size may be no more
254 than 10,240,000 filesystem blocks or half the total
255 file system size (whichever is smaller).
256
257 location=journal-location
258 Specify the location of the journal. The argument
259 journal-location can either be specified as a block
260 number, or if the number has a units suffix (e.g.,
261 'M', 'G', etc.) interpret it as the offset from the
262 beginning of the file system.
263
264 device=external-journal
265 Attach the filesystem to the journal block device
266 located on external-journal. The external journal
267 must have been already created using the command
268
269 mke2fs -O journal_dev external-journal
270
271 Note that external-journal must be formatted with
272 the same block size as filesystems which will be us‐
273 ing it. In addition, while there is support for at‐
274 taching multiple filesystems to a single external
275 journal, the Linux kernel and e2fsck(8) do not cur‐
276 rently support shared external journals yet.
277
278 Instead of specifying a device name directly, exter‐
279 nal-journal can also be specified by either LA‐
280 BEL=label or UUID=UUID to locate the external jour‐
281 nal by either the volume label or UUID stored in the
282 ext2 superblock at the start of the journal. Use
283 dumpe2fs(8) to display a journal device's volume la‐
284 bel and UUID. See also the -L option of tune2fs(8).
285
286 Only one of the size or device options can be given for a
287 filesystem.
288
289 -l List the contents of the filesystem superblock, including the
290 current values of the parameters that can be set via this pro‐
291 gram.
292
293 -L volume-label
294 Set the volume label of the filesystem. Ext2 filesystem labels
295 can be at most 16 characters long; if volume-label is longer
296 than 16 characters, tune2fs will truncate it and print a warn‐
297 ing. The volume label can be used by mount(8), fsck(8), and
298 /etc/fstab(5) (and possibly others) by specifying LABEL=volume-
299 label instead of a block special device name like /dev/hda5.
300
301 -m reserved-blocks-percentage
302 Set the percentage of the filesystem which may only be allocated
303 by privileged processes. Reserving some number of filesystem
304 blocks for use by privileged processes is done to avoid filesys‐
305 tem fragmentation, and to allow system daemons, such as sys‐
306 logd(8), to continue to function correctly after non-privileged
307 processes are prevented from writing to the filesystem. Nor‐
308 mally, the default percentage of reserved blocks is 5%.
309
310 -M last-mounted-directory
311 Set the last-mounted directory for the filesystem.
312
313 -o [^]mount-option[,...]
314 Set or clear the indicated default mount options in the filesys‐
315 tem. Default mount options can be overridden by mount options
316 specified either in /etc/fstab(5) or on the command line argu‐
317 ments to mount(8). Older kernels may not support this feature;
318 in particular, kernels which predate 2.4.20 will almost cer‐
319 tainly ignore the default mount options field in the superblock.
320
321 More than one mount option can be cleared or set by separating
322 features with commas. Mount options prefixed with a caret char‐
323 acter ('^') will be cleared in the filesystem's superblock;
324 mount options without a prefix character or prefixed with a plus
325 character ('+') will be added to the filesystem.
326
327 The following mount options can be set or cleared using tune2fs:
328
329 debug Enable debugging code for this filesystem.
330
331 bsdgroups
332 Emulate BSD behavior when creating new files: they
333 will take the group-id of the directory in which
334 they were created. The standard System V behavior
335 is the default, where newly created files take on
336 the fsgid of the current process, unless the direc‐
337 tory has the setgid bit set, in which case it takes
338 the gid from the parent directory, and also gets the
339 setgid bit set if it is a directory itself.
340
341 user_xattr
342 Enable user-specified extended attributes.
343
344 acl Enable Posix Access Control Lists.
345
346 uid16 Disables 32-bit UIDs and GIDs. This is for interop‐
347 erability with older kernels which only store and
348 expect 16-bit values.
349
350 journal_data
351 When the filesystem is mounted with journalling en‐
352 abled, all data (not just metadata) is committed
353 into the journal prior to being written into the
354 main filesystem.
355
356 journal_data_ordered
357 When the filesystem is mounted with journalling en‐
358 abled, all data is forced directly out to the main
359 file system prior to its metadata being committed to
360 the journal.
361
362 journal_data_writeback
363 When the filesystem is mounted with journalling en‐
364 abled, data may be written into the main filesystem
365 after its metadata has been committed to the jour‐
366 nal. This may increase throughput, however, it may
367 allow old data to appear in files after a crash and
368 journal recovery.
369
370 nobarrier
371 The file system will be mounted with barrier opera‐
372 tions in the journal disabled. (This option is cur‐
373 rently only supported by the ext4 file system driver
374 in 2.6.35+ kernels.)
375
376 block_validity
377 The file system will be mounted with the block_va‐
378 lidity option enabled, which causes extra checks to
379 be performed after reading or writing from the file
380 system. This prevents corrupted metadata blocks
381 from causing file system damage by overwriting parts
382 of the inode table or block group descriptors. This
383 comes at the cost of increased memory and CPU over‐
384 head, so it is enabled only for debugging purposes.
385 (This option is currently only supported by the ext4
386 file system driver in 2.6.35+ kernels.)
387
388 discard
389 The file system will be mounted with the discard
390 mount option. This will cause the file system
391 driver to attempt to use the trim/discard feature of
392 some storage devices (such as SSD's and thin-provi‐
393 sioned drives available in some enterprise storage
394 arrays) to inform the storage device that blocks be‐
395 longing to deleted files can be reused for other
396 purposes. (This option is currently only supported
397 by the ext4 file system driver in 2.6.35+ kernels.)
398
399 nodelalloc
400 The file system will be mounted with the nodelalloc
401 mount option. This will disable the delayed alloca‐
402 tion feature. (This option is currently only sup‐
403 ported by the ext4 file system driver in 2.6.35+
404 kernels.)
405
406 -O [^]feature[,...]
407 Set or clear the indicated filesystem features (options) in the
408 filesystem. More than one filesystem feature can be cleared or
409 set by separating features with commas. Filesystem features
410 prefixed with a caret character ('^') will be cleared in the
411 filesystem's superblock; filesystem features without a prefix
412 character or prefixed with a plus character ('+') will be added
413 to the filesystem. For a detailed description of the file sys‐
414 tem features, please see the man page ext4(5).
415
416 The following filesystem features can be set or cleared using
417 tune2fs:
418
419 64bit Enable the file system to be larger than 2^32
420 blocks.
421
422 casefold
423 Enable support for file system level casefolding.
424 Tune2fs currently only supports setting this
425 filesystem feature.
426
427 dir_index
428 Use hashed b-trees to speed up lookups for large di‐
429 rectories.
430
431 dir_nlink
432 Allow more than 65000 subdirectories per directory.
433
434 ea_inode
435 Allow the value of each extended attribute to be
436 placed in the data blocks of a separate inode if
437 necessary, increasing the limit on the size and num‐
438 ber of extended attributes per file. Tune2fs cur‐
439 rently only supports setting this filesystem fea‐
440 ture.
441
442 encrypt
443 Enable support for file system level encryption.
444 Tune2fs currently only supports setting this
445 filesystem feature.
446
447 extent Enable the use of extent trees to store the location
448 of data blocks in inodes. Tune2fs currently only
449 supports setting this filesystem feature.
450
451 extra_isize
452 Enable the extended inode fields used by ext4.
453
454 filetype
455 Store file type information in directory entries.
456
457 flex_bg
458 Allow bitmaps and inode tables for a block group to
459 be placed anywhere on the storage media. Tune2fs
460 will not reorganize the location of the inode tables
461 and allocation bitmaps, as mke2fs(8) will do when it
462 creates a freshly formatted file system with flex_bg
463 enabled.
464
465 has_journal
466 Use a journal to ensure filesystem consistency even
467 across unclean shutdowns. Setting the filesystem
468 feature is equivalent to using the -j option.
469
470
471 fast_commit
472 Enable fast commit journaling feature to improve
473 fsync latency.
474
475 large_dir
476 Increase the limit on the number of files per direc‐
477 tory. Tune2fs currently only supports setting this
478 filesystem feature.
479
480 huge_file
481 Support files larger than 2 terabytes in size.
482
483 large_file
484 Filesystem can contain files that are greater than
485 2GB.
486
487 metadata_csum
488 Store a checksum to protect the contents in each
489 metadata block.
490
491 metadata_csum_seed
492 Allow the filesystem to store the metadata checksum
493 seed in the superblock, enabling the administrator
494 to change the UUID of a filesystem using the meta‐
495 data_csum feature while it is mounted.
496
497 mmp Enable or disable multiple mount protection (MMP)
498 feature.
499
500 project
501 Enable project ID tracking. This is used for
502 project quota tracking.
503
504 quota Enable internal file system quota inodes.
505
506 read-only
507 Force the kernel to mount the file system read-only.
508
509 resize_inode
510 Reserve space so the block group descriptor table
511 may grow in the future. Tune2fs only supports
512 clearing this filesystem feature.
513
514 sparse_super
515 Limit the number of backup superblocks to save space
516 on large filesystems. Tune2fs currently only sup‐
517 ports setting this filesystem feature.
518
519 stable_inodes
520 Prevent the filesystem from being shrunk or having
521 its UUID changed, in order to allow the use of spe‐
522 cialized encryption settings that make use of the
523 inode numbers and UUID. Tune2fs currently only sup‐
524 ports setting this filesystem feature.
525
526 uninit_bg
527 Allow the kernel to initialize bitmaps and inode ta‐
528 bles lazily, and to keep a high watermark for the
529 unused inodes in a filesystem, to reduce e2fsck(8)
530 time. The first e2fsck run after enabling this fea‐
531 ture will take the full time, but subsequent e2fsck
532 runs will take only a fraction of the original time,
533 depending on how full the file system is.
534
535 verity Enable support for verity protected files. Tune2fs
536 currently only supports setting this filesystem fea‐
537 ture.
538
539 After setting or clearing sparse_super, uninit_bg, filetype, or
540 resize_inode filesystem features, the file system may require
541 being checked using e2fsck(8) to return the filesystem to a con‐
542 sistent state. Tune2fs will print a message requesting that the
543 system administrator run e2fsck(8) if necessary. After setting
544 the dir_index feature, e2fsck -D can be run to convert existing
545 directories to the hashed B-tree format. Enabling certain
546 filesystem features may prevent the filesystem from being
547 mounted by kernels which do not support those features. In par‐
548 ticular, the uninit_bg and flex_bg features are only supported
549 by the ext4 filesystem.
550
551 -r reserved-blocks-count
552 Set the number of reserved filesystem blocks.
553
554 -Q quota-options
555 Sets 'quota' feature on the superblock and works on the quota
556 files for the given quota type. Quota options could be one or
557 more of the following:
558
559 [^]usrquota
560 Sets/clears user quota inode in the superblock.
561
562 [^]grpquota
563 Sets/clears group quota inode in the superblock.
564
565 [^]prjquota
566 Sets/clears project quota inode in the superblock.
567
568 -T time-last-checked
569 Set the time the filesystem was last checked using e2fsck. The
570 time is interpreted using the current (local) timezone. This
571 can be useful in scripts which use a Logical Volume Manager to
572 make a consistent snapshot of a filesystem, and then check the
573 filesystem during off hours to make sure it hasn't been cor‐
574 rupted due to hardware problems, etc. If the filesystem was
575 clean, then this option can be used to set the last checked time
576 on the original filesystem. The format of time-last-checked is
577 the international date format, with an optional time specifier,
578 i.e. YYYYMMDD[HH[MM[SS]]]. The keyword now is also accepted,
579 in which case the last checked time will be set to the current
580 time.
581
582 -u user
583 Set the user who can use the reserved filesystem blocks. user
584 can be a numerical uid or a user name. If a user name is given,
585 it is converted to a numerical uid before it is stored in the
586 superblock.
587
588 -U UUID
589 Set the universally unique identifier (UUID) of the filesystem
590 to UUID. The format of the UUID is a series of hex digits sepa‐
591 rated by hyphens, like this:
592 "c1b9d5a2-f162-11cf-9ece-0020afc76f16". The UUID parameter may
593 also be one of the following:
594
595 clear clear the filesystem UUID
596
597 random generate a new randomly-generated UUID
598
599 time generate a new time-based UUID
600
601 The UUID may be used by mount(8), fsck(8), and /etc/fstab(5)
602 (and possibly others) by specifying UUID=uuid instead of a block
603 special device name like /dev/hda1.
604
605 See uuidgen(8) for more information. If the system does not
606 have a good random number generator such as /dev/random or
607 /dev/urandom, tune2fs will automatically use a time-based UUID
608 instead of a randomly-generated UUID.
609
610 -z undo_file
611 Before overwriting a file system block, write the old contents
612 of the block to an undo file. This undo file can be used with
613 e2undo(8) to restore the old contents of the file system should
614 something go wrong. If the empty string is passed as the
615 undo_file argument, the undo file will be written to a file
616 named tune2fs-device.e2undo in the directory specified via the
617 E2FSPROGS_UNDO_DIR environment variable.
618
619 WARNING: The undo file cannot be used to recover from a power or
620 system crash.
621
623 We haven't found any bugs yet. That doesn't mean there aren't any...
624
626 tune2fs was written by Remy Card <Remy.Card@linux.org>. It is cur‐
627 rently being maintained by Theodore Ts'o <tytso@alum.mit.edu>. tune2fs
628 uses the ext2fs library written by Theodore Ts'o <tytso@mit.edu>. This
629 manual page was written by Christian Kuhtz <chk@data-hh.Hanse.DE>.
630 Time-dependent checking was added by Uwe Ohse <uwe@tirka.gun.de>.
631
633 tune2fs is part of the e2fsprogs package and is available from
634 http://e2fsprogs.sourceforge.net.
635
637 debugfs(8), dumpe2fs(8), e2fsck(8), mke2fs(8), ext4(5)
638
639
640
641E2fsprogs version 1.46.3 July 2021 TUNE2FS(8)