.SH SYNOPSIS
.B fsck
[
-.B \-AVRTN
-]
-[
-.B \-s
+.B \-sACVRTNP
]
[
.B \-t
.I fstype
-]
-[
-.B fs-options
-]
+]
.I filesys [ ... ]
+[\-\-] [
+.B fsck-options
+]
.SH DESCRIPTION
.B fsck
-is used to check and optionally repair a Linux file system.
+is used to check and optionally repair a one or more Linux file systems.
.I filesys
-is either the device name (e.g. /dev/hda1, /dev/sdb2) or the mount point
-(e.g. /, /usr, /home) for the file system. If this fsck has several
-filesystems on different physical disk drives to check, this fsck will
-try to run them in parallel. This reduces the total amount time it
-takes to check all of the filesystems, since fsck takes advantage of the
-parallelism of multiple disk spindles.
+can be a device name (e.g.
+.IR /dev/hdc1 ", " /dev/sdb2 ),
+a mount point (e.g.
+.IR / ", " /usr ", " /home ),
+or an ext2 label or UUID specifier (e.g.
+UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd or LABEL=root).
+The
+.B fsck
+program will try to run filesystems on different physical disk drives
+in parallel to reduce total amount time to check all of the filesystems.
.PP
The exit code returned by
.B fsck
\ 128\ \-\ Shared library error
.br
The exit code returned when all file systems are checked using the
-.B -A
+.B \-A
option is the bit-wise OR of the exit codes for each
file system that is checked.
.PP
.B fsck
is simply a front-end for the various file system checkers
(\fBfsck\fR.\fIfstype\fR) available under Linux. The file
-system-specific checker is searched for in /sbin first, then in /etc/fs
-and /etc, and finally in the directories listed in the PATH environment
+system-specific checker is searched for in
+.I /sbin
+first, then in
+.I /etc/fs
+and
+.IR /etc ,
+and finally in the directories listed in the PATH environment
variable. Please see the file system-specific checker manual pages for
further details.
.SH OPTIONS
.TP
-.B -A
+.B \-s
+Serialize
+.B fsck
+operations. This is a good idea if you checking multiple
+filesystems and the checkers are in an interactive mode. (Note:
+.BR e2fsck (8)
+runs in an interactive mode by default. To make
+.BR e2fsck (8)
+run in a non-interactive mode, you must either specify the
+.B \-p
+or
+.B \-a
+option, if you wish for errors to be corrected automatically, or the
+.B \-n
+option if you do not.)
+.TP
+.BI \-t " fslist"
+Specifies the type(s) of file system to be checked. When the
+.B \-A
+flag is specified, only filesystems that match
+.I fslist
+are checked. The
+.I fslist
+parameter is a comma-separated list of filesystems and options
+specifiers. All of the filesystems in this comma-separated list may be
+prefixed by a negation operator
+.RB ' no '
+or
+.RB ' ! ',
+which requests that only those filesystems not listed in
+.I fslist
+will be checked. If all of the filesystems in
+.I fslist
+are not prefixed by a negation operator, then only those filesystems
+listed
+in
+.I fslist
+will be checked.
+.sp
+Options specifiers may be included in the comma separated
+.IR fslist .
+They must have the format
+.BI opts= fs-option\fR,
+and may be prefixed by a negation operator. If an options specifier is
+present, then only filesystems whose
+.B /etc/fstab
+entry do (or do not, if the options specifier was prefixed by a negation
+operator) contain
+.I fs-option
+in their options field of the
+.B /etc/fstab
+file will be checked.
+.sp
+For compatibility with Mandrake distributions whose boot scripts
+depend upon an unauthorized UI change to the
+.B fsck
+program, if a filesystem type of
+.B loop
+is found in
+.IR fslist ,
+it is treated as if
+.B opts=loop
+were specified as an argument to the
+.B \-t
+option.
+.sp
+Normally, the filesystem type is deduced by searching for
+.I filesys
+in the
+.I /etc/fstab
+file and using the corresponding entry.
+If the type can not be deduced, and there is only a single filesystem
+given as an argument to the
+.B \-t
+option,
+.B fsck
+will use the specified filesystem type. If this type is not
+available, then the default file system type (currently ext2) is used.
+.TP
+.B \-A
Walk through the
.I /etc/fstab
file and try to check all file systems in one run. This option is
.I /etc/rc
system initalization file, instead of multiple commands for checking
a single file system.
+.sp
+The root filesystem will be checked first unless the
+.B \-P
+option is specified (see below). After that,
+filesystems will be checked in the order specified by the
+.I fs_passno
+(the sixth) field in the
+.I /etc/fstab
+file.
+Filesystems with a
+.I fs_passno
+value of 0 are skipped and are not checked at all. Filesystems with a
+.I fs_passno
+value of greater than zero will be checked in order, with filesystems
+with filesystems with the lowest
+.I fs_passno
+number being checked first.
+If there are multiple filesystems with the same pass number,
+fsck will attempt to check them in parallel, although it will avoid running
+multiple filesystem checks on the same physical disk.
+.sp
+Hence, a very common configuration in
+.I /etc/fstab
+files is to set the root filesystem to have a
+.I fs_passno
+value of 1
+and to set all filesystems to have a
+.I fs_passno
+value of 2. This will allow
+.B fsck
+to automatically run filesystem checkers in parallel if it is advantageous
+to do so. System administrators might choose
+not to use this configuration if they need to avoid multiple filesystem
+checks running in parallel for some reason --- for example, if the
+machine in question is short on memory so that
+excessive paging is a concern.
.TP
-.B -R
+.B \-C
+Display completion/progress bars for those filesystems checkers (currently
+only for ext2) which support them. Fsck will manage the filesystem checkers
+so that only one of them will display a progress bar at a time.
+.TP
+.B \-N
+Don't execute, just show what would be done.
+.TP
+.B \-P
+When the
+.B \-A
+flag is set, check the root filesystem in parallel with the other filesystems.
+This is not the safest thing in the world to do,
+since if the root filesystem is in doubt things like the
+.BR e2fsck (8)
+executable might be corrupted! This option is mainly provided
+for those sysadmins who don't want to repartition the root
+filesystem to be small and compact (which is really the right solution).
+.TP
+.B \-R
When checking all file systems with the
.B \-A
flag, skip the root file system (in case it's already mounted read-write).
.TP
-.B -T
+.B \-T
Don't show the title on startup.
.TP
-.B -N
-Don't execute, just show what would be done.
-.TP
-.B -s
-Serialize fsck operations. This is a good idea if you checking multiple
-filesystems in and the checkers are in an interactive mode. (Note:
-.B e2fsck
-runs in an interactive mode by default. To make
-.B e2fsck
-run in a non-interactive mode, you must either specify the
-.B -p
-or
-.B -a
-option, if you wish for errors to be corrected automatically, or
-the
-.B -n
-option if you do not.)
-.TP
-.B -V
+.B \-V
Produce verbose output, including all file system-specific commands
that are executed.
.TP
-.BI -t \ fstype
-Specifies the type of file system to be checked. When the
-.B \-A
-flag is specified, only filesystems that match
-.I fstype
-are checked. If
-.I fstype
-is prefixed with
-.B no
-only filesystems whose filesystem do not match
-.I fstype
-are checked.
-.sp
-Normally, the filesystem type is deduced by searching for
-.I filesys
-in the
-.I /etc/fstab
-file and using the corresponding entry.
-If the type can not be deduced,
+.B fsck-options
+Options which which are not understood by
+.B fsck
+are passed to the filesystem-specific checker. These arguments
+.B must
+not take arguments, as there is no
+way for
.B fsck
-will use the type specified by the
-.B \-t
-option if it specifies a unique filesystem type. If this type is not
-available, the the default file system type
-(currently ext2) is used.
-.TP
-.B fs-options
-Any options which are not understood by
-.BR fsck ,
-or which follow the
-.B --
-option are treated as file system-specific options to be passed to the
+to be able to properly guess which arguments take options and which
+don't.
+.IP
+Options and arguments which follow the
+.B \-\-
+are treated as file system-specific options to be passed to the
file system-specific checker.
+.IP
+Please note that fsck is not
+designed to pass arbitrarily complicated options to filesystem-specific
+checkers. If you're doing something complicated, please just
+execute the filesystem-specific checker directly. If you pass
+.B fsck
+some horribly complicated option and arguments, and it doesn't do
+what you expect,
+.B don't bother reporting it as a bug.
+You're almost certainly doing something that you shouldn't be doing
+with
+.BR fsck.
.PP
Currently, standardized file system-specific options are somewhat in
flux. Although not guaranteed, the following options are supported
-by most file system checkers.
+by most file system checkers:
.TP
-.B -a
+.B \-a
Automatically repair the file system without any questions (use
this option with caution). Note that
-.B e2fsck
+.BR e2fsck (8)
supports
-.B -a
-for backwards compatibility only. This option is mapped to e2fsck's
-.B -p
+.B \-a
+for backwards compatibility only. This option is mapped to
+.BR e2fsck 's
+.B \-p
option which is safe to use, unlike the
-.B -a
+.B \-a
option that most file system checkers support.
.TP
-.B -r
+.B \-r
Interactively repair the filesystem (ask for confirmations). Note: It
is generally a bad idea to use this option if multiple fsck's are being
run in parallel. Also note that this is
-.B e2fsck
+.BR e2fsck 's
default behavior; it supports this option for backwards compatibility
reasons only.
.SH AUTHOR
Theodore Ts'o (tytso@mit.edu)
-.PP
-The manual page was shamelessly adapted from David Engel and Fred van
-Kempen's generic fsck front end program, which was in turn shamelessly
-adapted from Remy Card's version for the ext2 file system.
.SH FILES
.IR /etc/fstab .
+.SH ENVIRONMENT VARIABLES
+The
+.B fsck
+program's behavior is affected by the following environment variables:
+.TP
+.B FSCK_FORCE_ALL_PARALLEL
+If this environment variable is set,
+.B fsck
+will attempt to run all of the specified filesystems in parallel,
+regardless of whether the filesystems appear to be on the same
+device. (This is useful for RAID systems or high-end storage systems
+such as those sold by companies such as IBM or EMC.)
+.TP
+.B FSCK_MAX_INST
+This environment variable will limit the maximum number of file system
+checkers that can be running at one time. This allows configurations
+which have a large number of disks to avoid
+.B fsck
+starting too many file system checkers at once, which might overload
+CPU and memory resources available on the system. If this value is
+zero, then an unlimited number of processes can be spawned. This is
+currently the default, but future versions of
+.B fsck
+may attempt to automatically determine how many file system checks can
+be run based on gathering accounting data from the operating system.
+.TP
+.B PATH
+The
+.B PATH
+environment variable is used to find file system checkers. A set of
+system directories are searched first:
+.BR /sbin ,
+.BR /sbin/fs.d ,
+.BR /sbin/fs ,
+.BR /etc/fs ,
+and
+.BR /etc .
+Then the set of directories found in the
+.B PATH
+environment are searched.
+.TP
+.B FSTAB_FILE
+This environment variable allows the system administrator
+to override the standard location of the
+.B /etc/fstab
+file. It is also use for developers who are testing
+.BR fsck .
.SH SEE ALSO
.BR fstab (5),
.BR mkfs (8),