.\" -*- 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 filesystems on different physical disk drives 
in parallel to reduce the total amount of time needed to check all of the
filesystems.
.PP
If no filesystems are specified on the command line, and the 
.B \-A 
option is not specified, 
.B fsck
will default to checking filesystems 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
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.
If an options specifier is present, then only filesystems 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 filesystems 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 filesystems 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 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
typically used from the
.I /etc/rc
system initialization 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 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 other 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 \-C\fR [ \fI "fd" \fR ]
Display completion/progress bars for those filesystem checkers (currently 
only for ext2 and ext3) which support them.   Fsck will manage the
filesystem 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 filesystems and return an exit code of 0
for mounted filesystems.
.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
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 filesystem-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 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
Options to different filesystem-specific fsck's are not standardized.
If in doubt, please consult the man pages of the filesystem-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 filesystem-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 filesystem-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 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 
.BR e2fsck 's
default behavior; it supports this option for backwards compatibility
reasons only.
.TP
.B \-y
For some filesystem-specific checkers, the 
.B \-y 
option will cause the fs-specific fsck to always attempt to fix any
detected filesystem corruption automatically.  Sometimes an expert may
be able to do better driving the fsck manually.  Note that 
.B not
all filesystem-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 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 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).
