.\" -*- 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 FSCK 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
fsck \- check and repair a Linux file system
.SH SYNOPSIS
.B fsck
[
.B \-sAVRTMNP
]
[
.B \-C
[
.I fd
]
]
[
.B \-t
.I fstype
]
.I [filesys ... ]
[\-\-] [
.B fs-specific-options
]
.SH DESCRIPTION
.B fsck
is used to check and optionally repair one or more Linux file systems.
.I filesys
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).
Normally, the
.B fsck
program will try to handle file systems on different physical disk drives
in parallel to reduce the total amount of time needed to check all of the
file systems.
.PP
If no file systems are specified on the command line, and the
.B \-A
option is not specified,
.B fsck
will default to checking file systems in
.B /etc/fstab
serially.  This is equivalent to the
.B \-As
options.
.PP
The exit code returned by
.B fsck
is the sum of the following conditions:
.br
\	0\	\-\ No errors
.br
\	1\	\-\ File system errors corrected
.br
\	2\	\-\ System should be rebooted
.br
\	4\	\-\ File system errors left uncorrected
.br
\	8\	\-\ Operational error
.br
\	16\	\-\ Usage or syntax error
.br
\	32\	\-\ Fsck canceled by user request
.br
\	128\	\-\ Shared library error
.br
The exit code returned when multiple file systems are checked
is the bit-wise OR of the exit codes for each
file system that is checked.
.PP
In actuality,
.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
.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 \-s
Serialize
.B fsck
operations.  This is a good idea if you are checking multiple
file systems 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 file systems that match
.I fslist
are checked.  The
.I fslist
parameter is a comma-separated list of file systems and options
specifiers.  All of the file systems in this comma-separated list may be
prefixed by a negation operator
.RB ' no '
or
.RB ' ! ',
which requests that only those file systems not listed in
.I fslist
will be checked.  If all of the file systems in
.I fslist
are not prefixed by a negation operator, then only those file systems
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.
If an options specifier is present, then only file systems which contain
.I fs-option
in their mount options field of
.B /etc/fstab
will be checked.  If the options specifier is prefixed by a negation
operator, then only
those file systems that do not have
.I fs-option
in their mount options field of
.B /etc/fstab
will be checked.
.sp
For example, if
.B opts=ro
appears in
.IR fslist ,
then only file systems listed in
.B /etc/fstab
with the
.B ro
option 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 file system 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 file system 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 file system
given as an argument to the
.B \-t
option,
.B fsck
will use the specified file system 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
typically used from the
.I /etc/rc
system initialization file, instead of multiple commands for checking
a single file system.
.sp
The root file system will be checked first unless the
.B \-P
option is specified (see below).  After that,
file systems will be checked in the order specified by the
.I fs_passno
(the sixth) field in the
.I /etc/fstab
file.
File Systems with a
.I fs_passno
value of 0 are skipped and are not checked at all.  File Systems with a
.I fs_passno
value of greater than zero will be checked in order,
with file systems with the lowest
.I fs_passno
number being checked first.
If there are multiple file systems with the same pass number,
fsck will attempt to check them in parallel, although it will avoid running
multiple file system checks on the same physical disk.
.sp
Hence, a very common configuration in
.I /etc/fstab
files is to set the root file system to have a
.I fs_passno
value of 1
and to set all other file systems to have a
.I fs_passno
value of 2.  This will allow
.B fsck
to automatically run file system 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 file system
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 \-C\fR [ \fI "fd" \fR ]
Display completion/progress bars for those file system checkers (currently
only for ext2 and ext3) which support them.   Fsck will manage the
file system checkers so that only one of them will display
a progress bar at a time.  GUI front-ends may specify a file descriptor
.IR fd ,
in which case the progress bar information will be sent to that file descriptor.
.TP
.B \-M
Do not check mounted file systems and return an exit code of 0
for mounted file systems.
.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 file system in parallel with the other file systems.
This is not the safest thing in the world to do,
since if the root file system 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
file system 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
Don't show the title on startup.
.TP
.B \-V
Produce verbose output, including all file system-specific commands
that are executed.
.TP
.B fs-specific-options
Options which are not understood by
.B fsck
are passed to the file system-specific checker.  These arguments
.B must
not take arguments, as there is no
way for
.B fsck
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 file system-specific
checkers.  If you're doing something complicated, please just
execute the file system-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
Options to different file system-specific fsck's are not standardized.
If in doubt, please consult the man pages of the file system-specific
checker.  Although not guaranteed, the following options are supported
by most file system checkers:
.TP
.B \-a
Automatically repair the file system without any questions (use
this option with caution).  Note that
.BR e2fsck (8)
supports
.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
option that some file system checkers support.
.TP
.B \-n
For some file system-specific checkers, the
.B \-n
option will cause the fs-specific fsck to avoid attempting to repair any
problems, but simply report such problems to stdout.  This is however
not true for all file system-specific checkers.  In particular,
.BR fsck.reiserfs (8)
will not report any corruption if given this option.
.BR fsck.minix (8)
does not support the
.B \-n
option at all.
.TP
.B \-r
Interactively repair the file system (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
.BR e2fsck 's
default behavior; it supports this option for backwards compatibility
reasons only.
.TP
.B \-y
For some file system-specific checkers, the
.B \-y
option will cause the fs-specific fsck to always attempt to fix any
detected file system corruption automatically.  Sometimes an expert may
be able to do better driving the fsck manually.  Note that
.B not
all file system-specific checkers implement this option.  In particular
.BR fsck.minix (8)
and
.BR fsck.cramfs (8)
does not support the
.B -y
option as of this writing.
.SH AUTHOR
Theodore Ts'o (tytso@mit.edu)
.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 file systems in parallel,
regardless of whether the file systems 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 useful for developers who are testing
.BR fsck .
.SH SEE ALSO
.BR fstab (5),
.BR mkfs (8),
.BR fsck.ext2 (8)
or
.BR fsck.ext3 (8)
or
.BR e2fsck (8),
.BR cramfsck (8),
.BR fsck.minix (8),
.BR fsck.msdos (8),
.BR fsck.jfs (8),
.BR fsck.nfs (8),
.BR fsck.vfat (8),
.BR fsck.xfs (8),
.BR fsck.xiafs (8),
.BR reiserfsck (8).
