NAME¶
fsck.ffs,
fsck.ufs —
file system consistency check and interactive repair
SYNOPSIS¶
fsck.ffs |
[-BFprfny]
[-b block]
[-c level]
[-m mode]
filesystem ... |
DESCRIPTION¶
The specified disk partitions and/or file systems are checked. In
"preen" or "check clean" mode the clean flag of each file
system's superblock is examined and only those file systems that are not
marked clean are checked. File systems are marked clean when they are
unmounted, when they have been mounted read-only, or when
fsck.ffs runs on them successfully. If the
-f option is specified, the file systems will be checked
regardless of the state of their clean flag.
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:
- Unreferenced inodes
- Link counts in inodes too
large
- Missing blocks in the free
map
- Blocks in the free map also in
files
- Counts in the super-block
wrong
These are the only inconsistencies that
fsck.ffs with the
-p option will correct; if it encounters other
inconsistencies, it exits with an abnormal return status and an automatic
reboot will then fail. 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,
fsck.ffs will print the number of files on that file
system, the number of used and free blocks, and the percentage of
fragmentation.
If sent a
QUIT
signal,
fsck.ffs will
finish the file system checks, then exit with an abnormal return status that
causes an automatic reboot to fail. This is useful when you want to finish the
file system checks during an automatic reboot, but do not want the machine to
come up multiuser after the checks complete.
If
fsck.ffs receives a
SIGINFO
(see
the “status” argument for
stty(1)) signal, a
line will be written to the standard output indicating the name of the device
currently being checked, the current phase number and phase-specific progress
information.
Without the
-p option,
fsck.ffs 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
-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
yes
or
no
. If the operator does not have write permission
on the file system
fsck.ffs will default to a
-n action.
The following flags are interpreted by
fsck.ffs:
- -F
- Determine whether the file system needs to be cleaned
immediately in foreground, or if its cleaning can be deferred to
background. To be eligible for background cleaning it must have been
running with soft updates, not have been marked as needing a foreground
check, and be mounted and writable when the background check is to be
done. If these conditions are met, then fsck.ffs exits
with a zero exit status. Otherwise it exits with a non-zero exit status.
If the file system is clean, it will exit with a non-zero exit status so
that the clean status of the file system can be verified and reported
during the foreground checks. Note that when invoked with the
-F flag, no cleanups are done. The only thing that
fsck.ffs does is to determine whether a foreground or
background check is needed and exit with an appropriate status code.
- -B
- A check is done on the specified and possibly active file
system. The set of corrections that can be done is limited to those done
when running in preen mode (see the -p flag). If
unexpected errors are found, the file system is marked as needing a
foreground check and fsck.ffs exits without attempting
any further cleaning.
- -b
- Use the block specified immediately after the flag as the
super block for the file system. An alternate super block is usually
located at block 32 for UFS1, and block 160 for UFS2.
- -C
- Check if file system was dismounted cleanly. If so, skip
file system checks (like "preen"). However, if the file system
was not cleanly dismounted, do full checks, as if
fsck.ffs was invoked without -C.
- -c
- Convert the file system to the specified level. Note that
the level of a file system can only be raised. There are currently four
levels defined:
- 0
- The file system is in the old (static table)
format.
- 1
- The file system is in the new (dynamic table)
format.
- 2
- The file system supports 32-bit uid's and gid's, short
symbolic links are stored in the inode, and directories have an added
field showing the file type.
- 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.
In interactive mode, fsck.ffs 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. The format of a file system can be
determined from the first line of output from dumpfs(8).
This option implies the -f flag.
- -f
- Force fsck.ffs to check
‘clean’ file systems when preening.
- -m
- Use the mode specified in octal immediately after the flag
as the permission bits to use when creating the
lost+found directory rather than the default 1777. 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.
- -n
- Assume a no response to all questions asked by
fsck.ffs except for
‘
CONTINUE?
’, which is assumed to be
affirmative; do not open the file system for writing.
- -p
- Preen file systems (see above).
- -r
- Free up excess unused inodes. Decreasing the number of
preallocated inodes reduces the running time of future runs of
fsck.ffs and frees up space that can allocated to files.
The -r option is ignored when running in preen
mode.
- -y
- Assume a yes response to all questions asked by
fsck.ffs; this should be used with great caution as this
is a free license to continue after essentially unlimited trouble has been
encountered.
Inconsistencies checked are as follows:
- Blocks claimed by more than
one inode or the free map.
- Blocks claimed by an inode
outside the range of the file system.
- Incorrect link counts.
- Size checks:
- Directory size not a
multiple of DIRBLKSIZ.
- Partially truncated
file.
- Bad inode format.
- Blocks not accounted for
anywhere.
- Directory checks:
- File pointing to
unallocated inode.
- Inode number out of
range.
- Directories with
unallocated blocks (holes).
- Dot or dot-dot not the
first two entries of a directory or having the wrong inode
number.
- Super Block checks:
- More blocks for inodes
than there are in the file system.
- Bad free block map
format.
- Total free block and/or
free inode count incorrect.
Orphaned files and directories (allocated but unreferenced) are, with the
operator's concurrence, reconnected by placing them in the
lost+found directory. The name assigned is the inode number.
If the
lost+found directory does not exist, it is created.
If there is insufficient space its size is increased.
The full foreground
fsck.ffs checks for many more problems
that may occur after an unrecoverable disk write error. Thus, it is
recommended that you perform foreground
fsck.ffs on your
systems periodically and whenever you encounter unrecoverable disk write
errors or file-system-related panics.
FILES¶
- /etc/fstab
- contains default list of file systems to check.
EXIT STATUS¶
The
fsck.ffs utility exits 0 on success, and >0
if an error occurs.
If the option
-F is used,
fsck.ffs exits 7
if the file system is clean.
DIAGNOSTICS¶
The diagnostics produced by
fsck.ffs are fully enumerated and
explained in Appendix A of
Fsck - The UNIX
File System Check Program.
SEE ALSO¶
fs(5),
fstab(5),
fsck(8),
fsdb(8),
reboot(8)