Whamcloud - gitweb
e2fsck: Fix directory i_size handling
[tools/e2fsprogs.git] / misc / mke2fs.8.in
index 821f2d0..14c3ca5 100644 (file)
@@ -4,7 +4,7 @@
 .\" 
 .TH MKE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
 .SH NAME
-mke2fs \- create an ext2/3 filesystem
+mke2fs \- create an ext2/ext3 filesystem
 .SH SYNOPSIS
 .B mke2fs
 [
@@ -30,6 +30,10 @@ mke2fs \- create an ext2/3 filesystem
 .I bytes-per-inode
 ]
 [
+.B \-I
+.I inode-size
+]
+[
 .B \-j
 ]
 [
@@ -63,8 +67,8 @@ mke2fs \- create an ext2/3 filesystem
 .I fs-revision-level
 ]
 [
-.B \-R
-.I raid-options
+.B \-E
+.I extended-options
 ]
 [
 .B \-v
@@ -142,12 +146,14 @@ option was specified.
 Specify the size of blocks in bytes.  Valid block size vales are 1024, 
 2048 and 4096 bytes per block.  If omitted,
 .B mke2fs
-block-size is hueristically determined by the file system size and
+block-size is heuristically determined by the file system size and
 the expected usage of the filesystem (see the
 .B \-T
 option).  If 
 .I block-size
-is negative, then mke2fs will use hueristics to determine the
+is negative, then 
+.B mke2fs
+will use heuristics to determine the
 appropriate block size, with the constraint that the block size will be
 at least 
 .I block-size
@@ -156,17 +162,63 @@ the blocksize be a multiple of 2k.
 .TP
 .B \-c
 Check the device for bad blocks before creating the file system.  If
-this option is specified twice, then a slower, destructive, read-write
+this option is specified twice, then a slower, read-write
 test is used instead of a fast read-only test.
 .TP
+.BI \-E " extended-options"
+Set extended options for the filesystem.  Extended options are comma
+separated, and may take an argument using the equals ('=') sign.  The
+.B -E
+option used to be 
+.B -R
+in earlier versions of 
+.BR mke2fs .
+The 
+.B -R
+option is still accepted for backwards compatibility.   The 
+following extended options are supported:
+.RS 1.2i
+.TP
+.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. This mostly affects placement of filesystem
+metadata like bitmaps at
+.BR mke2fs (2)
+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-width
+filesystem blocks per stripe. This is typically be stride-size * N, where
+N is the number of data disks in the RAID (e.g. RAID 5 N+1, RAID 6 N+2).
+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 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"
 Specify the size of fragments in bytes.
 .TP
 .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
@@ -192,6 +244,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
@@ -229,6 +298,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
@@ -264,17 +338,25 @@ will automatically pass the correct parameters to the
 .B badblocks
 program.
 .TP
-.B \-L
-Set the volume label for the filesystem.
+.BI \-L " new-volume-label"
+Set the volume label for the filesystem to
+.IR new-volume-label .
+The maximum length of the
+volume label is 16 bytes.
 .TP
 .BI \-m " reserved-blocks-percentage"
 Specify the percentage of the filesystem blocks reserved for 
-the super-user.  This value defaults to 5%.
+the super-user.  This avoids fragmentation, and allows root-owned
+daemons, such as 
+.BR syslogd (8),
+to continue to function correctly after non-privileged processes are 
+prevented from writing to the filesystem.  The default percentage 
+is 5%.
 .TP
 .B \-M
 Set the last mounted directory for the filesystem.  This might be useful 
 for the sake of utilities that key off of the last mounted directory to 
-determine where the filesytem should be mounted.
+determine where the filesystem should be mounted.
 .TP
 .B \-n
 causes mke2fs to not actually create a filesystem, but display what it
@@ -301,28 +383,42 @@ of the
 executable.
 .TP
 .B "\-O \fIfeature\fR[,...]"
-Create filesystem with given features (filesystem options).  Features
-which are normally turned on by default may be disabled by prefixing the
-feature with a caret ('^') symbol.
-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.
+Create filesystem with given features (filesystem options), overriding 
+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 filesystem type as specified by the
+.B -T
+option.  The filesystem type-specific configuration setting found in
+the 
+.I [fs_types]
+section will override the global default found in
+.IR [libdefaults] .
+.sp
+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 following filesystem options are supported:
+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
@@ -342,6 +438,18 @@ option).
 @JDEV@must be created with the same
 @JDEV@block size as the filesystems that will be using it.
 .TP
+.B resize_inode
+Reserve space so the block group descriptor table may grow in the future.
+Useful for online resizing using 
+.BR resize2fs .
+By default 
+.B mke2fs
+will attempt to reserve enough space so that the
+filesystem may grow to 1024 times its initial size.  This can be changed
+using
+.B resize
+extended option.
+.TP
 .B sparse_super
 Create a filesystem with fewer superblock backup copies
 (saves space on large filesystems).
@@ -357,18 +465,6 @@ Set the filesystem revision for the new filesystem.  Note that 1.2
 kernels only support revision 0 filesystems.  The default is to 
 create revision 1 filesystems.
 .TP
-.BI \-R " raid-options"
-Set raid-related options for the filesystem.  Raid options are comma
-separated, and may take an argument using the equals ('=') sign.  The 
-following options are supported:
-.RS 1.2i
-.TP
-.BI stride= stripe-size
-Configure the filesystem for a RAID array with
-.I stripe-size
-filesystem blocks per stripe.
-.RE
-.TP
 .B \-S
 Write superblock and group descriptors only.  This is useful if all of
 the superblock and backup superblocks are corrupted, and a last-ditch
@@ -388,20 +484,13 @@ or there is no chance of recovery.
 .\" using the specified test.
 .TP
 .BI \-T " fs-type"
-Specify how the filesystem is going to be used, so that mke2fs can 
-chose optimal filesystem parameters for that use.  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
+Specify how the filesystem is going to be used, so that 
+.B mke2fs 
+can choose optimal filesystem parameters for that use.  The filesystem
+types that are can be supported are defined in the configuration file 
+.BR /etc/mke2fs.conf (5).
+The default configuration file contains definitions for the filesystem
+types: small, floppy, news, largefile, and largefile4.  
 .TP
 .B \-v
 Verbose execution.
@@ -427,6 +516,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),