lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <529382DF.2040109@redhat.com>
Date:	Mon, 25 Nov 2013 11:03:27 -0600
From:	Eric Sandeen <sandeen@...hat.com>
To:	Uri Corin <uri.corin@...il.com>, linux-ext4@...r.kernel.org
Subject: Re: [PATCH] e2fsprogs: tune2fs manpage updates

On 11/23/13, 7:32 PM, Uri Corin wrote:
> Hi,
> 
> I've extended the "Feature" section of the tune2fs manpage to include
> all recognized arguments, as defined in
> http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/log/lib/e2p/feature.c
> - last updated 2012-08-07.
> 
> Going by a recent build of the kernel (3.12), I've marked several
> features as removed, not yet implemented, or implemented by
> non-upstream kernel.
> 
> I've provided minimal explanations, relying heavily on
> ext4.wiki.kernel.org, and referenced each feature's defined constant
> to ease further inquiries.
> 
> My understanding of EXT filesystems is very lacking and this is my
> first experience in both formatting a manpage and submitting patches.
> Corrections and general feedback would be greatly appreciated.
> 
> Regards,
> Uri Corin
> uri.corin@...il.com

Hi Uri, thanks for looking into this.

First of all, it's best to send a patch, not a new full version.

To create the patch, it'd be easiest to use git.

# git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
# cd e2fsprogs.git
# vim ./misc/tune2fs.8.in

<make your changes>

# git diff ./misc/tune2fs.8.in > mypatch

Send the contents of mypatch in the body of your patch email.

However, from a quick look I think you have included features which cannot
actually be set or cleared by tune2fs after the filesystem is created.

These are the features which can be set:

static __u32 ok_features[3] = {
        /* Compat */
        EXT3_FEATURE_COMPAT_HAS_JOURNAL |
                EXT2_FEATURE_COMPAT_DIR_INDEX,
        /* Incompat */
        EXT2_FEATURE_INCOMPAT_FILETYPE |
                EXT3_FEATURE_INCOMPAT_EXTENTS |
                EXT4_FEATURE_INCOMPAT_FLEX_BG |
                EXT4_FEATURE_INCOMPAT_MMP,
        /* R/O compat */
        EXT2_FEATURE_RO_COMPAT_LARGE_FILE |
                EXT4_FEATURE_RO_COMPAT_HUGE_FILE|
                EXT4_FEATURE_RO_COMPAT_DIR_NLINK|
                EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE|
                EXT4_FEATURE_RO_COMPAT_GDT_CSUM |
                EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER |
#ifdef CONFIG_QUOTA
                EXT4_FEATURE_RO_COMPAT_QUOTA |
#endif
                EXT4_FEATURE_RO_COMPAT_METADATA_CSUM
};

and these are the ones which can be cleared:

static __u32 clear_ok_features[3] = {
        /* Compat */
        EXT3_FEATURE_COMPAT_HAS_JOURNAL |
                EXT2_FEATURE_COMPAT_RESIZE_INODE |
                EXT2_FEATURE_COMPAT_DIR_INDEX,
        /* Incompat */
        EXT2_FEATURE_INCOMPAT_FILETYPE |
                EXT4_FEATURE_INCOMPAT_FLEX_BG |
                EXT4_FEATURE_INCOMPAT_MMP,
        /* R/O compat */
        EXT2_FEATURE_RO_COMPAT_LARGE_FILE |
                EXT4_FEATURE_RO_COMPAT_HUGE_FILE|
                EXT4_FEATURE_RO_COMPAT_DIR_NLINK|
                EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE|
                EXT4_FEATURE_RO_COMPAT_GDT_CSUM |
#ifdef CONFIG_QUOTA
                EXT4_FEATURE_RO_COMPAT_QUOTA |
#endif
                EXT4_FEATURE_RO_COMPAT_METADATA_CSUM
};

others are rejected; i.e.:

$ tune2fs -O 64bit fsfile
tune2fs 1.42.4 (12-June-2012)
Setting filesystem feature '64bit' not supported.

Before adding any of these to the manpage, you should test them to 
be sure it's accurate.  :)

Thanks,
-Eric


