.\" 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 "February 2009" "util-linux" "System Administration"
.SH NAME
fsck \- check and repair a Linux filesystem
.SH SYNOPSIS
.B fsck
.RB [ \-lsAVRTMNP ]
.RB [ \-r
.RI [ fd ]]
.RB [ \-C
.RI [ fd ]]
.RB [ \-t
.IR fstype ]
.RI [ filesystem \&...\&]
.RB [ \-\- ]
.RI [ fs-specific-options ]
.SH DESCRIPTION
.B fsck
is used to check and optionally repair one or more Linux filesystems.
.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 them.
.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
.I /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:
.PP
.RS
.PD 0
.TP
.B 0
No errors
.TP
.B 1
Filesystem errors corrected
.TP
.B 2
System should be rebooted
.TP
.B 4
Filesystem errors left uncorrected
.TP
.B 8
Operational error
.TP
.B 16
Usage or syntax error
.TP
.B 32
Checking canceled by user request
.TP
.B 128
Shared-library error
.PD
.RE
.PP
The exit code returned when multiple filesystems are checked
is the bit-wise OR of the exit codes for each
filesystem that is checked.
.PP
In actuality,
.B fsck
is simply a front-end for the various filesystem checkers
(\fBfsck\fR.\fIfstype\fR) available under Linux.  The
filesystem-specific checker is searched for in the
PATH environment variable. If the PATH is undefined then
fallback to "/sbin".
.PP
Please see the filesystem-specific checker manual pages for
further details.
.SH OPTIONS
.TP
.B \-l
Create an exclusive
.BR flock (2)
lock file (/run/fsck/<diskname>.lock) for whole-disk device.
This option can be used with one device only (this means that \fB\-A\fR and
\fB\-l\fR are mutually exclusive).  This option is recommended when more
.BR fsck (8)
instances are executed in the same time.  The option is ignored when used for
multiple devices or for non-rotating disks.  \fBfsck\fR does not lock underlying
devices when executed to check stacked devices (e.g.\& MD or DM) \(en this feature is
not implemented yet.
.TP
.BR \-r \ [ \fIfd\fR ]
Report certain statistics for each fsck when it completes.  These statistics
include the exit status, the maximum run set size (in kilobytes), the elapsed
all-clock time and the user and system CPU time used by the fsck run.  For
example:

/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186

GUI front-ends may specify a file descriptor
.IR fd ,
in which case the progress bar information will be sent to that file descriptor
in a machine parsable format.  For example:

/dev/sda1 0 92828 4.002804 2.677592 0.86186
.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 filesystem 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 none of the filesystems in
.I fslist
is prefixed by a negation operator, then only those listed filesystems
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
.I /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
.I /etc/fstab
will be checked.
.sp
For example, if
.B opts=ro
appears in
.IR fslist ,
then only filesystems listed in
.I /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 cannot 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 filesystem type (currently ext2) is used.
.TP
.B \-A
Walk through the
.I /etc/fstab
file and try to check all filesystems in one run.  This option is
typically used from the
.I /etc/rc
system initialization file, instead of multiple commands for checking
a single filesystem.
.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,
.B fsck
will attempt to check them in parallel, although it will avoid running
multiple filesystem checks on the same physical disk.
.sp
.B fsck
does not check stacked devices (RAIDs, dm-crypt, \&...\&) in parallel with any other
device.  See below for FSCK_FORCE_ALL_PARALLEL setting.  The /sys filesystem is
used to determine dependencies between devices.
.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 \(en for example, if the
machine in question is short on memory so that
excessive paging is a concern.
.sp
.B fsck
normally does not check whether the device actually exists before
calling a filesystem specific checker.  Therefore non-existing
devices may cause the system to enter filesystem repair mode during
boot if the filesystem specific checker returns a fatal error.  The
.I /etc/fstab
mount option
.B nofail
may be used to have
.B fsck
skip non-existing devices.
.B fsck
also skips non-existing devices that have the special filesystem type
.BR auto .
.TP
.BR \-C \ [ \fIfd\fR ]
Display completion/progress bars for those filesystem checkers (currently
only for ext[234]) which support them.  \fBfsck\fR 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 filesystems with the
.B \-A
flag, skip the root filesystem.  (This is useful in case the root
filesystem has already been mounted read-write.)
.TP
.B \-T
Don't show the title on startup.
.TP
.B \-V
Produce verbose output, including all filesystem-specific commands
that are executed.
.TP
\fB\-?\fR, \fB\-\-help\fR
Display help text and exit.
.TP
\fB\-\-version\fR
Display version information and exit.
.SH FILESYSTEM SPECIFIC OPTIONS
.B Options which are not understood by fsck are passed to the filesystem-specific checker! 
.PP
These options
.B must
not take arguments, as there is no
way for
.B fsck
to be able to properly guess which options take arguments and which
don't.
.PP
Options and arguments which follow the
.B \-\-
are treated as filesystem-specific options to be passed to the
filesystem-specific checker.
.PP
Please note that \fBfsck\fR 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 options 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 .
Options to different filesystem-specific fsck's are not standardized.
.SH FILES
.I /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 check 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.)  Note that the fs_passno value is still used.
.TP
.B FSCK_MAX_INST
This environment variable will limit the maximum number of filesystem
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 filesystem 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 filesystem 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 filesystem checkers.
.TP
.B FSTAB_FILE
This environment variable allows the system administrator
to override the standard location of the
.I /etc/fstab
file.  It is also useful for developers who are testing
.BR fsck .
.TP
.B LIBBLKID_DEBUG=all
enables libblkid debug output.
.TP
.B LIBMOUNT_DEBUG=all
enables libmount debug output.
.SH SEE ALSO
.na
.BR fstab (5),
.BR mkfs (8),
.BR fsck.ext2 (8)
or
.BR fsck.ext3 (8)
or
.BR e2fsck (8),
.BR cramfsck (8),
.BR fsck.jfs (8),
.BR fsck.nfs (8),
.BR fsck.minix (8),
.BR fsck.msdos (8),
.BR fsck.vfat (8),
.BR fsck.xfs (8),
.BR reiserfsck (8)
.ad
.SH AUTHORS
.nf
Theodore Ts'o <tytso@mit.edu>
Karel Zak <kzak@redhat.com>
.fi
.SH AVAILABILITY
The fsck command is part of the util-linux package and is available from
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
