Whamcloud - gitweb
tune2fs: Fix format string warnings
[tools/e2fsprogs.git] / misc / mke2fs.8.in
1 .\" -*- nroff -*-
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.
4 .\"
5 .TH MKE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
6 .SH NAME
7 mke2fs \- create an ext2/ext3 filesystem
8 .SH SYNOPSIS
9 .B mke2fs
10 [
11 .B \-c
12 |
13 .B \-l
14 .I filename
15 ]
16 [
17 .B \-b
18 .I block-size
19 ]
20 [
21 .B \-f
22 .I fragment-size
23 ]
24 [
25 .B \-g
26 .I blocks-per-group
27 ]
28 [
29 .B \-G
30 .I number-of-groups
31 ]
32 [
33 .B \-i
34 .I bytes-per-inode
35 ]
36 [
37 .B \-I
38 .I inode-size
39 ]
40 [
41 .B \-j
42 ]
43 [
44 .B \-J
45 .I journal-options
46 ]
47 [
48 .B \-N
49 .I number-of-inodes
50 ]
51 [
52 .B \-n
53 ]
54 [
55 .B \-m
56 .I reserved-blocks-percentage
57 ]
58 [
59 .B \-o
60 .I creator-os
61 ]
62 [
63 .B \-O
64 .IR feature [,...]
65 ]
66 [
67 .B \-q
68 ]
69 [
70 .B \-r
71 .I fs-revision-level
72 ]
73 [
74 .B \-E
75 .I extended-options
76 ]
77 [
78 .B \-v
79 ]
80 [
81 .B \-F
82 ]
83 [
84 .B \-L
85 .I volume-label
86 ]
87 [
88 .B \-M
89 .I last-mounted-directory
90 ]
91 [
92 .B \-S
93 ]
94 [
95 .B \-t
96 .I fs-type
97 ]
98 [
99 .B \-T
100 .I usage-type
101 ]
102 [
103 .B \-U
104 .I UUID
105 ]
106 [
107 .B \-V
108 ]
109 .I device
110 [
111 .I blocks-count
112 ]
113 @JDEV@.sp
114 @JDEV@.B "mke2fs \-O journal_dev"
115 @JDEV@[
116 @JDEV@.B \-b
117 @JDEV@.I block-size
118 @JDEV@]
119 .\" No external-journal specific journal options yet (size is ignored)
120 .\" @JDEV@[
121 .\" @JDEV@.B \-J
122 .\" @JDEV@.I journal-options
123 .\" @JDEV@]
124 @JDEV@[
125 @JDEV@.B \-L
126 @JDEV@.I volume-label
127 @JDEV@]
128 @JDEV@[
129 @JDEV@.B \-n
130 @JDEV@]
131 @JDEV@[
132 @JDEV@.B \-q
133 @JDEV@]
134 @JDEV@[
135 @JDEV@.B \-v
136 @JDEV@]
137 @JDEV@.I external-journal
138 @JDEV@[
139 @JDEV@.I blocks-count
140 @JDEV@]
141 .SH DESCRIPTION
142 .B mke2fs
143 is used to create an ext2/ext3 filesystem (usually in a disk partition).
144 .I device
145 is the special file corresponding to the device (e.g
146 .IR /dev/hdXX ).
147 .I blocks-count
148 is the number of blocks on the device.  If omitted,
149 .B mke2fs
150 automagically figures the file system size.  If called as
151 .B mkfs.ext3
152 a journal is created as if the
153 .B \-j
154 option was specified.
155 .SH OPTIONS
156 .TP
157 .BI \-b " block-size"
158 Specify the size of blocks in bytes.  Valid block-size values are 1024,
159 2048 and 4096 bytes per block.  If omitted,
160 block-size is heuristically determined by the filesystem size and
161 the expected usage of the filesystem (see the
162 .B \-T
163 option).  If
164 .I block-size
165 is negative, then
166 .B mke2fs
167 will use heuristics to determine the
168 appropriate block size, with the constraint that the block size will be
169 at least
170 .I block-size
171 bytes.  This is useful for certain hardware devices which require that
172 the blocksize be a multiple of 2k.
173 .TP
174 .B \-c
175 Check the device for bad blocks before creating the file system.  If
176 this option is specified twice, then a slower read-write
177 test is used instead of a fast read-only test.
178 .TP
179 .BI \-E " extended-options"
180 Set extended options for the filesystem.  Extended options are comma
181 separated, and may take an argument using the equals ('=') sign.  The
182 .B \-E
183 option used to be
184 .B \-R
185 in earlier versions of
186 .BR mke2fs .
187 The
188 .B \-R
189 option is still accepted for backwards compatibility.   The
190 following extended options are supported:
191 .RS 1.2i
192 .TP
193 .BI stride= stride-size
194 Configure the filesystem for a RAID array with
195 .I stride-size
196 filesystem blocks. This is the number of blocks read or written to disk
197 before moving to the next disk, which is sometimes referred to as the
198 .I chunk size.
199 This mostly affects placement of filesystem metadata like bitmaps at
200 .B mke2fs
201 time to avoid placing them on a single disk, which can hurt performance.
202 It may also be used by the block allocator.
203 .TP
204 .BI stripe-width= stripe-width
205 Configure the filesystem for a RAID array with
206 .I stripe-width
207 filesystem blocks per stripe. This is typically stride-size * N, where
208 N is the number of data-bearing disks in the RAID (e.g. for RAID 5 there is one
209 parity disk, so N will be the number of disks in the array minus 1).
210 This allows the block allocator to prevent read-modify-write of the
211 parity in a RAID stripe if possible when the data is written.
212 .TP
213 .BI resize= max-online-resize
214 Reserve enough space so that the block group descriptor table can grow
215 to support a filesystem that has
216 .I max-online-resize
217 blocks.
218 .TP
219 .B lazy_itable_init\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
220 If enabled and the uninit_bg feature is enabled, the inode table will
221 not be fully initialized by
222 .BR mke2fs .
223 This speeds up filesystem
224 initialization noticeably, but it requires the kernel to finish
225 initializing the filesystem in the background when the filesystem is
226 first mounted.  If the option value is omitted, it defaults to 1 to
227 enable lazy inode table initialization.
228 .TP
229 .B test_fs
230 Set a flag in the filesystem superblock indicating that it may be
231 mounted using experimental kernel code, such as the ext4dev filesystem.
232 .RE
233 .TP
234 .BI \-f " fragment-size"
235 Specify the size of fragments in bytes.
236 .TP
237 .B \-F
238 Force
239 .B mke2fs
240 to create a filesystem, even if the specified device is not a partition
241 on a block special device, or if other parameters do not make sense.
242 In order to force
243 .B mke2fs
244 to create a filesystem even if the filesystem appears to be in use
245 or is mounted (a truly dangerous thing to do), this option must be
246 specified twice.
247 .TP
248 .BI \-g " blocks-per-group"
249 Specify the number of blocks in a block group.  There is generally no
250 reason for the user to ever set this parameter, as the default is optimal
251 for the filesystem.  (For administrators who are creating
252 filesystems on RAID arrays, it is preferable to use the
253 .I stride
254 RAID parameter as part of the
255 .B \-E
256 option rather than manipulating the number of blocks per group.)
257 This option is generally used by developers who
258 are developing test cases.
259 .TP
260 .BI \-G " number-of-groups"
261 Specify the number of block groups that will be packed together to
262 create one large virtual block group on an ext4 filesystem.  This
263 improves meta-data locality and performance on meta-data heavy
264 workloads.  The number of groups must be a power of 2 and may only be
265 specified if the flex_bg filesystem feature is enabled.
266 .TP
267 .BI \-i " bytes-per-inode"
268 Specify the bytes/inode ratio.
269 .B mke2fs
270 creates an inode for every
271 .I bytes-per-inode
272 bytes of space on the disk.  The larger the
273 .I bytes-per-inode
274 ratio, the fewer inodes will be created.  This value generally shouldn't
275 be smaller than the blocksize of the filesystem, since in that case more
276 inodes would be made than can ever be used.  Be warned that it is not
277 possible to expand the number
278 of inodes on a filesystem after it is created, so be careful deciding the
279 correct value for this parameter.
280 .TP
281 .BI \-I " inode-size"
282 Specify the size of each inode in bytes.
283 .B mke2fs
284 creates 256-byte inodes by default.  In kernels after 2.6.10 and some
285 earlier vendor kernels it is possible to utilize inodes larger than
286 128 bytes to store
287 extended attributes for improved performance.  The
288 .I inode-size
289 value must be a power of 2 larger or equal to 128.  The larger the
290 .I inode-size
291 the more space the inode table will consume, and this reduces the usable
292 space in the filesystem and can also negatively impact performance.
293 Extended attributes
294 stored in large inodes are not visible with older kernels, and such
295 filesystems will not be mountable with 2.4 kernels at all.  It is not
296 possible to change this value after the filesystem is created.
297 .TP
298 .B \-j
299 Create the filesystem with an ext3 journal.  If the
300 .B \-J
301 option is not specified, the default journal parameters will be used to
302 create an appropriately sized journal (given the size of the filesystem)
303 stored within the filesystem.  Note that you must be using a kernel
304 which has ext3 support in order to actually make use of the journal.
305 .TP
306 .BI \-J " journal-options"
307 Create the ext3 journal using options specified on the command-line.
308 Journal options are comma
309 separated, and may take an argument using the equals ('=')  sign.
310 The following journal options are supported:
311 .RS 1.2i
312 .TP
313 .BI size= journal-size
314 Create an internal journal (i.e., stored inside the filesystem) of size
315 .I journal-size
316 megabytes.
317 The size of the journal must be at least 1024 filesystem blocks
318 (i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.)
319 and may be no more than 102,400 filesystem blocks.
320 @JDEV@.TP
321 @JDEV@.BI device= external-journal
322 @JDEV@Attach the filesystem to the journal block device located on
323 @JDEV@.IR external-journal .
324 @JDEV@The external
325 @JDEV@journal must already have been created using the command
326 @JDEV@.IP
327 @JDEV@.B mke2fs -O journal_dev
328 @JDEV@.I external-journal
329 @JDEV@.IP
330 @JDEV@Note that
331 @JDEV@.I external-journal
332 @JDEV@must have been created with the
333 @JDEV@same block size as the new filesystem.
334 @JDEV@In addition, while there is support for attaching
335 @JDEV@multiple filesystems to a single external journal,
336 @JDEV@the Linux kernel and
337 @JDEV@.BR e2fsck (8)
338 @JDEV@do not currently support shared external journals yet.
339 @JDEV@.IP
340 @JDEV@Instead of specifying a device name directly,
341 @JDEV@.I external-journal
342 @JDEV@can also be specified by either
343 @JDEV@.BI LABEL= label
344 @JDEV@or
345 @JDEV@.BI UUID= UUID
346 @JDEV@to locate the external journal by either the volume label or UUID
347 @JDEV@stored in the ext2 superblock at the start of the journal.  Use
348 @JDEV@.BR dumpe2fs (8)
349 @JDEV@to display a journal device's volume label and UUID.  See also the
350 @JDEV@.B -L
351 @JDEV@option of
352 @JDEV@.BR tune2fs (8).
353 .RE
354 @JDEV@.IP
355 @JDEV@Only one of the
356 @JDEV@.BR size " or " device
357 @JDEV@options can be given for a filesystem.
358 .TP
359 .BI \-l " filename"
360 Read the bad blocks list from
361 .IR filename .
362 Note that the block numbers in the bad block list must be generated
363 using the same block size as used by
364 .BR mke2fs .
365 As a result, the
366 .B \-c
367 option to
368 .B mke2fs
369 is a much simpler and less error-prone method of checking a disk for bad
370 blocks before formatting it, as
371 .B mke2fs
372 will automatically pass the correct parameters to the
373 .B badblocks
374 program.
375 .TP
376 .BI \-L " new-volume-label"
377 Set the volume label for the filesystem to
378 .IR new-volume-label .
379 The maximum length of the
380 volume label is 16 bytes.
381 .TP
382 .BI \-m " reserved-blocks-percentage"
383 Specify the percentage of the filesystem blocks reserved for
384 the super-user.  This avoids fragmentation, and allows root-owned
385 daemons, such as
386 .BR syslogd (8),
387 to continue to function correctly after non-privileged processes are
388 prevented from writing to the filesystem.  The default percentage
389 is 5%.
390 .TP
391 .BI \-M " last-mounted-directory"
392 Set the last mounted directory for the filesystem.  This might be useful
393 for the sake of utilities that key off of the last mounted directory to
394 determine where the filesystem should be mounted.
395 .TP
396 .B \-n
397 Causes
398 .B mke2fs
399 to not actually create a filesystem, but display what it
400 would do if it were to create a filesystem.  This can be used to
401 determine the location of the backup superblocks for a particular
402 filesystem, so long as the
403 .B mke2fs
404 parameters that were passed when the
405 filesystem was originally created are used again.  (With the
406 .B \-n
407 option added, of course!)
408 .TP
409 .BI \-N " number-of-inodes"
410 Overrides the default calculation of the number of inodes that should be
411 reserved for the filesystem (which is based on the number of blocks and
412 the
413 .I bytes-per-inode
414 ratio).  This allows the user to specify the number
415 of desired inodes directly.
416 .TP
417 .BI \-o " creator-os"
418 Overrides the default value of the "creator operating system" field of the
419 filesystem.  The creator field is set by default to the name of the OS the
420 .B mke2fs
421 executable was compiled for.
422 .TP
423 .B "\-O \fIfeature\fR[,...]"
424 Create a filesystem with the given features (filesystem options),
425 overriding the default filesystem options.  The features that are
426 enabled by default are specified by the
427 .I base_features
428 relation, either in the
429 .I [defaults]
430 section in the
431 .B /etc/mke2fs.conf
432 configuration file,
433 or in the
434 .I [fs_types]
435 subsections for the usage types as specified by the
436 .B \-T
437 option, further modified by the
438 .I features
439 relation found in the
440 .I [fs_types]
441 subsections for the filesystem and usage types.  See the
442 .BR mke2fs.conf (5)
443 manual page for more details.
444 The filesystem type-specific configuration setting found in the
445 .I [fs_types]
446 section will override the global default found in
447 .IR [defaults] .
448 .sp
449 The filesystem feature set will be further edited
450 using either the feature set specified by this option,
451 or if this option is not given, by the
452 .I default_features
453 relation for the filesystem type being created, or in the
454 .I [defaults]
455 section of the configuration file.
456 .sp
457 The filesystem feature set is comprised of a list of features, separated
458 by commas, that are to be enabled.  To disable a feature, simply
459 prefix the feature name with a  caret ('^') character.  The
460 pseudo-filesystem feature "none" will clear all filesystem features.
461 .RS 1.2i
462 .TP
463 .B large_file
464 Filesystem can contain files that are greater than 2GB.  (Modern kernels
465 set this feature automatically when a file > 2GB is created.)
466 .TP
467 .B dir_index
468 Use hashed b-trees to speed up lookups in large directories.
469 .TP
470 .B filetype
471 Store file type information in directory entries.
472 .TP
473 .B flex_bg
474 Allow bitmaps and inode tables for a block group to be placed anywhere
475 on the storage media (use with \-G option to group meta-data in order
476 to create a large virtual block group).
477 .TP
478 .B has_journal
479 Create an ext3 journal (as if using the
480 .B \-j
481 option).
482 @JDEV@.TP
483 @JDEV@.B journal_dev
484 @JDEV@Create an external ext3 journal on the given device
485 @JDEV@instead of a regular ext2 filesystem.
486 @JDEV@Note that
487 @JDEV@.I external-journal
488 @JDEV@must be created with the same
489 @JDEV@block size as the filesystems that will be using it.
490 .TP
491 .B extent
492 Instead of using the indirect block scheme for storing the location of
493 data blocks in an inode, use extents instead.  This is a much more
494 efficient encoding which speeds up filesystem access, especially for
495 large files.
496 .TP
497 .B uninit_bg
498 Create a filesystem without initializing all of the block groups.  This
499 feature also enables checksums and highest-inode-used statistics in each
500 blockgroup.  This feature can
501 speed up filesystem creation time noticeably (if lazy_itable_init is
502 enabled), and can also reduce
503 .BR e2fsck
504 time dramatically.  It is only supported by the ext4 filesystem in
505 recent Linux kernels.
506 .TP
507 .B resize_inode
508 Reserve space so the block group descriptor table may grow in the future.
509 Useful for online resizing using
510 .BR resize2fs .
511 By default
512 .B mke2fs
513 will attempt to reserve enough space so that the
514 filesystem may grow to 1024 times its initial size.  This can be changed
515 using the
516 .B resize
517 extended option.
518 .TP
519 .B sparse_super
520 Create a filesystem with fewer superblock backup copies
521 (saves space on large filesystems).
522 .RE
523 .TP
524 .B \-q
525 Quiet execution.  Useful if
526 .B mke2fs
527 is run in a script.
528 .TP
529 .BI \-r " revision"
530 Set the filesystem revision for the new filesystem.  Note that 1.2
531 kernels only support revision 0 filesystems.  The default is to
532 create revision 1 filesystems.
533 .TP
534 .B \-S
535 Write superblock and group descriptors only.  This is useful if all of
536 the superblock and backup superblocks are corrupted, and a last-ditch
537 recovery method is desired.  It causes
538 .B mke2fs
539 to reinitialize the
540 superblock and group descriptors, while not touching the inode table
541 and the block and inode bitmaps.  The
542 .B e2fsck
543 program should be run immediately after this option is used, and there
544 is no guarantee that any data will be salvageable.  It is critical to
545 specify the correct filesystem blocksize when using this option,
546 or there is no chance of recovery.
547 .\" .TP
548 .\" .BI \-t " test"
549 .\" Check the device for bad blocks before creating the file system
550 .\" using the specified test.
551 .TP
552 .BI \-t " fs-type"
553 Specify the filesystem type (i.e., ext2, ext3, ext4, etc.) that is to be created.
554 If this option is not specified,
555 .B mke2fs
556 will pick a default either via how
557 the command was run (for example, using a name of the form mkfs.ext2,
558 mkfs.ext3, etc.) or via a default as defined by the
559 .BR /etc/mke2fs.conf (5)
560 file.   This option controls which filesystem options are used by
561 default, based on the
562 .B fstypes
563 configuration stanza in
564 .BR /etc/mke2fs.conf (5).
565 .sp
566 If the
567 .B \-O
568 option is used to explicitly add or remove filesystem options that
569 should be set in the newly created filesystem, the
570 resulting filesystem may not be supported by the requested
571 .IR fs-type .
572 (e.g., "\fBmke2fs -t ext3 -O extents /dev/sdXX\fR" will create a
573 filesystem that is not supported by the ext3 implementation as found in
574 the Linux kernel; and "\fBmke2fs -t ext3 -O ^has_journal /dev/hdXX\fR"
575 will create a filesystem that does not have a journal and hence will not
576 be supported by the ext3 filesystem code in the Linux kernel.)
577 .TP
578 .BI \-T " usage-type[,...]"
579 Specify how the filesystem is going to be used, so that
580 .B mke2fs
581 can choose optimal filesystem parameters for that use.  The usage
582 types that are supported are defined in the configuration file
583 .BR /etc/mke2fs.conf (5).
584 The user may specify one or more usage types
585 using a comma separated list.
586 .sp
587 If this option is is not specified,
588 .B mke2fs
589 will pick a single default usage type based on the size of the filesystem to
590 be created.  If the filesystem size is less than or equal to 3 megabytes,
591 .B mke2fs
592 will use the filesystem type
593 .IR floppy .
594 If the filesystem size is greater than 3 but less than or equal to
595 512 megabytes,
596 .BR mke2fs (8)
597 will use the filesystem
598 .IR small .
599 Otherwise,
600 .BR mke2fs (8)
601 will use the default filesystem type
602 .IR default .
603 .TP
604 .BI \-U " UUID"
605 Create the filesystem with the specified UUID.
606 .TP
607 .B \-v
608 Verbose execution.
609 .TP
610 .B \-V
611 Print the version number of
612 .B mke2fs
613 and exit.
614 .SH AUTHOR
615 This version of
616 .B mke2fs
617 has been written by Theodore Ts'o <tytso@mit.edu>.
618 .SH BUGS
619 .B mke2fs
620 accepts the
621 .B \-f
622 option but currently ignores it because the second
623 extended file system does not support fragments yet.
624 .br
625 There may be other ones.  Please, report them to the author.
626 .SH AVAILABILITY
627 .B mke2fs
628 is part of the e2fsprogs package and is available from
629 http://e2fsprogs.sourceforge.net.
630 .SH SEE ALSO
631 .BR mke2fs.conf (5),
632 .BR badblocks (8),
633 .BR dumpe2fs (8),
634 .BR e2fsck (8),
635 .BR tune2fs (8)