mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-27 03:54:19 +08:00
87cbb381f2
According to the mke2fs man page, the supported cluster-size values for an ext4 filesystem are 2048 to 256M bytes. However, this is not the case. When mkfs is run to create a filesystem with following specifications: * 1k blocksize and cluster-size greater than 32M * 2k blocksize and cluster-size greater than 64M * 4k blocksize and cluster-size greater than 128M mkfs fails with "Invalid argument passed to ext2 library while trying to create journal" error. In general, when the cluster-size to blocksize ratio is greater than 32k, mkfs fails with this error. Went through the code and found out that the function `ext2fs_new_range()` is the source of this error. This is because when the cluster-size to blocksize ratio exceeds 32k, the length argument to the function `ext2fs_new_range()` results in 0. Hence, the error. This patch corrects the valid cluster-size values. Reviewed-by: Darrick J. Wong <djwong@kernel.org> Link: https://lore.kernel.org/r/20240403043037.3992724-1-srivathsa.d.dara@oracle.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
892 lines
26 KiB
Groff
892 lines
26 KiB
Groff
.\" -*- nroff -*-
|
|
.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved.
|
|
.\" This file may be copied under the terms of the GNU Public License.
|
|
.\"
|
|
.TH MKE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
|
|
.SH NAME
|
|
mke2fs \- create an ext2/ext3/ext4 file system
|
|
.SH SYNOPSIS
|
|
.B mke2fs
|
|
[
|
|
.B \-c
|
|
|
|
|
.B \-l
|
|
.I filename
|
|
]
|
|
[
|
|
.B \-b
|
|
.I block-size
|
|
]
|
|
[
|
|
.B \-C
|
|
.I cluster-size
|
|
]
|
|
[
|
|
.B \-d
|
|
.I root-directory
|
|
]
|
|
[
|
|
.B \-D
|
|
]
|
|
[
|
|
.B \-g
|
|
.I blocks-per-group
|
|
]
|
|
[
|
|
.B \-G
|
|
.I number-of-groups
|
|
]
|
|
[
|
|
.B \-i
|
|
.I bytes-per-inode
|
|
]
|
|
[
|
|
.B \-I
|
|
.I inode-size
|
|
]
|
|
[
|
|
.B \-j
|
|
]
|
|
[
|
|
.B \-J
|
|
.I journal-options
|
|
]
|
|
[
|
|
.B \-N
|
|
.I number-of-inodes
|
|
]
|
|
[
|
|
.B \-n
|
|
]
|
|
[
|
|
.B \-m
|
|
.I reserved-blocks-percentage
|
|
]
|
|
[
|
|
.B \-o
|
|
.I creator-os
|
|
]
|
|
[
|
|
.B \-O
|
|
[^]\fIfeature\fR[,...]
|
|
]
|
|
[
|
|
.B \-q
|
|
]
|
|
[
|
|
.B \-r
|
|
.I fs-revision-level
|
|
]
|
|
[
|
|
.B \-E
|
|
.I extended-options
|
|
]
|
|
[
|
|
.B \-v
|
|
]
|
|
[
|
|
.B \-F
|
|
]
|
|
[
|
|
.B \-L
|
|
.I volume-label
|
|
]
|
|
[
|
|
.B \-M
|
|
.I last-mounted-directory
|
|
]
|
|
[
|
|
.B \-S
|
|
]
|
|
[
|
|
.B \-t
|
|
.I fs-type
|
|
]
|
|
[
|
|
.B \-T
|
|
.I usage-type
|
|
]
|
|
[
|
|
.B \-U
|
|
.I UUID
|
|
]
|
|
[
|
|
.B \-V
|
|
]
|
|
[
|
|
.B \-e
|
|
.I errors-behavior
|
|
]
|
|
[
|
|
.B \-z
|
|
.I undo_file
|
|
]
|
|
.I device
|
|
[
|
|
.I fs-size
|
|
]
|
|
@JDEV@.sp
|
|
@JDEV@.B "mke2fs \-O journal_dev"
|
|
@JDEV@[
|
|
@JDEV@.B \-b
|
|
@JDEV@.I block-size
|
|
@JDEV@]
|
|
.\" No external-journal specific journal options yet (size is ignored)
|
|
.\" @JDEV@[
|
|
.\" @JDEV@.B \-J
|
|
.\" @JDEV@.I journal-options
|
|
.\" @JDEV@]
|
|
@JDEV@[
|
|
@JDEV@.B \-L
|
|
@JDEV@.I volume-label
|
|
@JDEV@]
|
|
@JDEV@[
|
|
@JDEV@.B \-n
|
|
@JDEV@]
|
|
@JDEV@[
|
|
@JDEV@.B \-q
|
|
@JDEV@]
|
|
@JDEV@[
|
|
@JDEV@.B \-v
|
|
@JDEV@]
|
|
@JDEV@.I external-journal
|
|
@JDEV@[
|
|
@JDEV@.I fs-size
|
|
@JDEV@]
|
|
.SH DESCRIPTION
|
|
.B mke2fs
|
|
is used to create an ext2, ext3, or ext4 file system, usually in a disk
|
|
partition (or file) named by
|
|
.IR device .
|
|
.PP
|
|
The file system size is specified by
|
|
.IR fs-size .
|
|
If
|
|
.I fs-size
|
|
does not have a suffix, it is interpreted as power-of-two kilobytes,
|
|
unless the
|
|
.B \-b
|
|
.I blocksize
|
|
option is specified, in which case
|
|
.I fs-size
|
|
is interpreted as the number of
|
|
.I blocksize
|
|
blocks. If the fs-size is suffixed by 'k', 'm', 'g', 't'
|
|
(either upper-case or lower-case), then it is interpreted in
|
|
power-of-two kilobytes, megabytes, gigabytes, terabytes, etc.
|
|
If
|
|
.I fs-size
|
|
is omitted,
|
|
.B mke2fs
|
|
will create the file system based on the device size.
|
|
.PP
|
|
If
|
|
.B mke2fs
|
|
is run as
|
|
.B mkfs.XXX
|
|
(i.e.,
|
|
.BR mkfs.ext2 ,
|
|
.BR mkfs.ext3 ,
|
|
or
|
|
.BR mkfs.ext4 )
|
|
the option
|
|
.B \-t
|
|
.I XXX
|
|
is implied; so
|
|
.B mkfs.ext3
|
|
will create a file system for use with ext3,
|
|
.B mkfs.ext4
|
|
will create a file system for use with ext4, and so on.
|
|
.PP
|
|
The defaults of the parameters for the newly created file system, if not
|
|
overridden by the options listed below, are controlled by the
|
|
.B /etc/mke2fs.conf
|
|
configuration file. See the
|
|
.BR mke2fs.conf (5)
|
|
manual page for more details.
|
|
.SH OPTIONS
|
|
.TP
|
|
.BI \-b " block-size"
|
|
Specify the size of blocks in bytes. Valid block-size values are powers of two
|
|
from 1024 up to 65536 (however note that the kernel is able to mount only
|
|
file systems with block-size smaller or equal to the system page size - 4k on
|
|
x86 systems, up to 64k on ppc64 or aarch64 depending on kernel configuration).
|
|
If omitted, block-size is heuristically determined by the file system size and
|
|
the expected usage of the file system (see the
|
|
.B \-T
|
|
option). In most common cases, the default block size is 4k. If
|
|
.I block-size
|
|
is preceded by a negative sign ('-'), 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
|
|
bytes. This is useful for certain hardware devices which require that
|
|
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 read-write
|
|
test is used instead of a fast read-only test.
|
|
.TP
|
|
.B \-C " cluster-size"
|
|
Specify the size of cluster in bytes for file systems using the bigalloc
|
|
feature. Valid cluster-size values range from 2 to 32768 times the
|
|
filesystem blocksize and must be a power of 2. The cluster-size can
|
|
only be specified if the bigalloc feature is enabled. (See the
|
|
.B ext4 (5)
|
|
man page for more details about bigalloc.) The default cluster size if
|
|
bigalloc is enabled is 16 times the block size.
|
|
.TP
|
|
.BI \-d " root-directory"
|
|
Copy the contents of the given directory into the root directory of the
|
|
file system.
|
|
.TP
|
|
.B \-D
|
|
Use direct I/O when writing to the disk. This avoids mke2fs dirtying a
|
|
lot of buffer cache memory, which may impact other applications running
|
|
on a busy server. This option will cause mke2fs to run much more
|
|
slowly, however, so there is a tradeoff to using direct I/O.
|
|
.TP
|
|
.BI \-e " error-behavior"
|
|
Change the behavior of the kernel code when errors are detected.
|
|
In all cases, a file system error will cause
|
|
.BR e2fsck (8)
|
|
to check the file system on the next boot.
|
|
.I error-behavior
|
|
can be one of the following:
|
|
.RS 1.2i
|
|
.TP 1.2i
|
|
.B continue
|
|
Continue normal execution.
|
|
.TP
|
|
.B remount-ro
|
|
Remount file system read-only.
|
|
.TP
|
|
.B panic
|
|
Cause a kernel panic.
|
|
.RE
|
|
.TP
|
|
.BI \-E " extended-options"
|
|
Set extended options for the file system. 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, but is deprecated.
|
|
The following extended options are supported:
|
|
.RS 1.2i
|
|
.TP
|
|
.BI encoding= encoding-name
|
|
Enable the
|
|
.I casefold
|
|
feature in the super block and set
|
|
.I encoding-name
|
|
as the encoding to be used. If
|
|
.I encoding-name
|
|
is not specified, the encoding defined in
|
|
.BR mke2fs.conf (5)
|
|
is used.
|
|
.TP
|
|
.BI encoding_flags= encoding-flags
|
|
Define parameters for file name character encoding operations. If a
|
|
flag is not changed using this parameter, its default value is used.
|
|
.I encoding-flags
|
|
should be a comma-separated lists of flags to be enabled. To disable a
|
|
flag, add it to the list with the prefix "no".
|
|
|
|
The only flag that can be set right now is
|
|
.I strict
|
|
which means that invalid strings should be rejected by the file system.
|
|
In the default configuration, the
|
|
.I strict
|
|
flag is disabled.
|
|
.TP
|
|
.BI mmp_update_interval= interval
|
|
Adjust the initial MMP update interval to
|
|
.I interval
|
|
seconds. Specifying an
|
|
.I interval
|
|
of 0 means to use the default interval. The specified interval must
|
|
be less than 300 seconds. Requires that the
|
|
.B mmp
|
|
feature be enabled.
|
|
.TP
|
|
.BI stride= stride-size
|
|
Configure the file system for a RAID array with
|
|
.I stride-size
|
|
file system blocks. This is the number of blocks read or written to disk
|
|
before moving to the next disk, which is sometimes referred to as the
|
|
.I chunk size.
|
|
This mostly affects placement of file system metadata like bitmaps at
|
|
.B mke2fs
|
|
time to avoid placing them on a single disk, which can hurt performance.
|
|
It may also be used by the block allocator.
|
|
.TP
|
|
.BI stripe_width= stripe-width
|
|
Configure the file system for a RAID array with
|
|
.I stripe-width
|
|
file system blocks per stripe. This is typically 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 offset= offset
|
|
Create the file system at an offset from the beginning of the device or
|
|
file. This can be useful when creating disk images for virtual machines.
|
|
.TP
|
|
.BI resize= max-online-resize
|
|
Reserve enough space so that the block group descriptor table can grow
|
|
to support a file system that has
|
|
.I 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 be fully initialized by
|
|
.BR mke2fs .
|
|
This speeds up file system
|
|
initialization noticeably, but it requires the kernel to finish
|
|
initializing the file system in the background when the file system is
|
|
first mounted. If the option value is omitted, it defaults to 1 to
|
|
enable lazy inode table zeroing.
|
|
.TP
|
|
.B lazy_journal_init\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
|
|
If enabled, the journal inode will not be fully zeroed out by
|
|
.BR mke2fs .
|
|
This speeds up file system initialization noticeably, but carries some
|
|
small risk if the system crashes before the journal has been overwritten
|
|
entirely one time. If the option value is omitted, it defaults to 1 to
|
|
enable lazy journal inode zeroing.
|
|
.TP
|
|
.B assume_storage_prezeroed\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
|
|
If enabled,
|
|
.BR mke2fs
|
|
assumes that the storage device has been prezeroed, skips zeroing the journal
|
|
and inode tables, and annotates the block group flags to signal that the inode
|
|
table has been zeroed.
|
|
.TP
|
|
.B no_copy_xattrs
|
|
Normally
|
|
.B mke2fs
|
|
will copy the extended attributes of the files in the directory
|
|
hierarchy specified via the (optional)
|
|
.B \-d
|
|
option. This will disable the copy and leaves the files in the newly
|
|
created file system without any extended attributes.
|
|
.TP
|
|
.BI num_backup_sb= <0|1|2>
|
|
If the
|
|
.B sparse_super2
|
|
file system feature is enabled this option controls whether there will
|
|
be 0, 1, or 2 backup superblocks created in the file system.
|
|
.TP
|
|
.B packed_meta_blocks\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
|
|
Place the allocation bitmaps and the inode table at the beginning of the
|
|
disk. This option requires that the flex_bg file system feature to be
|
|
enabled in order for it to have effect, and will also create the journal
|
|
at the beginning of the file system. This option is useful for flash
|
|
devices that use SLC flash at the beginning of the disk.
|
|
It also maximizes the range of contiguous data blocks, which
|
|
can be useful for certain specialized use cases, such as supported
|
|
Shingled Drives.
|
|
.TP
|
|
.BI root_owner [=uid:gid]
|
|
Specify the numeric user and group ID of the root directory. If no UID:GID
|
|
is specified, use the user and group ID of the user running \fBmke2fs\fR.
|
|
In \fBmke2fs\fR 1.42 and earlier the UID and GID of the root directory were
|
|
set by default to the UID and GID of the user running the mke2fs command.
|
|
The \fBroot_owner=\fR option allows explicitly specifying these values,
|
|
and avoid side-effects for users that do not expect the contents of the
|
|
file system to change based on the user running \fBmke2fs\fR.
|
|
.TP
|
|
.B test_fs
|
|
Set a flag in the file system superblock indicating that it may be
|
|
mounted using experimental kernel code, such as the ext4dev file system.
|
|
.TP
|
|
.BI orphan_file_size= size
|
|
Set size of the file for tracking unlinked but still open inodes and inodes
|
|
with truncate in progress. Larger file allows for better scalability, reserving
|
|
a few blocks per cpu is ideal.
|
|
.TP
|
|
.B discard
|
|
Attempt to discard blocks at mkfs time (discarding blocks initially is useful
|
|
on solid state devices and sparse / thin-provisioned storage). When the device
|
|
advertises that discard also zeroes data (any subsequent read after the discard
|
|
and before write returns zero), then mark all not-yet-zeroed inode tables as
|
|
zeroed. This significantly speeds up file system initialization. This is set
|
|
as default.
|
|
.TP
|
|
.B nodiscard
|
|
Do not attempt to discard blocks at mkfs time.
|
|
.TP
|
|
.B quotatype
|
|
Specify the which quota types (usrquota, grpquota, prjquota) which
|
|
should be enabled in the created file system. The argument of this
|
|
extended option should be a colon separated list. This option has
|
|
effect only if the
|
|
.B quota
|
|
feature is set. The default quota types to be initialized if this
|
|
option is not specified is both user and group quotas. If the project
|
|
feature is enabled that project quotas will be initialized as well.
|
|
.RE
|
|
.TP
|
|
.B \-F
|
|
Force
|
|
.B mke2fs
|
|
to create a file system, 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 file system even if the file system 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
|
|
reason for the user to ever set this parameter, as the default is optimal
|
|
for the file system. (For administrators who are creating
|
|
file systems on RAID arrays, it is preferable to use the
|
|
.I stride
|
|
RAID parameter as part of the
|
|
.B \-E
|
|
option rather than manipulating the number of blocks per group.)
|
|
This option is generally used by developers who
|
|
are developing test cases.
|
|
.IP
|
|
If the bigalloc feature is enabled, the
|
|
.B \-g
|
|
option will specify the number of clusters in a block group.
|
|
.TP
|
|
.BI \-G " number-of-groups"
|
|
Specify the number of block groups that will be packed together to
|
|
create a larger virtual block group (or "flex_bg group") in an
|
|
ext4 file system. This improves meta-data locality and performance
|
|
on meta-data heavy workloads. The number of groups must be a power
|
|
of 2 and may only be specified if the
|
|
.B flex_bg
|
|
file system feature is enabled.
|
|
.TP
|
|
.BI \-i " bytes-per-inode"
|
|
Specify the bytes/inode ratio.
|
|
.B mke2fs
|
|
creates an inode for every
|
|
.I bytes-per-inode
|
|
bytes of space on the disk. The larger the
|
|
.I bytes-per-inode
|
|
ratio, the fewer inodes will be created. This value generally shouldn't
|
|
be smaller than the blocksize of the file system, since in that case more
|
|
inodes would be made than can ever be used. Be warned that it is not
|
|
possible to change this ratio on a file system after it is created, so be
|
|
careful deciding the correct value for this parameter. Note that resizing
|
|
a file system changes the number of inodes to maintain this ratio.
|
|
.TP
|
|
.BI \-I " inode-size"
|
|
Specify the size of each inode in bytes.
|
|
The
|
|
.I inode-size
|
|
value must be a power of 2 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 file system and can also negatively impact performance.
|
|
It is not
|
|
possible to change this value after the file system is created.
|
|
.IP
|
|
File systems with an inode size of 128 bytes do not support timestamps
|
|
beyond January 19, 2038. Inodes which are 256 bytes or larger will
|
|
support extended timestamps, project id's, and the ability to store some
|
|
extended attributes in the inode table for improved performance.
|
|
.IP
|
|
The default inode size is controlled by the
|
|
.BR mke2fs.conf (5)
|
|
file. In the
|
|
.B mke2fs.conf
|
|
file shipped with e2fsprogs, the default inode size is 256 bytes for
|
|
most file systems, except for small file systems where the inode size
|
|
will be 128 bytes.
|
|
.TP
|
|
.B \-j
|
|
Create the file system with an ext3 journal. If the
|
|
.B \-J
|
|
option is not specified, the default journal parameters will be used to
|
|
create an appropriately sized journal (given the size of the file system)
|
|
stored within the file system. Note that you must be using a kernel
|
|
which has ext3 support in order to actually make use of the journal.
|
|
.TP
|
|
.BI \-J " journal-options"
|
|
Create the ext3 journal using options specified on the command-line.
|
|
Journal options are comma
|
|
separated, and may take an argument using the equals ('=') sign.
|
|
The following journal options are supported:
|
|
.RS 1.2i
|
|
.TP
|
|
.BI size= journal-size
|
|
Create an internal journal (i.e., stored inside the file system) of size
|
|
.I journal-size
|
|
megabytes.
|
|
The size of the journal must be at least 1024 file system blocks
|
|
(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.)
|
|
and may be no more than 10,240,000 file system blocks or half the total
|
|
file system size (whichever is smaller)
|
|
.TP
|
|
.BI fast_commit_size= fast-commit-size
|
|
Create an additional fast commit journal area of size
|
|
.I fast-commit-size
|
|
kilobytes.
|
|
This option is only valid if
|
|
.B fast_commit
|
|
feature is enabled
|
|
on the file system. If this option is not specified and if
|
|
.B fast_commit
|
|
feature is turned on, fast commit area size defaults to
|
|
.I journal-size
|
|
/ 64 megabytes. The total size of the journal with
|
|
.B fast_commit
|
|
feature set is
|
|
.I journal-size
|
|
+ (
|
|
.I fast-commit-size
|
|
* 1024) megabytes. The total journal size may be no more than
|
|
10,240,000 file system blocks or half the total file system size
|
|
(whichever is smaller).
|
|
.TP
|
|
.BI location =journal-location
|
|
Specify the location of the journal. The argument
|
|
.I journal-location
|
|
can either be specified as a block number, or if the number has a units
|
|
suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the
|
|
beginning of the file system.
|
|
@JDEV@.TP
|
|
@JDEV@.BI device= external-journal
|
|
@JDEV@Attach the file system to the journal block device located on
|
|
@JDEV@.IR external-journal .
|
|
@JDEV@The external
|
|
@JDEV@journal must already have been created using the command
|
|
@JDEV@.IP
|
|
@JDEV@.B mke2fs -O journal_dev
|
|
@JDEV@.I external-journal
|
|
@JDEV@.IP
|
|
@JDEV@Note that
|
|
@JDEV@.I external-journal
|
|
@JDEV@must have been created with the
|
|
@JDEV@same block size as the new file system.
|
|
@JDEV@In addition, while there is support for attaching
|
|
@JDEV@multiple file systems 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
|
|
@JDEV@can also be specified by either
|
|
@JDEV@.BI LABEL= label
|
|
@JDEV@or
|
|
@JDEV@.BI UUID= UUID
|
|
@JDEV@to locate the external journal by either the volume label or UUID
|
|
@JDEV@stored in the ext2 superblock at the start of the journal. Use
|
|
@JDEV@.BR dumpe2fs (8)
|
|
@JDEV@to display a journal device's volume label and UUID. See also the
|
|
@JDEV@.B -L
|
|
@JDEV@option of
|
|
@JDEV@.BR tune2fs (8).
|
|
.RE
|
|
@JDEV@.IP
|
|
@JDEV@Only one of the
|
|
@JDEV@.BR size " or " device
|
|
@JDEV@options can be given for a file system.
|
|
.TP
|
|
.BI \-l " filename"
|
|
Read the bad blocks list from
|
|
.IR filename .
|
|
Note that the block numbers in the bad block list must be generated
|
|
using the same block size as used by
|
|
.BR mke2fs .
|
|
As a result, the
|
|
.B \-c
|
|
option to
|
|
.B mke2fs
|
|
is a much simpler and less error-prone method of checking a disk for bad
|
|
blocks before formatting it, as
|
|
.B mke2fs
|
|
will automatically pass the correct parameters to the
|
|
.B badblocks
|
|
program.
|
|
.TP
|
|
.BI \-L " new-volume-label"
|
|
Set the volume label for the file system 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 file system blocks reserved for
|
|
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 file system. The default percentage
|
|
is 5%.
|
|
.TP
|
|
.BI \-M " last-mounted-directory"
|
|
Set the last mounted directory for the file system. This might be useful
|
|
for the sake of utilities that key off of the last mounted directory to
|
|
determine where the file system should be mounted.
|
|
.TP
|
|
.B \-n
|
|
Causes
|
|
.B mke2fs
|
|
to not actually create a file system, but display what it
|
|
would do if it were to create a file system. This can be used to
|
|
determine the location of the backup superblocks for a particular
|
|
file system, so long as the
|
|
.B mke2fs
|
|
parameters that were passed when the
|
|
file system was originally created are used again. (With the
|
|
.B \-n
|
|
option added, of course!)
|
|
.TP
|
|
.BI \-N " number-of-inodes"
|
|
Overrides the default calculation of the number of inodes that should be
|
|
reserved for the file system (which is based on the number of blocks and
|
|
the
|
|
.I bytes-per-inode
|
|
ratio). This allows the user to specify the number
|
|
of desired inodes directly.
|
|
.TP
|
|
.BI \-o " creator-os"
|
|
Overrides the default value of the "creator operating system" field of the
|
|
file system. The creator field is set by default to the name of the OS the
|
|
.B mke2fs
|
|
executable was compiled for.
|
|
.TP
|
|
.B "\-O \fR[^]\fIfeature\fR[,...]"
|
|
Create a file system with the given features (file system options),
|
|
overriding the default file system options. The features that are
|
|
enabled by default are specified by the
|
|
.I base_features
|
|
relation, either in the
|
|
.I [defaults]
|
|
section in the
|
|
.B /etc/mke2fs.conf
|
|
configuration file,
|
|
or in the
|
|
.I [fs_types]
|
|
subsections for the usage types as specified by the
|
|
.B \-T
|
|
option, further modified by the
|
|
.I features
|
|
relation found in the
|
|
.I [fs_types]
|
|
subsections for the file system and usage types. See the
|
|
.BR mke2fs.conf (5)
|
|
manual page for more details.
|
|
The file system type-specific configuration setting found in the
|
|
.I [fs_types]
|
|
section will override the global default found in
|
|
.IR [defaults] .
|
|
.sp
|
|
The file system feature set will be further edited
|
|
using either the feature set specified by this option,
|
|
or if this option is not given, by the
|
|
.I default_features
|
|
relation for the file system type being created, or in the
|
|
.I [defaults]
|
|
section of the configuration file.
|
|
.sp
|
|
The file system 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.
|
|
Features with dependencies will not be removed successfully.
|
|
The pseudo-file system feature "none" will clear all file system features.
|
|
.TP
|
|
For more information about the features which can be set, please see
|
|
the manual page
|
|
.BR ext4 (5).
|
|
.TP
|
|
.B \-q
|
|
Quiet execution. Useful if
|
|
.B mke2fs
|
|
is run in a script.
|
|
.TP
|
|
.BI \-r " revision"
|
|
Set the file system revision for the new file system. Note that 1.2
|
|
kernels only support revision 0 file systems. The default is to
|
|
create revision 1 file systems.
|
|
.TP
|
|
.B \-S
|
|
Write superblock and group descriptors only. This is an extreme
|
|
measure to be taken only in the very unlikely case that all of
|
|
the superblock and backup superblocks are corrupted, and a last-ditch
|
|
recovery method is desired by experienced users. It causes
|
|
.B mke2fs
|
|
to reinitialize the superblock and group descriptors, while not
|
|
touching the inode table and the block and inode bitmaps. The
|
|
.B e2fsck
|
|
program should be run immediately after this option is used, and there
|
|
is no guarantee that any data will be salvageable. Due to the wide
|
|
variety of possible options to
|
|
.B mke2fs
|
|
that affect the on-disk layout, it is critical to specify exactly
|
|
the same format options, such as blocksize, fs-type, feature flags, and
|
|
other tunables when using this option, or the file system will be further
|
|
corrupted. In some cases, such as file systems that have been resized,
|
|
or have had features enabled after format time, it is impossible to
|
|
overwrite all of the superblocks correctly, and at least some file system
|
|
corruption will occur. It is best to run this on a full copy of the
|
|
file system so other options can be tried if this doesn't work.
|
|
.\" .TP
|
|
.\" .BI \-t " test"
|
|
.\" Check the device for bad blocks before creating the file system
|
|
.\" using the specified test.
|
|
.TP
|
|
.BI \-t " fs-type"
|
|
Specify the file system type (i.e., ext2, ext3, ext4, etc.) that is
|
|
to be created.
|
|
If this option is not specified,
|
|
.B mke2fs
|
|
will pick a default either via how
|
|
the command was run (for example, using a name of the form mkfs.ext2,
|
|
mkfs.ext3, etc.) or via a default as defined by the
|
|
.B /etc/mke2fs.conf
|
|
file. This option controls which file system options are used by
|
|
default, based on the
|
|
.B fstypes
|
|
configuration stanza in
|
|
.BR /etc/mke2fs.conf .
|
|
.sp
|
|
If the
|
|
.B \-O
|
|
option is used to explicitly add or remove file system options that
|
|
should be set in the newly created file system, the
|
|
resulting file system may not be supported by the requested
|
|
.IR fs-type .
|
|
(e.g., "\fBmke2fs \-t ext3 \-O extent /dev/sdXX\fR" will create a
|
|
file system that is not supported by the ext3 implementation as found in
|
|
the Linux kernel; and "\fBmke2fs \-t ext3 \-O ^has_journal /dev/hdXX\fR"
|
|
will create a file system that does not have a journal and hence will not
|
|
be supported by the ext3 file system code in the Linux kernel.)
|
|
.TP
|
|
.BI \-T " usage-type[,...]"
|
|
Specify how the file system is going to be used, so that
|
|
.B mke2fs
|
|
can choose optimal file system parameters for that use. The usage
|
|
types that are supported are defined in the configuration file
|
|
.BR /etc/mke2fs.conf .
|
|
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 file system to
|
|
be created. If the file system size is less than 3 megabytes,
|
|
.B mke2fs
|
|
will use the file system type
|
|
.IR floppy .
|
|
If the file system size is greater than or equal to 3 but less than
|
|
512 megabytes,
|
|
.BR mke2fs (8)
|
|
will use the file system type
|
|
.IR small .
|
|
If the file system size is greater than or equal to 4 terabytes but less than
|
|
16 terabytes,
|
|
.BR mke2fs (8)
|
|
will use the file system type
|
|
.IR big .
|
|
If the file system size is greater than or equal to 16 terabytes,
|
|
.BR mke2fs (8)
|
|
will use the file system type
|
|
.IR huge .
|
|
Otherwise,
|
|
.BR mke2fs (8)
|
|
will use the default file system type
|
|
.IR default .
|
|
.TP
|
|
.BI \-U " UUID"
|
|
Set the universally unique identifier (UUID) of the file system to
|
|
.IR UUID .
|
|
The format of the UUID is a series of hex digits separated by hyphens,
|
|
like this:
|
|
"c1b9d5a2-f162-11cf-9ece-0020afc76f16".
|
|
The
|
|
.I UUID
|
|
parameter may also be one of the following:
|
|
.RS 1.2i
|
|
.TP
|
|
.I clear
|
|
clear the file system UUID
|
|
.TP
|
|
.I random
|
|
generate a new randomly-generated UUID
|
|
.TP
|
|
.I time
|
|
generate a new time-based UUID
|
|
.RE
|
|
.TP
|
|
.B \-v
|
|
Verbose execution.
|
|
.TP
|
|
.B \-V
|
|
Print the version number of
|
|
.B mke2fs
|
|
and exit.
|
|
.TP
|
|
.BI \-z " undo_file"
|
|
Before overwriting a file system block, write the old contents of the block to
|
|
an undo file. This undo file can be used with e2undo(8) to restore the old
|
|
contents of the file system should something go wrong. If the empty string is
|
|
passed as the undo_file argument, the undo file will be written to a file named
|
|
mke2fs-\fIdevice\fR.e2undo in the directory specified via the
|
|
\fIE2FSPROGS_UNDO_DIR\fR environment variable or the \fIundo_dir\fR directive
|
|
in the configuration file.
|
|
|
|
WARNING: The undo file cannot be used to recover from a power or system crash.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B MKE2FS_SYNC
|
|
If set to non-zero integer value, its value is used to determine how often
|
|
.BR sync (2)
|
|
is called during inode table initialization.
|
|
.TP
|
|
.B MKE2FS_CONFIG
|
|
Determines the location of the configuration file (see
|
|
.BR mke2fs.conf (5)).
|
|
.TP
|
|
.B MKE2FS_FIRST_META_BG
|
|
If set to non-zero integer value, its value is used to determine first meta
|
|
block group. This is mostly for debugging purposes.
|
|
.TP
|
|
.B MKE2FS_DEVICE_SECTSIZE
|
|
If set to non-zero integer value, its value is used to determine logical
|
|
sector size of the
|
|
.IR device .
|
|
.TP
|
|
.B MKE2FS_DEVICE_PHYS_SECTSIZE
|
|
If set to non-zero integer value, its value is used to determine physical
|
|
sector size of the
|
|
.IR device .
|
|
.TP
|
|
.B MKE2FS_SKIP_CHECK_MSG
|
|
If set, do not show the message of file system automatic check caused by
|
|
mount count or check interval.
|
|
.SH AUTHOR
|
|
This version of
|
|
.B mke2fs
|
|
has been written by Theodore Ts'o <tytso@mit.edu>.
|
|
.SH AVAILABILITY
|
|
.B mke2fs
|
|
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),
|
|
.BR tune2fs (8),
|
|
.BR ext4 (5)
|