> ---
> 
> .\" Revision 1.0 93/06/3 23:00  chk
> .\" Initial revision
> .\"
> .\"
> .TH TUNE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version
> @E2FSPROGS_VERSION@"
> .SH NAME
> tune2fs \- adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems
> .SH SYNOPSIS
> .B tune2fs
> [
> .B \-l
> ]
> [
> .B \-c
> .I max-mount-counts
> ]
> [
> .B \-e
> .I errors-behavior
> ]
> [
> .B \-f
> ]
> [
> .B \-i
> .I interval-between-checks
> ]
> [
> .B \-j
> ]
> [
> .B \-J
> .I journal-options
> ]
> [
> .B \-m
> .I reserved-blocks-percentage
> ]
> [
> .B \-o
> .RI [^]mount-options [,...]
> ]
> [
> .B \-r
> .I reserved-blocks-count
> ]
> [
> .B \-s
> .I sparse-super-flag
> ]
> [
> .B \-u
> .I user
> ]
> [
> .B \-g
> .I group
> ]
> [
> .B \-C
> .I mount-count
> ]
> [
> .B \-E
> .I extended-options
> ]
> [
> .B \-L
> .I volume-name
> ]
> [
> .B \-M
> .I last-mounted-directory
> ]
> [
> .B \-O
> .RI [^] feature [,...]
> ]
> [
> .B \-Q
> .I quota-options
> ]
> [
> .B \-T
> .I time-last-checked
> ]
> [
> .B \-U
> .I UUID
> ]
> device
> .SH DESCRIPTION
> .BI tune2fs
> allows the system administrator to adjust various tunable filesystem
> parameters on Linux ext2, ext3, or ext4 filesystems.  The current values
> of these options can be displayed by using the
> .B -l
> option to
> .BR tune2fs (8)
> program, or by using the
> .BR dumpe2fs (8)
> program.
> .PP
> The
> .I device
> specifier can either be a filename (i.e., /dev/sda1), or a LABEL or UUID
> specifier: "\fBLABEL=\fIvolume-name\fR" or "\fBUUID=\fIuuid\fR".  (i.e.,
> LABEL=home or UUID=e40486c6-84d5-4f2f-b99c-
> 032281799c9d).
> .SH OPTIONS
> .TP
> .BI \-c " max-mount-counts"
> Adjust the number of mounts after which the filesystem will be checked by
> .BR e2fsck (8).
> If
> .I max-mount-counts
> is 0 or \-1, the number of times the filesystem is mounted will be disregarded
> by
> .BR e2fsck (8)
> and the kernel.
> .sp
> Staggering the mount-counts at which filesystems are forcibly
> checked will avoid all filesystems being checked at one time
> when using journaled filesystems.
> .sp
> You should strongly consider the consequences of disabling
> mount-count-dependent checking entirely.  Bad disk drives, cables,
> memory, and kernel bugs could all corrupt a filesystem without
> marking the filesystem dirty or in error.  If you are using
> journaling on your filesystem, your filesystem will
> .B never
> be marked dirty, so it will not normally be checked.  A
> filesystem error detected by the kernel will still force
> an fsck on the next reboot, but it may already be too late
> to prevent data loss at that point.
> .sp
> See also the
> .B \-i
> option for time-dependent checking.
> .TP
> .BI \-C " mount-count"
> Set the number of times the filesystem has been mounted.
> If set to a greater value than the max-mount-counts parameter
> set by the
> .B \-c
> option,
> .BR e2fsck (8)
> will check the filesystem at the next reboot.
> .TP
> .BI \-e " error-behavior"
> Change the behavior of the kernel code when errors are detected.
> In all cases, a filesystem error will cause
> .BR e2fsck (8)
> to check the filesystem 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 filesystem read-only.
> .TP
> .B panic
> Cause a kernel panic.
> .RE
> .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 following extended options are supported:
> .RS 1.2i
> .TP
> .B clear_mmp
> Reset the MMP block (if any) back to the clean state.  Use only if
> absolutely certain the device is not currently mounted or being
> fscked, or major filesystem corruption can result.  Needs '-f'.
> .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 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 performance.
> 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 hash_alg= hash-alg
> Set the default hash algorithm used for filesystems with hashed b-tree
> directories.  Valid algorithms accepted are:
> .IR legacy ,
> .IR half_md4 ,
> and
> .IR tea .
> .TP
> .BI mount_opts= mount_option_string
> Set a set of default mount options which will be used when the file
> system is mounted.  Unlike the bitmask-based default mount options which
> can be specified with the
> .B -o
> option,
> .I mount_option_string
> is an arbitrary string with a maximum length of 63 bytes, which is
> stored in the superblock.
> .IP
> The ext4 file system driver will first apply
> the bitmask-based default options, and then parse the
> .IR mount_option_string ,
> before parsing the mount options passed from the
> .BR mount (8)
> program.
> .IP
> This superblock setting is only honored in 2.6.35+ kernels;
> and not at all by the ext2 and ext3 file system drivers.
> .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.
> .TP
> .B ^test_fs
> Clear the test_fs flag, indicating the filesystem should only be mounted
> using production-level filesystem code.
> .RE
> .TP
> .B \-f
> Force the tune2fs operation to complete even in the face of errors.  This
> option is useful when removing the
> .B has_journal
> filesystem feature from a filesystem which has
> an external journal (or is corrupted
> such that it appears to have an external journal), but that
> external journal is not available.
> .sp
> .B WARNING:
> Removing an external journal from a filesystem which was not cleanly unmounted
> without first replaying the external journal can result in
> severe data loss and filesystem corruption.
> .TP
> .BI \-g " group"
> Set the group which can use the reserved filesystem blocks.
> The
> .I group
> parameter can be a numerical gid or a group name.  If a group name is given,
> it is converted to a numerical gid before it is stored in the superblock.
> .TP
> .B \-i " \fIinterval-between-checks\fR[\fBd\fR|\fBm\fR|\fBw\fR]"
> Adjust the maximal time between two filesystem checks.
> No suffix or
> .B d
> will interpret the number
> .I interval-between-checks
> as days,
> .B m
> as months, and
> .B w
> as weeks.  A value of zero will disable the time-dependent checking.
> .sp
> It is strongly recommended that either
> .B \-c
> (mount-count-dependent) or
> .B \-i
> (time-dependent) checking be enabled to force periodic full
> .BR e2fsck (8)
> checking of the filesystem.  Failure to do so may lead to filesystem
> corruption (due to bad disks, cables, memory, or kernel bugs) going
> unnoticed, ultimately resulting in data loss or corruption.
> .TP
> .B \-j
> Add an ext3 journal to the filesystem.  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 filesystem)
> stored within the filesystem.  Note that you must be using a kernel
> which has ext3 support in order to actually make use of the journal.
> .IP
> If this option is used to create a journal on a mounted filesystem, an
> immutable file,
> .BR .journal ,
> will be created in the top-level directory of the filesystem, as it is
> the only safe way to create the journal inode while the filesystem is
> mounted.  While the ext3 journal is visible, it is not safe to
> delete it, or modify it while the filesystem is mounted; for this
> reason the file is marked immutable.
> While checking unmounted filesystems,
> .BR e2fsck (8)
> will automatically move
> .B .journal
> files to the invisible, reserved journal inode.  For all filesystems
> except for the root filesystem,  this should happen automatically and
> naturally during the next reboot cycle.  Since the root filesystem is
> mounted read-only,
> .BR e2fsck (8)
> must be run from a rescue floppy in order to effect this transition.
> .IP
> On some distributions, such as Debian, if an initial ramdisk is used,
> the initrd scripts will automatically convert an ext2 root filesystem
> to ext3 if the
> .BR /etc/fstab
> file specifies the ext3 filesystem for the root filesystem in order to
> avoid requiring the use of a rescue floppy to add an ext3 journal to
> the root filesystem.
> .TP
> .BR \-J " journal-options"
> Override the default ext3 journal parameters. 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 a journal stored in the filesystem of size
> .I journal-size
> megabytes.   The size of the journal must be at least 1024 filesystem blocks
> (i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.)
> and may be no more than 102,400 filesystem blocks.
> There must be enough free space in the filesystem to create a journal of
> that size.
> @JDEV@.TP
> @JDEV@.BI device= external-journal
> @JDEV@...ach the filesystem to the journal block device located on
> @JDEV@.IR external-journal .
> @JDEV@The external
> @JDEV@...rnal must have been already created using the command
> @JDEV@.IP
> @JDEV@.B mke2fs -O journal_dev
> @JDEV@.I external-journal
> @JDEV@.IP
> @JDEV@...e that
> @JDEV@.I external-journal
> @JDEV@...t be formatted with the same block
> @JDEV@...e as filesystems which will be using it.
> @JDEV@In addition, while there is support for attaching
> @JDEV@...tiple 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@...tead 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@...red 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@...ion of
> @JDEV@.BR tune2fs (8).
> .RE
> @JDEV@.IP
> @JDEV@...y one of the
> @JDEV@.BR size " or " device
> @JDEV@...ions can be given for a filesystem.
> .TP
> .B \-l
> List the contents of the filesystem superblock, including the current
> values of the parameters that can be set via this program.
> .TP
> .BI \-L " volume-label"
> Set the volume label of the filesystem.
> Ext2 filesystem labels can be at most 16 characters long; if
> .I volume-label
> is longer than 16 characters,
> .B tune2fs
> will truncate it and print a warning.  The volume label can be used
> by
> .BR mount (8),
> .BR fsck (8),
> and
> .BR /etc/fstab (5)
> (and possibly others) by specifying
> .BI LABEL= volume_label
> instead of a block special device name like
> .BR /dev/hda5 .
> .TP
> .BI \-m " reserved-blocks-percentage"
> Set the percentage of the filesystem which may only be allocated
> by privileged processes.   Reserving some number of filesystem blocks
> for use by privileged processes is done
> to avoid filesystem fragmentation, and to allow system
> daemons, such as
> .BR syslogd (8),
> to continue to function correctly after non-privileged processes are
> prevented from writing to the filesystem.  Normally, the default percentage
> of reserved blocks is 5%.
> .TP
> .BI \-M " last-mounted-directory"
> Set the last-mounted directory for the filesystem.
> .TP
> .BR \-o " [^]\fImount-option\fR[,...]"
> Set or clear the indicated default mount options in the filesystem.
> Default mount options can be overridden by mount options specified
> either in
> .BR /etc/fstab (5)
> or on the command line arguments to
> .BR mount (8).
> Older kernels may not support this feature; in particular,
> kernels which predate 2.4.20 will almost certainly ignore the
> default mount options field in the superblock.
> .IP
> More than one mount option can be cleared or set by separating
> features with commas.  Mount options prefixed with a
> caret character ('^') will be cleared in the filesystem's superblock;
> mount options without a prefix character or prefixed with a plus
> character ('+') will be added to the filesystem.
> .IP
> The following mount options can be set or cleared using
> .BR tune2fs :
> .RS 1.2i
> .TP
> .B debug
> Enable debugging code for this filesystem.
> .TP
> .B bsdgroups
> Emulate BSD behavior when creating new files: they will take the group-id
> of the directory in which they were created.  The standard System V behavior
> is the default, where newly created files take on the fsgid of the current
> process, unless the directory has the setgid bit set, in which case it takes
> the gid from the parent directory, and also gets the setgid bit set if it is
> a directory itself.
> .TP
> .B user_xattr
> Enable user-specified extended attributes.
> .TP
> .B acl
> Enable Posix Access Control Lists.
> .TP
> .B uid16
> Disables 32-bit UIDs and GIDs.  This is for interoperability with
> older kernels which only store and expect 16-bit values.
> .TP
> .B journal_data
> When the filesystem is mounted with journalling enabled, all data
> (not just metadata) is committed into the journal prior to being written
> into the main filesystem.
> .TP
> .B journal_data_ordered
> When the filesystem is mounted with journalling enabled, all data is forced
> directly out to the main file system prior to its metadata being committed
> to the journal.
> .TP
> .B journal_data_writeback
> When the filesystem is mounted with journalling enabled, data may be
> written into the main filesystem after its metadata has been committed
> to the journal.  This may increase throughput, however, it may allow old
> data to appear in files after a crash and journal recovery.
> .TP
> .B nobarrier
> The file system will be mounted with barrier operations in the journal
> disabled.  (This option is currently only supported by the ext4 file
> system driver in 2.6.35+ kernels.)
> .TP
> .B block_validity
> The file system will be mounted with the block_validity option enabled,
> which causes extra checks to be performed after reading or writing from
> the file system.  This prevents corrupted metadata blocks from causing
> file system damage by overwriting parts of the inode table or block
> group descriptors.  This comes at the cost of increased memory and CPU
> overhead, so it is enabled only for debugging purposes.  (This option is
> currently only supported by the ext4 file system driver in 2.6.35+
> kernels.)
> .TP
> .B discard
> The file system will be mounted with the discard mount option.  This will
> cause the file system driver to attempt to use the trim/discard feature
> of some storage devices (such as SSD's and thin-provisioned drives
> available in some enterprise storage arrays) to inform the storage
> device that blocks belonging to deleted files can be reused for other
> purposes.  (This option is currently only supported by the ext4 file
> system driver in 2.6.35+ kernels.)
> .TP
> .B nodelalloc
> The file system will be mounted with the nodelalloc mount option.  This
> will disable the delayed allocation feature.  (This option is currently
> only supported by the ext4 file system driver in 2.6.35+ kernels.)
> .RE
> .TP
> .BR \-O " [^]\fIfeature\fR[,...]"
> Set or clear the indicated filesystem features (options) in the filesystem.
> More than one filesystem feature can be cleared or set by separating
> features with commas.  Filesystem features prefixed with a
> caret character ('^') will be cleared in the filesystem's superblock;
> filesystem features without a prefix character or prefixed with a plus
> character ('+') will be added to the filesystem.
> .IP
> Features are represented in the kernel by the appended "Constant" value.
> .IP
> The following filesystem features can be set or cleared using
> .BR tune2fs :
> .RS 1.2i
> .TP
> .B 64bit
> .br
> Constant EXT4_FEATURE_INCOMPAT_64BIT.
> .br
> Enable a filesystem size of 2^64 blocks.
> .TP
> .B bigalloc
> .br
> Constant EXT4_FEATURE_RO_COMPAT_BIGALLOC.
> .br
> File extents are tracked in units of clusters (of blocks) instead of blocks.
> .br
> May clash with delayed allocation (see
> .BR nodelalloc ).
> .TP
> .B compression
> .br
> Constant EXT2_FEATURE_INCOMPAT_COMPRESSION.
> .TP
> .B dirdata
> .br
> Constant EXT4_FEATURE_INCOMPAT_DIRDATA.
> .br
> Data in directory entry.
> .br
> Not implemented.
> .TP
> .B dir_index
> .br
> Constant EXT2_FEATURE_COMPAT_DIR_INDEX.
> .br
> Use hashed b-trees to speed up lookups in large directories.
> .TP
> .B dir_nlink
> .br
> Constant EXT4_FEATURE_RO_COMPAT_DIR_NLINK.
> .br
> Allow more than 65000 subdirectories per directory.
> .TP
> .B dir_prealloc
> .br
> Constant EXT2_FEATURE_COMPAT_DIR_PREALLOC.
> .br
> Block pre-allocation for new directories
> .TP
> .B ea_inode
> .br
> Constant EXT4_FEATURE_INCOMPAT_EA_INODE.
> .br
> Inodes can be used for large extended attributes.
> .br
> Not implemented.
> .TP
> .B extent, extents
> .br
> Constant EXT3_FEATURE_INCOMPAT_EXTENTS.
> .br
> Instead of using the indirect block scheme for storing the location of
> data blocks in an inode, use extents instead.
> .br
> This is a much more efficient encoding which speeds up filesystem
> access, especially for large files.
> .TP
> .B extra_isize
> .br
> Constant EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE.
> .br
> Nanosecond timestamps and creation time.
> .TP
> .B ext_attr
> .br
> Constant EXT2_FEATURE_COMPAT_EXT_ATTR.
> .br
> Extended attribute blocks.
> .TP
> .B filetype
> .br
> Constant EXT2_FEATURE_INCOMPAT_FILETYPE.
> .br
> Store file type information in directory entries.
> .TP
> .B flex_bg
> .br
> Constant EXT4_FEATURE_INCOMPAT_FLEX_BG.
> .br
> Allow bitmaps and inode tables for a block group to be placed
> anywhere on the storage media.  \fBTune2fs\fR will not reorganize
> the location of the inode tables and allocation bitmaps, as
> .BR mke2fs (8)
> will do when it creates a freshly formatted file system with
> .B flex_bg
> enabled.
> .TP
> .B inline_data
> .br
> Constant EXT4_FEATURE_INCOMPAT_INLINE_DATA.
> .br
> Allows small files or directories to be stored within the in-inode
> extended attribute area.
> .TP
> .B has_journal
> .br
> Constant EXT3_FEATURE_COMPAT_HAS_JOURNAL.
> .br
> Use a journal to ensure filesystem consistency even across unclean shutdowns.
> Setting the filesystem feature is equivalent to using the
> .B \-j
> option.
> .TP
> .B huge_file
> .br
> Constant EXT4_FEATURE_RO_COMPAT_HUGE_FILE.
> .br
> Allows files larger than 2TiB in size.
> .TP
> .B imagic_inodes
> .br
> Constant EXT2_FEATURE_COMPAT_IMAGIC_INODES.
> .TP
> .B journal_dev
> .br
> Constant EXT3_FEATURE_INCOMPAT_JOURNAL_DEV.
> .br
> Filesystem has a separate journal device (see journal-options).
> .TP
> .B large_dir
> Constant EXT4_FEATURE_INCOMPAT_LARGEDIR.
> .br
> Large directory >2GB or 3-level htree.
> .TP
> .B large_file
> .br
> Constant EXT2_FEATURE_RO_COMPAT_LARGE_FILE.
> .br
> Filesystem can contain files that are greater than 2GB.  (Modern kernels
> set this feature automatically when a file > 2GB is created.)
> .TP
> .B lazy_bg
> .br
> Constant EXT2_FEATURE_COMPAT_LAZY_BG.
> .br
> Legacy parameter for testing purposes, no longer supported by kernel.
> .br
> Allows an ext2/ext3 developer to create very large filesystems using
> sparse files where most of the block groups are not initialized and so
> do not require much disk space.
> .TP
> .B metadata_csum
> .br
> Constant EXT4_FEATURE_RO_COMPAT_METADATA_CSUM.
> .br
> Filesystem supports metadata checksumming.
> .br
> Implies
> .B uninit_bg
> though it must be omitted.
> .TP
> .B meta_bg
> .br
> Constant EXT2_FEATURE_INCOMPAT_META_BG.
> .br
> Reduced block group backups.
> .TP
> .B mmp
> .br
> Constant EXT4_FEATURE_INCOMPAT_MMP.
> .br
> Enable or disable multiple mount protection (MMP) feature.  MMP helps to
> protect the filesystem from being multiply mounted and is useful in
> shared storage environments.
> .TP
> .B needs_recovery
> .br
> Constant EXT3_FEATURE_INCOMPAT_RECOVER.
> .br
> This flag is set by the kernel to indicate either a mounted filesystem with
> .B has_journal
> is write enabled or, an unmounted filesystem is in an unclean state.
> .TP
> .B quota
> .br
> Constant EXT4_FEATURE_RO_COMPAT_QUOTA.
> .br
> Causes the quota files (i.e., user.quota and group.quota which existed
> in the older quota design) to be hidden inodes.
> .TP
> .B replica
> .br
> Constant EXT4_FEATURE_RO_COMPAT_REPLICA.
> .br
> Non-upstream feature.
> .TP
> .B resize_inode
> .br
> Constant EXT2_FEATURE_COMPAT_RESIZE_INODE
> .br
> Reserve space so the block group descriptor table may grow in the future.
> .B Tune2fs
> only supports clearing this filesystem feature.
> .TP
> .B snapshot_bitmap
> .br
> Constant EXT2_FEATURE_COMPAT_EXCLUDE_BITMAP.
> .br
> Legacy parameter, no longer supported by kernel.
> .TP
> .B sparse_super
> .br
> Constant EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER.
> .br
> Limit the number of backup superblocks to save space on large filesystems.
> .TP
> .B uninit_bg, uninit_groups
> .br
> Constant EXT4_FEATURE_RO_COMPAT_GDT_CSUM.
> .br
> Allow the kernel to initialize bitmaps and inode tables and keep a high
> watermark for the unused inodes in a filesystem, to reduce
> .BR e2fsck (8)
> time.  This first e2fsck run after enabling this feature will take the
> full time, but subsequent e2fsck runs will take only a fraction of the
> original time, depending on how full the file system is.
> .RE
> .IP
> After setting or clearing
> .BR sparse_super ,
> .BR uninit_bg ,
> .BR filetype ,
> or
> .B resize_inode
> filesystem features,
> .BR e2fsck (8)
> must be run on the filesystem to return the filesystem to a consistent state.
> .B Tune2fs
> will print a message requesting that the system administrator run
> .BR e2fsck (8)
> if necessary.  After setting the
> .B dir_index
> feature,
> .B e2fsck -D
> can be run to convert existing directories to the hashed B-tree format.
> Enabling certain filesystem features may prevent the filesystem from being
> mounted by kernels which do not support those features.  In particular, the
> .BR uninit_bg
> and
> .BR flex_bg
> features are only supported by the ext4 filesystem.
> .TP
> .BI \-p " mmp_check_interval"
> Set the desired MMP check interval in seconds. It is 5 seconds by default.
> .TP
> .BI \-r " reserved-blocks-count"
> Set the number of reserved filesystem blocks.
> .TP
> .BI \-Q " quota-options"
> Sets 'quota' feature on the superblock and works on the quota files for the
> given quota type. Quota options could be one or more of the following:
> .RS 1.2i
> .TP
> .BR [^]usrquota
> Sets/clears user quota inode in the superblock.
> .TP
> .BR [^]grpquota
> Sets/clears group quota inode in the superblock.
> .RE
> .TP
> .BI \-T " time-last-checked"
> Set the time the filesystem was last checked using
> .BR  e2fsck .
> The time is interpreted using the current (local) timezone.
> This can be useful in scripts which use a Logical Volume Manager to make
> a consistent snapshot of a filesystem, and then check the filesystem
> during off hours to make sure it hasn't been corrupted due to
> hardware problems, etc.  If the filesystem was clean, then this option can
> be used to set the last checked time on the original filesystem.  The format
> of
> .I time-last-checked
> is the international date format, with an optional time specifier, i.e.
> YYYYMMDD[HH[MM[SS]]].   The keyword
> .B now
> is also accepted, in which case the last checked time will be set to the
> current time.
> .TP
> .BI \-u " user"
> Set the user who can use the reserved filesystem blocks.
> .I user
> can be a numerical uid or a user name.  If a user name is given, it
> is converted to a numerical uid before it is stored in the superblock.
> .TP
> .BI \-U " UUID"
> Set the universally unique identifier (UUID) of the filesystem 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 filesystem UUID
> .TP
> .I random
> generate a new randomly-generated UUID
> .TP
> .I time
> generate a new time-based UUID
> .RE
> .IP
> The UUID may be used by
> .BR mount (8),
> .BR fsck (8),
> and
> .BR /etc/fstab (5)
> (and possibly others) by specifying
> .BI UUID= uuid
> instead of a block special device name like
> .BR /dev/hda1 .
> .IP
> See
> .BR uuidgen (8)
> for more information.
> If the system does not have a good random number generator such as
> .I /dev/random
> or
> .IR /dev/urandom ,
> .B tune2fs
> will automatically use a time-based UUID instead of a randomly-generated UUID.
> .SH BUGS
> We haven't found any bugs yet.  That doesn't mean there aren't any...
> .SH AUTHOR
> .B tune2fs
> was written by Remy Card <Remy.Card@...ux.org>.  It is currently being
> maintained by Theodore Ts'o <tytso@...m.mit.edu>.
> .B tune2fs
> uses the ext2fs library written by Theodore Ts'o <tytso@....edu>.
> This manual page was written by Christian Kuhtz <chk@...a-hh.Hanse.DE>.
> Time-dependent checking was added by Uwe Ohse <uwe@...ka.gun.de>.
> .SH AVAILABILITY
> .B tune2fs
> is part of the e2fsprogs package and is available from
> http://e2fsprogs.sourceforge.net.
> .SH SEE ALSO
> .BR debugfs (8),
> .BR dumpe2fs (8),
> .BR e2fsck (8),
> .BR mke2fs (8)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists