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