.\"	$NetBSD: fsck.8,v 1.19 1999/03/10 00:08:33 erh Exp $
.\"	$FreeBSD$
.\"
.\" Copyright (c) 1996 Christos Zoulas.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by Christos Zoulas.
.\" 4. The name of the author may not be used to endorse or promote products
.\"    derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd April 25, 2001
.Dt FSCK 8
.Os
.Sh NAME
.Nm fsck
.Nd filesystem consistency check and interactive repair
.Sh SYNOPSIS
.Nm
.Op Fl dvplfyn
.Op Fl B | F
.Op Fl l Ar maxparallel
.Op Fl t Ar fstype
.Op Fl T Ar fstype : Ns Ar fsoptions
.Op Ar special | node ...
.Sh DESCRIPTION
The
.Nm
command invokes filesystem-specific programs to check
the special devices listed in the
.Xr fstab 5
file or in the command line for consistency.
.Pp
It is normally used in the script
.Pa /etc/rc
during automatic reboot.
Traditionally,
.Nm
is invoked before the filesystems are mounted
and all checks are done to completion at that time.
If background checking is available,
.Nm
is invoked twice.
It is first invoked at the traditional time,
before the filesystems are mounted, with the
.Fl F
flag to do checking on all the filesystems
that cannot do background checking.
It is then invoked a second time,
after the system has completed going multiuser, with the
.Fl B
flag to do checking on all the filesystems
that can do background checking.
Unlike the foreground checking,
the background checking is started asynchonously
so that other system activity can proceed
even on the filesystems that are being checked.
.Pp
If no filesystems are specified,
.Nm
reads the table
.Pa /etc/fstab
to determine which filesystems to check.
Only partitions in
.Pa /etc/fstab
that are mounted
.Dq rw ,
.Dq rq
or
.Dq ro
and that have non-zero pass number are checked.
Filesystems with pass number 1 (normally just the root filesystem)
are always checked one at a time.
.Pp
If not in preen mode, the remaining entries are checked in order of
increasing pass number one at a time.
This is needed when interaction with
.Nm
is required.
.Pp
In preen mode, after pass 1 completes, all remaining filesystems are checked,
in pass number order running one process per disk drive in parallel for each
pass number in increasing order.
.Pp
In other words:  In preen mode all pass 1 partitions are checked sequentially.
Next all pass 2 partitions are checked in parallel, one process per disk drive.
Next all pass 3 partitions are checked in parallel, one process per disk drive.
etc.
.Pp
The disk drive containing each filesystem is inferred from the shortest prefix
of the device name that ends in a digit; the remaining characters are assumed
to be the partition and slice designators.
.Pp
The options are as follows:
.Bl -tag -width indent
.It Fl d
Debugging mode. Just print the commands without executing them. Available
only if
.Nm
is compiled to support it.
.It Fl f
Force checking of filesystems, even when they are marked clean (for filesystems
that support this).
.It Fl n
Causes
.Nm
to assume no as the answer to all operator questions, except "CONTINUE?".
.It Fl p
Enter preen mode.
In preen mode, only a restricted class of innocuous
filesystem inconsistencies will be corrected.
If unexpected inconsistencies caused by hardware or
software failures are encounted, the check program
will exit with a failure.
See the manual pages for the individual check programs
for a list of the sorts of failures that they correct
when running in preen mode.
.It Fl F
Run in foreground mode.
The check program for each filesystem is invoked with the
.Fl F
flag to determine whether it wishes to run as part of
the boot up sequence,
or if it is able to do its job in background after the
system is up and running.
A non-zero exit code indicates that it wants to run in foreground
and the check program is invoked.
A zero exit code indicates that it is able to run later in background
and just a deferred message is printed.
.It Fl B
Run in background mode.
The check program for each filesystem is invoked with the
.Fl F
flag to determine whether it wishes to run as part of
the boot up sequence,
or if it is able to do its job in background after the
system is up and running.
A non-zero exit code indicates that it wanted to run in foreground
which is assumed to have been done, so the filesystem is skipped.
A zero exit code indicates that it is able to run in background
so the check program is invoked with the
.Fl B
flag to indicate that a check on the active filesystem should be done.
When running in background mode,
only one filesystem at a time will be checked.
.It Fl t Ar fstype
Invoke
.Nm
only for the comma separated list of filesystem types. If the
list starts with
.Dq no
then invoke
.Nm
for the filesystem types that are not specified in the list.
.It Fl v
Print the commands before executing them.
.It Fl y
Causes
.Nm
to assume yes
as the answer to all operator questions.
.It Fl T Ar fstype : Ns Ar fsoptions
List of comma separated filesystem specific options for the specified
filesystem type, in the same format as
.Xr mount 8 .
.El
.Sh FILES
.Bl -tag -width /etc/fstab -compact
.It Pa /etc/fstab
filesystem table
.El
.Sh SEE ALSO
.Xr fstab 5 ,
.Xr fsck_ffs 8 ,
.Xr fsck_msdosfs 8 ,
.Xr mount 8