419 lines
12 KiB
Groff
419 lines
12 KiB
Groff
.\" 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
|
|
.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 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 .
|