FSCK_UFS(8) Maintenance Procedures FSCK_UFS(8)


fsck_ufs - file system consistency check and interactive repair


fsck -F ufs [generic-options] [special]...

fsck -F ufs [generic-options] [-o specific-options]


The fsck utility audits and interactively repairs inconsistent conditions
on file systems. A file system to be checked may be specified by giving
the name of the block or character special device or by giving the name
of its mount point if a matching entry exists in /etc/vfstab.

The special parameter represents the character special device, for
example, /dev/rdsk/c1t0d0s7, on which the file system resides. The
character special device, not the block special device should be used.
The fsck utility will not work if the block device is mounted, unless the
file system is error-locked.

If no special device is specified, all ufs file systems specified in the
vfstab with a fsckdev entry will be checked. If the -p (``preen'') option
is specified, ufs file systems with an fsckpass number greater than 1 are
checked in parallel. See fsck(8).

In the case of correcting serious inconsistencies, by default, fsck asks
for confirmation before making a repair and waits for the operator to
respond either yes or no. If the operator does not have write permission
on the file system, fsck will default to a -n (no corrections) action.
See fsck(8).

Repairing some file system inconsistencies can result in loss of data.
The amount and severity of data loss can be determined from the
diagnostic output.

The fsck utility automatically corrects innocuous inconsistencies such as
unreferenced inodes, too-large link counts in inodes, missing blocks in
the free list, blocks appearing in the free list and also in files, or
incorrect counts in the super block. It displays a message for each
inconsistency corrected that identifies the nature of the correction on
the file system which took place. After successfully correcting a file
system, fsck prints the number of files on that file system, the number
of used and free blocks, and the percentage of fragmentation.

Inconsistencies checked include:

o Blocks claimed by more than one inode or the free list.

o Blocks claimed by an inode or the free list outside the range
of the file system.

o Incorrect link counts.

o Incorrect directory sizes.

o Bad inode format.

o Blocks not accounted for anywhere.

o Directory checks, file pointing to unallocated inode, inode
number out of range, and absence of `.' and `..' as the first
two entries in each directory.

o Super Block checks: more blocks for inodes than there are in
the file system.

o Bad free block list format.

o 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
in the lost+found directory, its size is increased.

An attempt to mount a ufs file system with the -o nolargefiles option
will fail if the file system has ever contained a large file (a file
whose size is greater than or equal to 2 Gbyte). Invoking fsck resets the
file system state if no large files are present in the file system. A
successful mount of the file system after invoking fsck indicates the
absence of large files in the file system. An unsuccessful mount attempt
indicates the presence of at least one large file. See mount_ufs(8).


The generic-options consist of the following options:

Check but do not repair. This option checks that the file
system is suitable for mounting, returning the appropriate
exit status. If the file system is ready for mounting, fsck
displays a message such as:

ufs fsck: sanity check: /dev/rdsk/c0t3d0s1 okay

Assume a no response to all questions asked by fsck; do not
open the file system for writing.

Echo the expanded command line, but do not execute the
command. This option may be used to verify and to validate
the command line.

Enables verbose output. Might not be supported by all
filesystem-specific fsck implementations.

Assume a yes response to all questions asked by fsck.

See generic fsck(8) for the details for specifying special.

-o specific-options
Specify ufs file system specific options. These
options can be any combination of the following
separated by commas (with no intervening spaces).

Use block n as the super block for the file
system. Block 32 is always one of the
alternate super blocks. Determine the
location of other super blocks by running
newfs(8) with the -Nv options specified.

Force checking of file systems regardless
of the state of their super block clean

Check and fix the file system non-
interactively ("preen"). Exit immediately
if there is a problem requiring
intervention. This option is required to
enable parallel file system checking.

Check writable file systems only.


list of default parameters for each file system


ufs(4FS), vfstab(5), attributes(7), largefile(7), clri(8), fsck(8),
fsdb_ufs(8), fsirand(8), fstyp(8), mkfs(8), mkfs_ufs(8), mount_ufs(8),
mountall(8), newfs(8), reboot(8)


The operating system buffers file system data. Running fsck on a mounted
file system can cause the operating system's buffers to become out of
date with respect to the disk. For this reason, the file system should be
unmounted when fsck is used. If this is not possible, care should be
taken that the system is quiescent and that it is rebooted immediately
after fsck is run. Quite often, however, this will not be sufficient. A
panic will probably occur if running fsck on a file system modifies the
file system.


It is usually faster to check the character special device than the block
special device.

Running fsck on file systems larger than 2 Gb fails if the user chooses
to use the block interface to the device:

fsck /dev/dsk/c?t?d?s?

rather than the raw (character special) device:

fsck /dev/rdsk/c?t?d?s?

August 2, 2005 FSCK_UFS(8)