]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - misc/mke2fs.8.in
misc: update mke2fs's man page regarding the default inode size
[thirdparty/e2fsprogs.git] / misc / mke2fs.8.in
CommitLineData
3839e657 1.\" -*- nroff -*-
a418d3ad
TT
2.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved.
3.\" This file may be copied under the terms of the GNU Public License.
98794d0e 4.\"
74becf3c 5.TH MKE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
3839e657 6.SH NAME
e87bb84b 7mke2fs \- create an ext2/ext3/ext4 file system
3839e657
TT
8.SH SYNOPSIS
9.B mke2fs
10[
11.B \-c
98794d0e 12|
3839e657 13.B \-l
1e3472c5 14.I filename
3839e657
TT
15]
16[
17.B \-b
1e3472c5 18.I block-size
3839e657
TT
19]
20[
75dd3c47
TN
21.B \-C
22.I cluster-size
23]
24[
4407ea3b
DW
25.B \-d
26.I root-directory
27]
28[
37c8db7b
TT
29.B \-D
30]
31[
5e05541a
TT
32.B \-g
33.I blocks-per-group
34]
35[
9ba40002
TT
36.B \-G
37.I number-of-groups
38]
39[
3839e657 40.B \-i
1e3472c5 41.I bytes-per-inode
3839e657
TT
42]
43[
067911ae
AD
44.B \-I
45.I inode-size
46]
47[
85ef4ae8 48.B \-j
dc2ec525
TT
49]
50[
51.B \-J
8ddaa66b 52.I journal-options
85ef4ae8
TT
53]
54[
5515e6b4
TT
55.B \-N
56.I number-of-inodes
57]
58[
a26ba650 59.B \-n
2740156b
TT
60]
61[
3839e657 62.B \-m
1e3472c5
TT
63.I reserved-blocks-percentage
64]
65[
66.B \-o
67.I creator-os
3839e657
TT
68]
69[
98794d0e 70.B \-O
5c4c3876 71[^]\fIfeature\fR[,...]
896938d5
TT
72]
73[
f3db3566
TT
74.B \-q
75]
76[
caf8ce4c
TT
77.B \-r
78.I fs-revision-level
a29f4d30
TT
79]
80[
c6a44136
TT
81.B \-E
82.I extended-options
521e3685
TT
83]
84[
3839e657
TT
85.B \-v
86]
f3db3566 87[
74becf3c
TT
88.B \-F
89]
90[
1e3472c5
TT
91.B \-L
92.I volume-label
93]
94[
95.B \-M
96.I last-mounted-directory
97]
98[
f3db3566
TT
99.B \-S
100]
818180cd 101[
3d43836f
TT
102.B \-t
103.I fs-type
104]
105[
50787ea2 106.B \-T
3d43836f 107.I usage-type
50787ea2
TT
108]
109[
b0afdda1
TT
110.B \-U
111.I UUID
112]
113[
818180cd
TT
114.B \-V
115]
cd32129d
DW
116[
117.B \-e
118.I errors-behavior
119]
2d291b3c
DW
120[
121.B \-z
122.I undo_file
123]
1e3472c5 124.I device
3839e657 125[
9ac2930c 126.I fs-size
3839e657 127]
48015ced 128@JDEV@.sp
8d641749 129@JDEV@.B "mke2fs \-O journal_dev"
48015ced
TT
130@JDEV@[
131@JDEV@.B \-b
132@JDEV@.I block-size
133@JDEV@]
8d641749 134.\" No external-journal specific journal options yet (size is ignored)
48015ced
TT
135.\" @JDEV@[
136.\" @JDEV@.B \-J
137.\" @JDEV@.I journal-options
138.\" @JDEV@]
139@JDEV@[
140@JDEV@.B \-L
141@JDEV@.I volume-label
142@JDEV@]
143@JDEV@[
144@JDEV@.B \-n
145@JDEV@]
146@JDEV@[
147@JDEV@.B \-q
148@JDEV@]
149@JDEV@[
150@JDEV@.B \-v
151@JDEV@]
8d641749 152@JDEV@.I external-journal
2d15576d 153@JDEV@[
9ac2930c 154@JDEV@.I fs-size
2d15576d 155@JDEV@]
3839e657
TT
156.SH DESCRIPTION
157.B mke2fs
e87bb84b 158is used to create an ext2, ext3, or ext4 file system, usually in a disk
9ac2930c
TT
159partition (or file) named by
160.IR device .
161.PP
162The file system size is specified by
163.IR fs-size .
164If
165.I fs-size
166does not have a suffix, it is interpreted as power-of-two kilobytes,
167unless the
168.B \-b
169.I blocksize
170option is specified, in which case
171.I fs-size
172is interpreted as the number of
173.I blocksize
174blocks. If the fs-size is suffixed by 'k', 'm', 'g', 't'
175(either upper-case or lower-case), then it is interpreted in
176power-of-two kilobytes, megabytes, gigabytes, terabytes, etc.
177If
178.I fs-size
179is omitted,
3839e657 180.B mke2fs
9ac2930c
TT
181will create the file system based on the device size.
182.PP
183If
184.B mke2fs
185is run as
186.B mkfs.XXX
187(i.e.,
188.BR mkfs.ext2 ,
189.BR mkfs.ext3 ,
190or
191.BR mkfs.ext4 )
192the option
193.B \-t
194.I XXX
195is implied; so
0072f8de 196.B mkfs.ext3
9ac2930c
TT
197will create a file system for use with ext3,
198.B mkfs.ext4
199will create a file system for use with ext4, and so on.
de7a86e2 200.PP
e87bb84b 201The defaults of the parameters for the newly created file system, if not
de7a86e2
TT
202overridden by the options listed below, are controlled by the
203.B /etc/mke2fs.conf
204configuration file. See the
205.BR mke2fs.conf (5)
206manual page for more details.
3839e657
TT
207.SH OPTIONS
208.TP
caf8ce4c 209.BI \-b " block-size"
33b0356c
JK
210Specify the size of blocks in bytes. Valid block-size values are powers of two
211from 1024 up to 65536 (however note that the kernel is able to mount only
e87bb84b 212file systems with block-size smaller or equal to the system page size - 4k on
51628724 213x86 systems, up to 64k on ppc64 or aarch64 depending on kernel configuration).
e87bb84b
TT
214If omitted, block-size is heuristically determined by the file system size and
215the expected usage of the file system (see the
06968e7e 216.B \-T
33b0356c 217option). In most common cases, the default block size is 4k. If
c5290fae 218.I block-size
eddf36ba 219is preceded by a negative sign ('-'), then
c6a44136
TT
220.B mke2fs
221will use heuristics to determine the
c5290fae 222appropriate block size, with the constraint that the block size will be
98794d0e 223at least
c5290fae
TT
224.I block-size
225bytes. This is useful for certain hardware devices which require that
226the blocksize be a multiple of 2k.
3839e657 227.TP
caf8ce4c 228.B \-c
3ed57c27 229Check the device for bad blocks before creating the file system. If
98794d0e 230this option is specified twice, then a slower read-write
3ed57c27 231test is used instead of a fast read-only test.
3839e657 232.TP
0f680ee8 233.B \-C " cluster-size"
e87bb84b 234Specify the size of cluster in bytes for file systems using the bigalloc
87cbb381
SD
235feature. Valid cluster-size values range from 2 to 32768 times the
236filesystem blocksize and must be a power of 2. The cluster-size can
237only be specified if the bigalloc feature is enabled. (See the
9518b297
TT
238.B ext4 (5)
239man page for more details about bigalloc.) The default cluster size if
240bigalloc is enabled is 16 times the block size.
0f680ee8 241.TP
4407ea3b
DW
242.BI \-d " root-directory"
243Copy the contents of the given directory into the root directory of the
e87bb84b 244file system.
4407ea3b 245.TP
37c8db7b
TT
246.B \-D
247Use direct I/O when writing to the disk. This avoids mke2fs dirtying a
248lot of buffer cache memory, which may impact other applications running
249on a busy server. This option will cause mke2fs to run much more
250slowly, however, so there is a tradeoff to using direct I/O.
251.TP
cd32129d
DW
252.BI \-e " error-behavior"
253Change the behavior of the kernel code when errors are detected.
e87bb84b 254In all cases, a file system error will cause
cd32129d 255.BR e2fsck (8)
e87bb84b 256to check the file system on the next boot.
cd32129d
DW
257.I error-behavior
258can be one of the following:
259.RS 1.2i
260.TP 1.2i
261.B continue
262Continue normal execution.
263.TP
264.B remount-ro
e87bb84b 265Remount file system read-only.
cd32129d
DW
266.TP
267.B panic
268Cause a kernel panic.
269.RE
270.TP
c6a44136 271.BI \-E " extended-options"
e87bb84b 272Set extended options for the file system. Extended options are comma
c6a44136 273separated, and may take an argument using the equals ('=') sign. The
a26ba650 274.B \-E
98794d0e 275option used to be
a26ba650 276.B \-R
98794d0e 277in earlier versions of
c6a44136 278.BR mke2fs .
98794d0e 279The
a26ba650 280.B \-R
b769aaec
AD
281option is still accepted for backwards compatibility, but is deprecated.
282The following extended options are supported:
c6a44136
TT
283.RS 1.2i
284.TP
28887533 285.BI encoding= encoding-name
e7236a94 286Enable the
28887533 287.I casefold
e7236a94
GKB
288feature in the super block and set
289.I encoding-name
290as the encoding to be used. If
291.I encoding-name
292is not specified, the encoding defined in
293.BR mke2fs.conf (5)
294is used.
295.TP
28887533 296.BI encoding_flags= encoding-flags
e7236a94
GKB
297Define parameters for file name character encoding operations. If a
298flag is not changed using this parameter, its default value is used.
299.I encoding-flags
300should be a comma-separated lists of flags to be enabled. To disable a
301flag, add it to the list with the prefix "no".
302
303The only flag that can be set right now is
304.I strict
305which means that invalid strings should be rejected by the file system.
306In the default configuration, the
307.I strict
308flag is disabled.
309.TP
0f5eba75
AD
310.BI mmp_update_interval= interval
311Adjust the initial MMP update interval to
312.I interval
313seconds. Specifying an
314.I interval
315of 0 means to use the default interval. The specified interval must
316be less than 300 seconds. Requires that the
317.B mmp
318feature be enabled.
319.TP
0c17cb25 320.BI stride= stride-size
e87bb84b 321Configure the file system for a RAID array with
0c17cb25 322.I stride-size
e87bb84b 323file system blocks. This is the number of blocks read or written to disk
98794d0e 324before moving to the next disk, which is sometimes referred to as the
2ac7f066 325.I chunk size.
e87bb84b 326This mostly affects placement of file system metadata like bitmaps at
a4396e9d 327.B mke2fs
98794d0e
BS
328time to avoid placing them on a single disk, which can hurt performance.
329It may also be used by the block allocator.
0c17cb25 330.TP
d4c0d8e5 331.BI stripe_width= stripe-width
e87bb84b 332Configure the file system for a RAID array with
0c17cb25 333.I stripe-width
e87bb84b 334file system blocks per stripe. This is typically stride-size * N, where
2ac7f066 335N is the number of data-bearing disks in the RAID (e.g. for RAID 5 there is one
98794d0e 336parity disk, so N will be the number of disks in the array minus 1).
0c17cb25
TT
337This allows the block allocator to prevent read-modify-write of the
338parity in a RAID stripe if possible when the data is written.
c6a44136 339.TP
88ee023b 340.BI offset= offset
e87bb84b 341Create the file system at an offset from the beginning of the device or
88ee023b
TT
342file. This can be useful when creating disk images for virtual machines.
343.TP
c6a44136
TT
344.BI resize= max-online-resize
345Reserve enough space so that the block group descriptor table can grow
e87bb84b 346to support a file system that has
98794d0e
BS
347.I max-online-resize
348blocks.
6cb27404 349.TP
3b4a66cf 350.B lazy_itable_init\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
a4396e9d 351If enabled and the uninit_bg feature is enabled, the inode table will
98794d0e 352not be fully initialized by
a4396e9d 353.BR mke2fs .
e87bb84b 354This speeds up file system
98794d0e 355initialization noticeably, but it requires the kernel to finish
e87bb84b 356initializing the file system in the background when the file system is
43781b94 357first mounted. If the option value is omitted, it defaults to 1 to
6c54689f
AD
358enable lazy inode table zeroing.
359.TP
360.B lazy_journal_init\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
361If enabled, the journal inode will not be fully zeroed out by
362.BR mke2fs .
e87bb84b 363This speeds up file system initialization noticeably, but carries some
6c54689f
AD
364small risk if the system crashes before the journal has been overwritten
365entirely one time. If the option value is omitted, it defaults to 1 to
366enable lazy journal inode zeroing.
a4396e9d 367.TP
bd2e72c5
SK
368.B assume_storage_prezeroed\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
369If enabled,
370.BR mke2fs
371assumes that the storage device has been prezeroed, skips zeroing the journal
372and inode tables, and annotates the block group flags to signal that the inode
373table has been zeroed.
374.TP
6a9c8e0b 375.B no_copy_xattrs
8cec4acd
TT
376Normally
377.B mke2fs
378will copy the extended attributes of the files in the directory
379hierarchy specified via the (optional)
380.B \-d
381option. This will disable the copy and leaves the files in the newly
382created file system without any extended attributes.
383.TP
65c6c3e0
TT
384.BI num_backup_sb= <0|1|2>
385If the
386.B sparse_super2
387file system feature is enabled this option controls whether there will
388be 0, 1, or 2 backup superblocks created in the file system.
389.TP
3c6e91c5
TT
390.B packed_meta_blocks\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
391Place the allocation bitmaps and the inode table at the beginning of the
392disk. This option requires that the flex_bg file system feature to be
393enabled in order for it to have effect, and will also create the journal
394at the beginning of the file system. This option is useful for flash
395devices that use SLC flash at the beginning of the disk.
396It also maximizes the range of contiguous data blocks, which
397can be useful for certain specialized use cases, such as supported
398Shingled Drives.
399.TP
dc9cc700
AD
400.BI root_owner [=uid:gid]
401Specify the numeric user and group ID of the root directory. If no UID:GID
402is specified, use the user and group ID of the user running \fBmke2fs\fR.
403In \fBmke2fs\fR 1.42 and earlier the UID and GID of the root directory were
404set by default to the UID and GID of the user running the mke2fs command.
405The \fBroot_owner=\fR option allows explicitly specifying these values,
406and avoid side-effects for users that do not expect the contents of the
e87bb84b 407file system to change based on the user running \fBmke2fs\fR.
dc9cc700 408.TP
6cb27404 409.B test_fs
e87bb84b
TT
410Set a flag in the file system superblock indicating that it may be
411mounted using experimental kernel code, such as the ext4dev file system.
0bc85dfb 412.TP
818da4a9
JK
413.BI orphan_file_size= size
414Set size of the file for tracking unlinked but still open inodes and inodes
415with truncate in progress. Larger file allows for better scalability, reserving
416a few blocks per cpu is ideal.
417.TP
6a9c8e0b 418.B discard
0bc85dfb
LC
419Attempt to discard blocks at mkfs time (discarding blocks initially is useful
420on solid state devices and sparse / thin-provisioned storage). When the device
421advertises that discard also zeroes data (any subsequent read after the discard
422and before write returns zero), then mark all not-yet-zeroed inode tables as
e87bb84b 423zeroed. This significantly speeds up file system initialization. This is set
0bc85dfb
LC
424as default.
425.TP
6a9c8e0b 426.B nodiscard
855a77a1 427Do not attempt to discard blocks at mkfs time.
9e8fcd6e 428.TP
6a9c8e0b 429.B quotatype
bc8f1ae5
TT
430Specify the which quota types (usrquota, grpquota, prjquota) which
431should be enabled in the created file system. The argument of this
432extended option should be a colon separated list. This option has
433effect only if the
9e8fcd6e 434.B quota
bc8f1ae5
TT
435feature is set. The default quota types to be initialized if this
436option is not specified is both user and group quotas. If the project
437feature is enabled that project quotas will be initialized as well.
c6a44136
TT
438.RE
439.TP
48015ced 440.B \-F
98794d0e 441Force
48015ced 442.B mke2fs
e87bb84b 443to create a file system, even if the specified device is not a partition
c16e610c 444on a block special device, or if other parameters do not make sense.
98794d0e 445In order to force
c16e610c 446.B mke2fs
e87bb84b 447to create a file system even if the file system appears to be in use
c16e610c
AD
448or is mounted (a truly dangerous thing to do), this option must be
449specified twice.
48015ced 450.TP
5e05541a
TT
451.BI \-g " blocks-per-group"
452Specify the number of blocks in a block group. There is generally no
98794d0e 453reason for the user to ever set this parameter, as the default is optimal
e87bb84b
TT
454for the file system. (For administrators who are creating
455file systems on RAID arrays, it is preferable to use the
5e05541a
TT
456.I stride
457RAID parameter as part of the
e28a1bca 458.B \-E
98794d0e 459option rather than manipulating the number of blocks per group.)
5e05541a 460This option is generally used by developers who
98794d0e 461are developing test cases.
0f680ee8
ZL
462.IP
463If the bigalloc feature is enabled, the
464.B \-g
465option will specify the number of clusters in a block group.
5e05541a 466.TP
9ba40002 467.BI \-G " number-of-groups"
98794d0e 468Specify the number of block groups that will be packed together to
7a9f055f 469create a larger virtual block group (or "flex_bg group") in an
e87bb84b 470ext4 file system. This improves meta-data locality and performance
7a9f055f 471on meta-data heavy workloads. The number of groups must be a power
d04ad325 472of 2 and may only be specified if the
7a9f055f 473.B flex_bg
e87bb84b 474file system feature is enabled.
9ba40002 475.TP
caf8ce4c 476.BI \-i " bytes-per-inode"
98794d0e 477Specify the bytes/inode ratio.
3839e657
TT
478.B mke2fs
479creates an inode for every
480.I bytes-per-inode
98794d0e 481bytes of space on the disk. The larger the
caf8ce4c 482.I bytes-per-inode
48015ced 483ratio, the fewer inodes will be created. This value generally shouldn't
e87bb84b 484be smaller than the blocksize of the file system, since in that case more
98794d0e 485inodes would be made than can ever be used. Be warned that it is not
e87bb84b 486possible to change this ratio on a file system after it is created, so be
e2883e27 487careful deciding the correct value for this parameter. Note that resizing
e87bb84b 488a file system changes the number of inodes to maintain this ratio.
067911ae
AD
489.TP
490.BI \-I " inode-size"
98794d0e 491Specify the size of each inode in bytes.
886056bd 492The
067911ae 493.I inode-size
98794d0e 494value must be a power of 2 larger or equal to 128. The larger the
067911ae
AD
495.I inode-size
496the more space the inode table will consume, and this reduces the usable
e87bb84b 497space in the file system and can also negatively impact performance.
886056bd 498It is not
e87bb84b 499possible to change this value after the file system is created.
886056bd 500.IP
4346f675
TT
501File systems with an inode size of 128 bytes do not support timestamps
502beyond January 19, 2038. Inodes which are 256 bytes or larger will
503support extended timestamps, project id's, and the ability to store some
504extended attributes in the inode table for improved performance.
886056bd
TT
505.IP
506The default inode size is controlled by the
507.BR mke2fs.conf (5)
508file. In the
509.B mke2fs.conf
510file shipped with e2fsprogs, the default inode size is 256 bytes for
08079876
PH
511all file systems, except for the GNU Hurd since it only supports
512128-byte inodes.
98794d0e 513.TP
48015ced 514.B \-j
e87bb84b 515Create the file system with an ext3 journal. If the
dc2ec525 516.B \-J
48015ced 517option is not specified, the default journal parameters will be used to
e87bb84b
TT
518create an appropriately sized journal (given the size of the file system)
519stored within the file system. Note that you must be using a kernel
48015ced 520which has ext3 support in order to actually make use of the journal.
dc2ec525 521.TP
48015ced 522.BI \-J " journal-options"
dc2ec525 523Create the ext3 journal using options specified on the command-line.
8ddaa66b
TT
524Journal options are comma
525separated, and may take an argument using the equals ('=') sign.
48015ced
TT
526The following journal options are supported:
527.RS 1.2i
dc2ec525 528.TP
48015ced 529.BI size= journal-size
e87bb84b 530Create an internal journal (i.e., stored inside the file system) of size
98794d0e 531.I journal-size
8d641749 532megabytes.
e87bb84b 533The size of the journal must be at least 1024 file system blocks
98794d0e 534(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.)
e87bb84b 535and may be no more than 10,240,000 file system blocks or half the total
57cb2716 536file system size (whichever is smaller)
b818205f 537.TP
06def17e
HS
538.BI fast_commit_size= fast-commit-size
539Create an additional fast commit journal area of size
540.I fast-commit-size
541kilobytes.
542This option is only valid if
543.B fast_commit
544feature is enabled
545on the file system. If this option is not specified and if
546.B fast_commit
547feature is turned on, fast commit area size defaults to
548.I journal-size
549/ 64 megabytes. The total size of the journal with
550.B fast_commit
551feature set is
552.I journal-size
553+ (
554.I fast-commit-size
555* 1024) megabytes. The total journal size may be no more than
e87bb84b 55610,240,000 file system blocks or half the total file system size
06def17e
HS
557(whichever is smaller).
558.TP
b818205f
TT
559.BI location =journal-location
560Specify the location of the journal. The argument
561.I journal-location
562can either be specified as a block number, or if the number has a units
563suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the
564beginning of the file system.
48015ced
TT
565@JDEV@.TP
566@JDEV@.BI device= external-journal
e87bb84b 567@JDEV@Attach the file system to the journal block device located on
8d641749
TT
568@JDEV@.IR external-journal .
569@JDEV@The external
570@JDEV@journal must already have been created using the command
571@JDEV@.IP
2d15576d
AD
572@JDEV@.B mke2fs -O journal_dev
573@JDEV@.I external-journal
8d641749
TT
574@JDEV@.IP
575@JDEV@Note that
576@JDEV@.I external-journal
577@JDEV@must have been created with the
e87bb84b 578@JDEV@same block size as the new file system.
3024d887 579@JDEV@In addition, while there is support for attaching
e87bb84b 580@JDEV@multiple file systems to a single external journal,
98794d0e 581@JDEV@the Linux kernel and
3024d887
TT
582@JDEV@.BR e2fsck (8)
583@JDEV@do not currently support shared external journals yet.
2d15576d
AD
584@JDEV@.IP
585@JDEV@Instead of specifying a device name directly,
586@JDEV@.I external-journal
587@JDEV@can also be specified by either
588@JDEV@.BI LABEL= label
589@JDEV@or
590@JDEV@.BI UUID= UUID
591@JDEV@to locate the external journal by either the volume label or UUID
592@JDEV@stored in the ext2 superblock at the start of the journal. Use
593@JDEV@.BR dumpe2fs (8)
594@JDEV@to display a journal device's volume label and UUID. See also the
595@JDEV@.B -L
596@JDEV@option of
597@JDEV@.BR tune2fs (8).
8d641749
TT
598.RE
599@JDEV@.IP
48015ced
TT
600@JDEV@Only one of the
601@JDEV@.BR size " or " device
e87bb84b 602@JDEV@options can be given for a file system.
48015ced
TT
603.TP
604.BI \-l " filename"
605Read the bad blocks list from
98794d0e 606.IR filename .
3ed57c27 607Note that the block numbers in the bad block list must be generated
98794d0e
BS
608using the same block size as used by
609.BR mke2fs .
610As a result, the
3ed57c27 611.B \-c
98794d0e 612option to
3ed57c27
TT
613.B mke2fs
614is a much simpler and less error-prone method of checking a disk for bad
98794d0e 615blocks before formatting it, as
3ed57c27
TT
616.B mke2fs
617will automatically pass the correct parameters to the
618.B badblocks
619program.
48015ced 620.TP
6a7075df 621.BI \-L " new-volume-label"
e87bb84b 622Set the volume label for the file system to
6a7075df
TT
623.IR new-volume-label .
624The maximum length of the
625volume label is 16 bytes.
48015ced
TT
626.TP
627.BI \-m " reserved-blocks-percentage"
e87bb84b 628Specify the percentage of the file system blocks reserved for
029de632 629the super-user. This avoids fragmentation, and allows root-owned
98794d0e 630daemons, such as
029de632 631.BR syslogd (8),
98794d0e 632to continue to function correctly after non-privileged processes are
e87bb84b 633prevented from writing to the file system. The default percentage
029de632 634is 5%.
dc2ec525 635.TP
98794d0e 636.BI \-M " last-mounted-directory"
e87bb84b 637Set the last mounted directory for the file system. This might be useful
98794d0e 638for the sake of utilities that key off of the last mounted directory to
e87bb84b 639determine where the file system should be mounted.
85ef4ae8 640.TP
caf8ce4c 641.B \-n
98794d0e
BS
642Causes
643.B mke2fs
e87bb84b
TT
644to not actually create a file system, but display what it
645would do if it were to create a file system. This can be used to
1f22ce34 646determine the location of the backup superblocks for a particular
e87bb84b 647file system, so long as the
98794d0e
BS
648.B mke2fs
649parameters that were passed when the
e87bb84b 650file system was originally created are used again. (With the
98794d0e 651.B \-n
1f22ce34 652option added, of course!)
2740156b 653.TP
caf8ce4c 654.BI \-N " number-of-inodes"
98794d0e 655Overrides the default calculation of the number of inodes that should be
e87bb84b 656reserved for the file system (which is based on the number of blocks and
98794d0e 657the
caf8ce4c 658.I bytes-per-inode
98794d0e 659ratio). This allows the user to specify the number
5515e6b4
TT
660of desired inodes directly.
661.TP
48015ced 662.BI \-o " creator-os"
98794d0e 663Overrides the default value of the "creator operating system" field of the
e87bb84b 664file system. The creator field is set by default to the name of the OS the
583ccdc3 665.B mke2fs
98794d0e 666executable was compiled for.
1e3472c5 667.TP
5c4c3876 668.B "\-O \fR[^]\fIfeature\fR[,...]"
e87bb84b
TT
669Create a file system with the given features (file system options),
670overriding the default file system options. The features that are
9dc6ad1e
TT
671enabled by default are specified by the
672.I base_features
673relation, either in the
98794d0e 674.I [defaults]
9dc6ad1e
TT
675section in the
676.B /etc/mke2fs.conf
3d43836f 677configuration file,
98794d0e 678or in the
9dc6ad1e 679.I [fs_types]
98794d0e 680subsections for the usage types as specified by the
a26ba650 681.B \-T
3d43836f
TT
682option, further modified by the
683.I features
684relation found in the
98794d0e 685.I [fs_types]
e87bb84b 686subsections for the file system and usage types. See the
3d43836f
TT
687.BR mke2fs.conf (5)
688manual page for more details.
e87bb84b 689The file system type-specific configuration setting found in the
9dc6ad1e
TT
690.I [fs_types]
691section will override the global default found in
98794d0e 692.IR [defaults] .
48015ced 693.sp
e87bb84b 694The file system feature set will be further edited
98794d0e
BS
695using either the feature set specified by this option,
696or if this option is not given, by the
9dc6ad1e 697.I default_features
e87bb84b 698relation for the file system type being created, or in the
98794d0e 699.I [defaults]
9dc6ad1e
TT
700section of the configuration file.
701.sp
e87bb84b 702The file system feature set is comprised of a list of features, separated
9dc6ad1e 703by commas, that are to be enabled. To disable a feature, simply
5c4c3876 704prefix the feature name with a caret ('^') character.
3c22bf7e 705Features with dependencies will not be removed successfully.
e87bb84b 706The pseudo-file system feature "none" will clear all file system features.
4727c67d 707.TP
3c22bf7e
TT
708For more information about the features which can be set, please see
709the manual page
710.BR ext4 (5).
1e3472c5 711.TP
8d641749 712.B \-q
98794d0e 713Quiet execution. Useful if
8d641749
TT
714.B mke2fs
715is run in a script.
716.TP
48015ced 717.BI \-r " revision"
e87bb84b
TT
718Set the file system revision for the new file system. Note that 1.2
719kernels only support revision 0 file systems. The default is to
720create revision 1 file systems.
a29f4d30 721.TP
caf8ce4c 722.B \-S
a6eeac1c
AD
723Write superblock and group descriptors only. This is an extreme
724measure to be taken only in the very unlikely case that all of
f3db3566 725the superblock and backup superblocks are corrupted, and a last-ditch
a6eeac1c 726recovery method is desired by experienced users. It causes
583ccdc3 727.B mke2fs
a6eeac1c
AD
728to reinitialize the superblock and group descriptors, while not
729touching the inode table and the block and inode bitmaps. The
f3db3566
TT
730.B e2fsck
731program should be run immediately after this option is used, and there
a6eeac1c
AD
732is no guarantee that any data will be salvageable. Due to the wide
733variety of possible options to
6a9c8e0b 734.B mke2fs
a7dc56f4 735that affect the on-disk layout, it is critical to specify exactly
a6eeac1c 736the same format options, such as blocksize, fs-type, feature flags, and
e87bb84b
TT
737other tunables when using this option, or the file system will be further
738corrupted. In some cases, such as file systems that have been resized,
a6eeac1c 739or have had features enabled after format time, it is impossible to
e87bb84b 740overwrite all of the superblocks correctly, and at least some file system
a6eeac1c 741corruption will occur. It is best to run this on a full copy of the
e87bb84b 742file system so other options can be tried if this doesn't work.
8d641749
TT
743.\" .TP
744.\" .BI \-t " test"
745.\" Check the device for bad blocks before creating the file system
746.\" using the specified test.
818180cd 747.TP
3d43836f 748.BI \-t " fs-type"
e87bb84b 749Specify the file system type (i.e., ext2, ext3, ext4, etc.) that is
4727c67d 750to be created.
98794d0e
BS
751If this option is not specified,
752.B mke2fs
753will pick a default either via how
754the command was run (for example, using a name of the form mkfs.ext2,
3d43836f 755mkfs.ext3, etc.) or via a default as defined by the
626a2e74 756.B /etc/mke2fs.conf
e87bb84b 757file. This option controls which file system options are used by
08c8b1ab
TT
758default, based on the
759.B fstypes
760configuration stanza in
626a2e74 761.BR /etc/mke2fs.conf .
08c8b1ab
TT
762.sp
763If the
764.B \-O
e87bb84b
TT
765option is used to explicitly add or remove file system options that
766should be set in the newly created file system, the
767resulting file system may not be supported by the requested
08c8b1ab 768.IR fs-type .
b7150807 769(e.g., "\fBmke2fs \-t ext3 \-O extent /dev/sdXX\fR" will create a
e87bb84b 770file system that is not supported by the ext3 implementation as found in
93aa0246 771the Linux kernel; and "\fBmke2fs \-t ext3 \-O ^has_journal /dev/hdXX\fR"
e87bb84b
TT
772will create a file system that does not have a journal and hence will not
773be supported by the ext3 file system code in the Linux kernel.)
3d43836f
TT
774.TP
775.BI \-T " usage-type[,...]"
e87bb84b 776Specify how the file system is going to be used, so that
98794d0e 777.B mke2fs
e87bb84b 778can choose optimal file system parameters for that use. The usage
3d43836f 779types that are supported are defined in the configuration file
626a2e74 780.BR /etc/mke2fs.conf .
3d43836f
TT
781The user may specify one or more usage types
782using a comma separated list.
783.sp
784If this option is is not specified,
785.B mke2fs
e87bb84b
TT
786will pick a single default usage type based on the size of the file system to
787be created. If the file system size is less than 3 megabytes,
a4396e9d 788.B mke2fs
e87bb84b 789will use the file system type
3d43836f 790.IR floppy .
e87bb84b 791If the file system size is greater than or equal to 3 but less than
3d43836f
TT
792512 megabytes,
793.BR mke2fs (8)
e87bb84b 794will use the file system type
3d43836f 795.IR small .
e87bb84b 796If the file system size is greater than or equal to 4 terabytes but less than
9a2767ff
NK
79716 terabytes,
798.BR mke2fs (8)
e87bb84b 799will use the file system type
9a2767ff 800.IR big .
e87bb84b 801If the file system size is greater than or equal to 16 terabytes,
9a2767ff 802.BR mke2fs (8)
e87bb84b 803will use the file system type
9a2767ff 804.IR huge .
3d43836f
TT
805Otherwise,
806.BR mke2fs (8)
e87bb84b 807will use the default file system type
3d43836f 808.IR default .
48015ced 809.TP
b0afdda1 810.BI \-U " UUID"
e87bb84b 811Set the universally unique identifier (UUID) of the file system to
665ebf37
DD
812.IR UUID .
813The format of the UUID is a series of hex digits separated by hyphens,
814like this:
815"c1b9d5a2-f162-11cf-9ece-0020afc76f16".
816The
817.I UUID
818parameter may also be one of the following:
819.RS 1.2i
820.TP
821.I clear
e87bb84b 822clear the file system UUID
665ebf37
DD
823.TP
824.I random
825generate a new randomly-generated UUID
826.TP
827.I time
828generate a new time-based UUID
829.RE
b0afdda1 830.TP
48015ced
TT
831.B \-v
832Verbose execution.
50787ea2 833.TP
caf8ce4c 834.B \-V
98794d0e 835Print the version number of
818180cd
TT
836.B mke2fs
837and exit.
2d291b3c
DW
838.TP
839.BI \-z " undo_file"
840Before overwriting a file system block, write the old contents of the block to
841an undo file. This undo file can be used with e2undo(8) to restore the old
842contents of the file system should something go wrong. If the empty string is
843passed as the undo_file argument, the undo file will be written to a file named
844mke2fs-\fIdevice\fR.e2undo in the directory specified via the
845\fIE2FSPROGS_UNDO_DIR\fR environment variable or the \fIundo_dir\fR directive
846in the configuration file.
847
848WARNING: The undo file cannot be used to recover from a power or system crash.
5182ad4c
NK
849.SH ENVIRONMENT
850.TP
6a9c8e0b 851.B MKE2FS_SYNC
5182ad4c
NK
852If set to non-zero integer value, its value is used to determine how often
853.BR sync (2)
854is called during inode table initialization.
855.TP
6a9c8e0b 856.B MKE2FS_CONFIG
5182ad4c
NK
857Determines the location of the configuration file (see
858.BR mke2fs.conf (5)).
859.TP
6a9c8e0b 860.B MKE2FS_FIRST_META_BG
5182ad4c
NK
861If set to non-zero integer value, its value is used to determine first meta
862block group. This is mostly for debugging purposes.
863.TP
6a9c8e0b 864.B MKE2FS_DEVICE_SECTSIZE
75dd3c47
TN
865If set to non-zero integer value, its value is used to determine logical
866sector size of the
867.IR device .
868.TP
6a9c8e0b 869.B MKE2FS_DEVICE_PHYS_SECTSIZE
5182ad4c
NK
870If set to non-zero integer value, its value is used to determine physical
871sector size of the
872.IR device .
873.TP
6a9c8e0b 874.B MKE2FS_SKIP_CHECK_MSG
e87bb84b 875If set, do not show the message of file system automatic check caused by
5182ad4c 876mount count or check interval.
3839e657
TT
877.SH AUTHOR
878This version of
879.B mke2fs
a418d3ad 880has been written by Theodore Ts'o <tytso@mit.edu>.
3839e657
TT
881.SH AVAILABILITY
882.B mke2fs
98794d0e 883is part of the e2fsprogs package and is available from
348e43dc 884http://e2fsprogs.sourceforge.net.
3839e657 885.SH SEE ALSO
9dc6ad1e 886.BR mke2fs.conf (5),
e72a9ba3 887.BR badblocks (8),
3839e657
TT
888.BR dumpe2fs (8),
889.BR e2fsck (8),
3c22bf7e
TT
890.BR tune2fs (8),
891.BR ext4 (5)