mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-12-11 19:03:40 +08:00
fe263da923
Adapted from the SuSE patch, but fixes a number of very serious problems with the patch in SLES: 1) This changeset uses -M instead of -m; most lowercase options are reserved for use by the filesystem-specific fsck programs. All new fsck options must be upper case. 2) This changeset will skip the root filesystem in "fsck -AM", which the SLES patch will not do. 3) Loading /proc/mounts into the fs_info can cause -t opts matching to malfuction. So this changeset uses a simplified version of the ismounted.c function from the ext2fs library. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
415 lines
11 KiB
Groff
415 lines
11 KiB
Groff
.\" -*- 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).
|