409 lines
11 KiB
Groff
409 lines
11 KiB
Groff
.\" $NetBSD: fsck_ffs.8,v 1.52 2022/11/17 06:40:38 chs Exp $
|
|
.\"
|
|
.\" Copyright (c) 1980, 1989, 1991, 1993
|
|
.\" The Regents of the University of California. 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. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
|
|
.\"
|
|
.\" @(#)fsck.8 8.3 (Berkeley) 11/29/94
|
|
.\"
|
|
.Dd May 4, 2018
|
|
.Dt FSCK_FFS 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm fsck_ffs
|
|
.Nd Fast File System consistency check and interactive repair
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl adFfPpqUXz
|
|
.Op Fl B Ar byteorder
|
|
.Op Fl b Ar block
|
|
.Op Fl c Ar level
|
|
.Op Fl m Ar mode
|
|
.Op Fl x Ar snap-backup
|
|
.Op Fl y | n
|
|
.Ar filesystem ...
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
performs interactive file system consistency checks and repair for each of
|
|
the file systems specified on the command line.
|
|
It is normally invoked from
|
|
.Xr fsck 8 .
|
|
.Pp
|
|
The kernel takes care that only a restricted class of innocuous file system
|
|
inconsistencies can happen unless hardware or software failures intervene.
|
|
These are limited to the following:
|
|
.Pp
|
|
.Bl -item -compact -offset indent
|
|
.It
|
|
Unreferenced inodes
|
|
.It
|
|
Link counts in inodes too large
|
|
.It
|
|
Missing blocks in the free map
|
|
.It
|
|
Blocks in the free map also in files
|
|
.It
|
|
Counts in the super-block wrong
|
|
.El
|
|
.Pp
|
|
These are the only inconsistencies that
|
|
.Nm
|
|
in
|
|
.Dq preen
|
|
mode (with the
|
|
.Fl p
|
|
option) will correct; if it encounters other inconsistencies, it exits
|
|
with an abnormal return status.
|
|
For each corrected inconsistency one or more lines will be printed
|
|
identifying the file system on which the correction will take place,
|
|
and the nature of the correction.
|
|
After successfully correcting a file system,
|
|
.Nm
|
|
will print the number of files on that file system,
|
|
the number of used and free blocks,
|
|
and the percentage of fragmentation.
|
|
.Pp
|
|
If sent a
|
|
.Dv QUIT
|
|
signal,
|
|
.Nm
|
|
will finish the file system checks, then exit with an abnormal return status.
|
|
.Pp
|
|
If
|
|
.Nm
|
|
receives a
|
|
.Dv SIGINFO
|
|
signal
|
|
(see the
|
|
.Sy status
|
|
argument for
|
|
.Xr stty 1 ) ,
|
|
a line will be written to the standard error output indicating
|
|
the name of the device currently being checked, the current phase
|
|
number and phase-specific progress information.
|
|
.Pp
|
|
Without the
|
|
.Fl p
|
|
option,
|
|
.Nm
|
|
audits and interactively repairs inconsistent conditions for file systems.
|
|
If the file system is inconsistent the operator is prompted for concurrence
|
|
before each correction is attempted.
|
|
It should be noted that some of the corrective actions which are not
|
|
correctable under the
|
|
.Fl p
|
|
option will result in some loss of data.
|
|
The amount and severity of data lost may be determined from the diagnostic
|
|
output.
|
|
The default action for each consistency correction
|
|
is to wait for the operator to respond
|
|
.Li yes
|
|
or
|
|
.Li no .
|
|
If the operator does not have write permission on the file system
|
|
.Nm
|
|
will default to a
|
|
.Fl n
|
|
action.
|
|
.Pp
|
|
.Nm
|
|
has more consistency checks than
|
|
its predecessors
|
|
.Em check , dcheck , fcheck ,
|
|
and
|
|
.Em icheck
|
|
combined.
|
|
.Pp
|
|
The following flags are interpreted by
|
|
.Nm .
|
|
.Bl -tag -width XBXbyteorderXX -offset indent
|
|
.It Fl a
|
|
Interpret the filesystem as an Apple UFS filesystem, even if
|
|
there is no Apple UFS volume label present.
|
|
.It Fl B Ar byteorder
|
|
Convert the file system metadata to
|
|
.Ar byteorder
|
|
byte order if needed.
|
|
Valid byte orders are
|
|
.Dq be
|
|
and
|
|
.Dq le .
|
|
If
|
|
.Nm
|
|
is interrupted while swapping the metadata byte order, the file system cannot
|
|
be recovered.
|
|
.Nm
|
|
will print a message in interactive mode if the file system is not in host
|
|
byte order.
|
|
.It Fl b Ar block
|
|
Use the block number
|
|
.Ar block
|
|
as the super block for the file system.
|
|
Block 32 is usually an alternative super block.
|
|
The
|
|
.Fl b
|
|
option of the
|
|
.Xr scan_ffs 8
|
|
utility can also be used to find the offset of other super block backups
|
|
in a file system.
|
|
.It Fl c Ar level
|
|
Convert the FFSv1 file system to the level
|
|
.Ar level .
|
|
Note that the level of a file system can only be raised.
|
|
There are currently five levels defined:
|
|
.Bl -tag -width 3n -offset indent
|
|
.It 0
|
|
The file system is in the old (static table) format.
|
|
.It 1
|
|
The file system is in the new (dynamic table) format.
|
|
Such file systems are made by using the
|
|
.Fl O Ar 0
|
|
option to
|
|
.Xr newfs 8 .
|
|
.It 2
|
|
The file system supports 32-bit UIDs and GIDs,
|
|
short symbolic links are stored in the inode,
|
|
and directories have an added field showing the file type.
|
|
This format was introduced in
|
|
.Bx 4.4 .
|
|
.It 3
|
|
If maxcontig is greater than one,
|
|
build the free segment maps to aid in finding contiguous sets of blocks.
|
|
If maxcontig is equal to one, delete any existing segment maps.
|
|
This was the default before
|
|
.Nx 2.0 .
|
|
.It 4
|
|
Rearrange the super block to the same layout as FFSv2;
|
|
disable the rotational layout tables and per cylinder group
|
|
block totals.
|
|
Such file systems are made by using the
|
|
.Fl O Ar 1
|
|
option to
|
|
.Xr newfs 8 .
|
|
.El
|
|
.Pp
|
|
Note that FFSv2 file systems always have the features of FFSv1 level 4.
|
|
.Pp
|
|
FFSv2 file systems have separate conversion options:
|
|
.Bl -tag -width 3n -offset indent
|
|
.It ea
|
|
Convert the file system to the format which supports extended attributes
|
|
(and access control lists).
|
|
After this conversion is performed, the file system will no longer be
|
|
recognized at all by releases prior to
|
|
.Nx 10.0 .
|
|
.It no-ea
|
|
Convert the file system to the format which does not support extended attributes
|
|
(or access control lists).
|
|
This will remove any existing extended attributes, and the file system
|
|
will become recognizable to releases prior to
|
|
.Nx 10.0 .
|
|
.El
|
|
.Pp
|
|
In interactive mode,
|
|
.Nm
|
|
will list the conversion to be made
|
|
and ask whether the conversion should be done.
|
|
If a negative answer is given,
|
|
no further operations are done on the file system.
|
|
In preen mode,
|
|
the conversion is listed and done if
|
|
possible without user interaction.
|
|
Conversion in preen mode is best used when all the file systems
|
|
are being converted at once.
|
|
.Pp
|
|
The output of
|
|
.Xr dumpfs 8
|
|
can be examined to determine the format of the file system
|
|
.Dq ( format
|
|
in the second line)
|
|
and the file system level
|
|
.Dq ( fslevel
|
|
in the sixth line).
|
|
.Pp
|
|
.It Fl d
|
|
Print debugging output.
|
|
.It Fl F
|
|
Indicates that
|
|
.Ar filesystem
|
|
is a file system image, rather than a raw character device.
|
|
.Ar filesystem
|
|
will be accessed
|
|
.Sq as-is ,
|
|
and no attempts will be made to read a disklabel.
|
|
.It Fl f
|
|
Force checking of file systems.
|
|
Normally, if a file system is cleanly unmounted, the kernel will set a
|
|
.Dq clean flag
|
|
in the file system super block, and
|
|
.Nm
|
|
will not check the file system.
|
|
This option forces
|
|
.Nm
|
|
to check the file system, regardless of the state of the clean flag.
|
|
.It Fl m Ar mode
|
|
Use the octal value
|
|
.Ar mode
|
|
as the permission bits to use when creating the
|
|
.Pa lost+found
|
|
directory rather than the default 1700.
|
|
In particular, systems that do not wish to have lost files accessible
|
|
by all users on the system should use a more restrictive
|
|
set of permissions such as 700.
|
|
.It Fl n
|
|
Assume a no response to all questions asked by
|
|
.Nm
|
|
except for
|
|
.Ql CONTINUE? ,
|
|
which is assumed to be affirmative;
|
|
do not open the file system for writing.
|
|
.It Fl P
|
|
Display a progress meter for the file system check.
|
|
A new meter is displayed for each of the 5 file system check passes, unless
|
|
.Fl p
|
|
is specified, in which case only one meter for overall progress is displayed.
|
|
Progress meters are disabled if the
|
|
.Fl d
|
|
option is specified.
|
|
.It Fl p
|
|
Specify
|
|
.Dq preen
|
|
mode, described above.
|
|
.It Fl q
|
|
Quiet mode, do not output any messages for clean filesystems.
|
|
.It Fl U
|
|
Resolve user ids to usernames.
|
|
.It Fl X
|
|
Similar to
|
|
.Fl x
|
|
but uses a file system internal snapshot on the file system to be checked.
|
|
.It Fl x Ar snap-backup
|
|
Use a snapshot with
|
|
.Ar snap-backup
|
|
as backup to check a read-write mounted filesystem.
|
|
Must be used with
|
|
.Fl n .
|
|
See
|
|
.Xr fss 4
|
|
for more details.
|
|
The point is to check an internally-consistent version of the
|
|
filesystem to find out if it is damaged; on failure one should unmount
|
|
the filesystem and repair it.
|
|
.It Fl y
|
|
Assume a yes response to all questions asked by
|
|
.Nm ;
|
|
this should be used with great caution as this is a free license
|
|
to continue after essentially unlimited trouble has been encountered.
|
|
.It Fl z
|
|
Clear unused directory space.
|
|
The cleared space includes deleted file names and name padding.
|
|
.El
|
|
.Pp
|
|
Inconsistencies checked are as follows:
|
|
.Bl -enum -offset indent -compact
|
|
.It
|
|
Blocks claimed by more than one inode or the free map.
|
|
.It
|
|
Blocks claimed by an inode outside the range of the file system.
|
|
.It
|
|
Incorrect link counts.
|
|
.It
|
|
Size checks:
|
|
.Bl -item -offset indent -compact
|
|
.It
|
|
Directory size not a multiple of DIRBLKSIZ.
|
|
.It
|
|
Partially truncated file.
|
|
.El
|
|
.It
|
|
Bad inode format.
|
|
.It
|
|
Blocks not accounted for anywhere.
|
|
.It
|
|
Directory checks:
|
|
.Bl -item -offset indent -compact
|
|
.It
|
|
File pointing to unallocated inode.
|
|
.It
|
|
Inode number out of range.
|
|
.It
|
|
Dot or dot-dot not the first two entries of a directory
|
|
or having the wrong inode number.
|
|
.El
|
|
.It
|
|
Super Block checks:
|
|
.Bl -item -offset indent -compact
|
|
.It
|
|
More blocks for inodes than there are in the file system.
|
|
.It
|
|
Bad free block map format.
|
|
.It
|
|
Total free block and/or free inode count incorrect.
|
|
.El
|
|
.El
|
|
.Pp
|
|
Orphaned files and directories (allocated but unreferenced) are,
|
|
with the operator's concurrence, reconnected by
|
|
placing them in the
|
|
.Pa lost+found
|
|
directory.
|
|
The name assigned is the inode number.
|
|
If the
|
|
.Pa lost+found
|
|
directory does not exist, it is created.
|
|
If there is insufficient space its size is increased.
|
|
.Pp
|
|
Because of inconsistencies between the block device and the buffer cache,
|
|
the raw device should always be used.
|
|
.Sh DIAGNOSTICS
|
|
The diagnostics produced by
|
|
.Nm
|
|
are fully enumerated and explained in Appendix A of
|
|
.Rs
|
|
.%T "Fsck \- The UNIX File System Check Program"
|
|
.Re
|
|
.Sh SEE ALSO
|
|
.Xr fss 4 ,
|
|
.Xr fs 5 ,
|
|
.Xr fstab 5 ,
|
|
.Xr dumpfs 8 ,
|
|
.Xr fsck 8 ,
|
|
.Xr fsdb 8 ,
|
|
.Xr newfs 8 ,
|
|
.Xr reboot 8 ,
|
|
.Xr scan_ffs 8
|
|
.Sh HISTORY
|
|
A
|
|
.Nm fsck
|
|
utility appeared in
|
|
.Bx 4.0 .
|
|
It was renamed to
|
|
.Nm
|
|
in
|
|
.Nx 1.3
|
|
with the introduction of a filesystem independent wrapper as
|
|
.Nm fsck .
|