Whamcloud - gitweb
partinfo: Fix usage message
[tools/e2fsprogs.git] / misc / mke2fs.8.in
index 2221a7d..dc35549 100644 (file)
@@ -26,10 +26,18 @@ mke2fs \- create an ext2/ext3 filesystem
 .I blocks-per-group
 ]
 [
+.B \-G
+.I number-of-groups
+]
+[
 .B \-i
 .I bytes-per-inode
 ]
 [
+.B \-I
+.I inode-size
+]
+[
 .B \-j
 ]
 [
@@ -84,8 +92,12 @@ mke2fs \- create an ext2/ext3 filesystem
 .B \-S
 ]
 [
+.B \-t
+.I fs-type
+]
+[
 .B \-T
-.I filesystem-type
+.I usage-type
 ]
 [
 .B \-V
@@ -175,14 +187,43 @@ option is still accepted for backwards compatibility.   The
 following extended options are supported:
 .RS 1.2i
 .TP
-.BI stride= stripe-size
+.BI stride= stride-size
+Configure the filesystem for a RAID array with
+.I stride-size
+filesystem blocks. This is the number of blocks read or written to disk
+before moving to next disk, which is sometimes referred to as the 
+.I chunk size.
+This mostly affects placement of filesystem metadata like bitmaps at
+.B mke2fs
+time to avoid placing them on a single disk, which can hurt the performanace.
+It may also be used by block allocator.
+.TP
+.BI stripe-width= stripe-width
 Configure the filesystem for a RAID array with
-.I stripe-size
-filesystem blocks per stripe.
+.I stripe-width
+filesystem blocks per stripe. This is typically be stride-size * N, where
+N is the number of data-bearing disks in the RAID (e.g. for RAID 5 there is one
+parity disk so N will be the number of disks in the array minus 1).
+This allows the block allocator to prevent read-modify-write of the
+parity in a RAID stripe if possible when the data is written.
 .TP
 .BI resize= max-online-resize
 Reserve enough space so that the block group descriptor table can grow
 to support a filesystem that has max-online-resize blocks.
+.TP
+.B lazy_itable_init\fR[\fb= \fI<0 to disable, 1 to enable>\fR]
+If enabled and the uninit_bg feature is enabled, the inode table will
+not fully initialized by 
+.BR mke2fs .
+This speeds up filesystem
+initialization noitceably, but it requires the kernel to finish
+initializing the filesystem in the background when the filesystem is
+first mounted.  If the option value is omitted, it defaults to 1 to
+enable lazy inode table initialization.
+.TP
+.B test_fs
+Set a flag in the filesystem superblock indicating that it may be
+mounted using experimental kernel code, such as the ext4dev filesystem.
 .RE
 .TP
 .BI \-f " fragment-size"
@@ -191,8 +232,13 @@ Specify the size of fragments in bytes.
 .B \-F
 Force 
 .B mke2fs
-to run, even if the specified device is not a 
-block special device, or appears to be mounted.
+to create a filesystem, even if the specified device is not a partition
+on a block special device, or if other parameters do not make sense.
+In order to force 
+.B mke2fs
+to create a filesystem even if the filesystem appears to be in use 
+or is mounted (a truly dangerous thing to do), this option must be
+specified twice.
 .TP
 .BI \-g " blocks-per-group"
 Specify the number of blocks in a block group.  There is generally no
@@ -201,11 +247,18 @@ for the filesystem.  (For administrators who are creating
 filesystems on RAID arrays, it is preferable to use the
 .I stride
 RAID parameter as part of the
-.B \-R
+.B \-E
 option rather than manipulating the number of blocks per group.)  
 This option is generally used by developers who
 are developing test cases.  
 .TP
+.BI \-G " number-of-groups"
+Specify the number of block goups that will be packed together to
+create one large virtual block group on an ext4 filesystem.  This
+improves meta-data locality and performance on meta-data heavy
+workloads.  The number of goups must be a power of 2 and may only be
+specified if the flex_bg filesystem feature is enabled.
+.TP
 .BI \-i " bytes-per-inode"
 Specify the bytes/inode ratio. 
 .B mke2fs
@@ -218,6 +271,23 @@ be smaller than the blocksize of the filesystem, since then too many
 inodes will be made.  Be warned that is not possible to expand the number 
 of inodes on a filesystem after it is created, so be careful deciding the
 correct value for this parameter. 
+.TP
+.BI \-I " inode-size"
+Specify the size of each inode in bytes. 
+.B mke2fs
+creates 256-byte inodes by default.  In kernels after 2.6.10 and some
+earlier vendor kernels it is possible to utilize inodes larger than
+128-bytes to store
+extended attributes for improved performance.  The 
+.I inode-size
+value must be a power of two larger or equal to 128.  The larger the 
+.I inode-size
+the more space the inode table will consume, and this reduces the usable
+space in the filesystem and can also negatively impact performance.  
+Extended attributes
+stored in large inodes are not visible with older kernels, and such
+filesystems will not be mountable with 2.4 kernels at all.  It is not
+possible to change this value after the filesystem is created.
 .TP 
 .B \-j
 Create the filesystem with an ext3 journal.  If the
@@ -255,6 +325,11 @@ and may be no more than 102,400 filesystem blocks.
 @JDEV@.I external-journal
 @JDEV@must have been created with the
 @JDEV@same block size as the new filesystem.
+@JDEV@In addition, while there is support for attaching
+@JDEV@multiple filesystems to a single external journal,
+@JDEV@the Linux kernel and 
+@JDEV@.BR e2fsck (8)
+@JDEV@do not currently support shared external journals yet.
 @JDEV@.IP
 @JDEV@Instead of specifying a device name directly,
 @JDEV@.I external-journal
@@ -336,32 +411,59 @@ executable.
 .TP
 .B "\-O \fIfeature\fR[,...]"
 Create filesystem with given features (filesystem options), overriding 
-the default filesystem options.
-Currently, the
-.B sparse_super
-and
-.B filetype
-features are turned on by default when 
-.B mke2fs
-is run on a system with Linux 2.2 or later (unless creator-os is set to
-the Hurd).  Filesystems that may need to be mounted on pre-2.2 Linux or
-other kernels should be created with
-.B "\-O none"
-(or
-.B "\-r 0"
-for Linux 1.2) which will disable these features, even if 
-.B mke2fs 
-is run on a system which can support them.
+the default filesystem options.  The default features which are
+enabled by default are specified by the
+.I base_features
+relation, either in the
+.I [libdefaults]
+section in the
+.B /etc/mke2fs.conf
+configuration file,
+or in the subsection of the
+.I [fs_types]
+section for the usage types as specified by the
+.B -T
+option, further modified by the
+.I features
+relation found in the
+.I [fs_types] section
+based on the filesystem and usage types.  See the
+.BR mke2fs.conf (5)
+manual page for more details.
+The filesystem type-specific configuration setting found in the
+.I [fs_types]
+section will override the global default found in
+.IR [libdefaults] .
 .sp
-The following filesystem options are supported:
+The filesystem feature set will be further edited 
+using either the feature set specification specified by this option, 
+or if this option is not specified, by the
+.I default_features
+relation for the filesystem type being created, or in the 
+.I [libdefaults]
+section of the configuration file.
+.sp
+The filesystem feature set is comprised of a list of features, separated
+by commas, that are to be enabled.  To disable a feature, simply
+prefix the feature name with a  caret ('^') character.  The 
+pseudo-filesystem feature "none" will clear all filesystem features.
 .RS 1.2i
 .TP
+.B large_file
+Filesystem can contain files that are greater than 2GB.  (Modern kernels
+set this feature automatically when a file > 2GB is created.)
+.TP
 .B dir_index
 Use hashed b-trees to speed up lookups in large directories.
 .TP
 .B filetype
 Store file type information in directory entries.
 .TP
+.B flex_bg
+Allow bitmaps and inode tables for a block group to be placed anywhere
+on the storage media (use with -G option to group meta-data in order
+to create a large virtual block group).
+.TP
 .B has_journal
 Create an ext3 journal (as if using the
 .B \-j
@@ -375,6 +477,22 @@ option).
 @JDEV@must be created with the same
 @JDEV@block size as the filesystems that will be using it.
 .TP
+.B extent
+Instead of using the indirect block scheme for storing the location of
+data blocks in an inode, use extents instead.  This is a much more
+efficient encoding which speeds up filesystem access, especially for
+large files.
+.TP
+.B uninit_bg
+Create a filesystem without initializing all of the block groups.  This 
+feature also enables checksums and highest-inode-used statistics in each
+blockgroup.  This feature can
+speed up filesystem creation time noticably (if lazy_itable_init is
+enabled), and can also reduce
+.BR e2fsck time
+dramatically.  It is only supported by the ext4 filesystem in
+recent Linux kernels.
+.TP
 .B resize_inode
 Reserve space so the block group descriptor table may grow in the future.
 Useful for online resizing using 
@@ -420,28 +538,40 @@ or there is no chance of recovery.
 .\" Check the device for bad blocks before creating the file system
 .\" using the specified test.
 .TP
-.BI \-T " fs-type"
+.BI
+.BI \-t " fs-type"
+Specify the filesystem (i.e., ext2, ext3, ext4, etc., is to be created.
+If this option is not specified mke2fs will pick a default either how
+the command was run (if it was run using a name of the form mkfs.ext2,
+mkfs.ext3, etc.) or via a default as defined by the
+.BR /etc/mke2fs.conf (5)
+file.
+.TP
+.BI \-T " usage-type[,...]"
 Specify how the filesystem is going to be used, so that 
 .B mke2fs 
-can choose optimal filesystem parameters for that use.  Currently, the
-primary filesystem parameter which is manipulated is the number of
-inodes contained the filesystem, but in the future other filesystem
-parameters may also changed for specific filesystem usage scenarios.  If
-no filesystem type is specified, filesystem meant for general purpose
-use will be created, with default values for the blocksize, number of
-inodes, etc. based on the size of the filesystem to be created.  The
-supported filesystem types are:
-.RS 1.2i
-.TP 1.2i
-news
-one inode per 4kb block
-.TP
-largefile
-one inode per megabyte
-.TP
-largefile4
-one inode per 4 megabytes
-.RE
+can choose optimal filesystem parameters for that use.  The usage
+types that are supported are defined in the configuration file
+.BR /etc/mke2fs.conf (5).
+The user may specify one or more usage types
+using a comma separated list.
+.sp
+If this option is is not specified,
+.B mke2fs
+will pick a single default usage type based on the size of the filesystem to
+be created.  If the filesystem size is less than or equal to 3 megabytes,
+.B mke2fs
+will use the filesystem type
+.IR floppy .
+If the filesystem size is greater than 3 but less than or equal to
+512 megabytes,
+.BR mke2fs (8)
+will use the filesystem
+.IR small .
+Otherwise,
+.BR mke2fs (8)
+will use the default filesystem type
+.IR default .
 .TP
 .B \-v
 Verbose execution.
@@ -467,6 +597,7 @@ There may be other ones.  Please, report them to the author.
 is part of the e2fsprogs package and is available from 
 http://e2fsprogs.sourceforge.net.
 .SH SEE ALSO
+.BR mke2fs.conf (5),
 .BR badblocks (8),
 .BR dumpe2fs (8),
 .BR e2fsck (8),