fsck - HFS file system consistency check and interactive repair
/usr/sbin/fsck [-F hfs] [-m] [-V] [-b blocknum] [special ...]
/usr/sbin/fsck [-F hfs] [-c size] [-f] [-p|-P] [-V] [special ...]
/usr/sbin/fsck [-F hfs] [-b blocknum] [-c size] [-f] [-n|-N|-y|-Y]
[-q] [-V] [special ...]
The fsck command audits and repairs inconsistent conditions for HFS
file systems on mass storage device files identified by special. If
the file system is consistent, the number of files on that file system
and the number of used and free blocks are reported. If the file
system is inconsistent, fsck provides a mechanism to fix these
inconsistencies, depending on which form of the fsck command is used.
special represents a special device (e.g., /dev/rdsk/c1d0s8).
If the target device is a swap device, fsck does not continue to
process. fsck also checks the target device to ensure a mounted file
system is not being checked. If a mounted device is specified but the
-f option is omitted, fsck prompts the user for a response.
If the -p|-P option is used and special is not specified, fsck reads
the pass numbers in /etc/fstab to determine which groups of disks to
inspect in parallel, taking maximum advantage of I/O overlap to
process the file systems as quickly as possible. The -p|-P option is
normally used in the script /sbin/bcheckrc during automatic reboot.
Normally, the root file system is checked on pass 1, and other "root"
(section 0) file systems on pass 2. Other small file systems are
checked on separate passes (such as the section 4 file systems on pass
3 and the section 7 file systems on pass 4), and finally the large
user file systems are checked on the last pass (for example, pass 5).
A pass number of 0 in /etc/fstab causes a file system not to be
checked. If the optional fields are not present on a line in
/etc/fstab, fsck processes the file system on such lines sequentially
after all eligible file systems with positive pass numbers have been
The inconsistencies that fsck with the -p|-P option corrects are shown
below. These are inconsistencies that are correctable without data
loss. If it encounters other inconsistencies, it exits with an
abnormal return status. For each corrected inconsistency, one or more
lines are printed identifying the file system on which the correction
will take place and the nature of the correction. Correctable
inconsistencies are limited to the following:
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
+ Unreferenced inodes
+ Unreferenced continuation inodes (see inode(4))
+ Unreferenced pipes and FIFOs
+ Link counts in inodes too large
+ Missing blocks in the free list
+ Blocks in the free list also in files
+ Counts in the superblock wrong.
The -P option operates in the same manner as the -p option except that
cleanly unmounted file systems are not checked (see fsclean(1M)).
This can greatly decrease the amount of time required to reboot a
system that was brought down cleanly.
If the -p|-P option is not specified, the pass numbers are ignored and
the file systems are checked interactively in the order they are
listed in /etc/fstab.
Without the -p|-P option, fsck prompts for concurrence before each
correction is attempted when the file system is inconsistent. It
should be noted that some corrective actions result in a loss of data.
The amount and severity of data loss can 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, fsck defaults to a -n action.
fsck recognizes the following options:
-F hfs Specify the HFS file system.
-c size Set the size of the buffer cache which fsck uses to
cache disk blocks. size is the number of cache blocks,
and is between 0 and 100 inclusive. The most common
use of this option is -c 0 to disable all caches, thus
reducing memory usage.
Use the specified blocknum as the superblock for the
file system. An alternate superblock can usually be
found at block ((SBSIZE+BBSIZE)/DEV_BSIZE), typically
block 16. DEV_BSIZE is defined in <<<<sys/param.h>>>>. You
can also find a list of alternate superblocks in
/var/adm/sbtab (see mkfs(1M)).
-f Force fsck to check a mounted file system.
-m Perform a sanity check only. Verify whether special is
mounted, or needs additional checking. Refer to the
RETURN VALUE section for more information.
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000
-n|-N Assume a no response to all questions asked by fsck
about repairing a file system. Do not open the file
system for writing.
-p "Preen" the file system. Proceed to process and repair
file systems without user interaction, as described
above. Exit immediately if there is a problem
-P Same as -p except that cleanly unmounted file systems
are not checked.
-q Quiet. Do not print size-check messages in Phase 1.
Unreferenced fifos are silently removed. If fsck
requires it, counts in the superblock and cylinder
groups are automatically fixed.
-V Echo the completed command line, but perform no other
actions. The command line is generated by
incorporating the user-specified options and other
information derived from /etc/fstab. This option
allows the user to verify the command line.
-y|-Y Assume a yes response to all questions asked by fsck
about repairing a file system. This should be used
with great caution, because this is a free license to
continue after essentially unlimited trouble has been
In all cases, fsck checks the following inconsistencies:
+ Blocks claimed by more than one inode or the free list.
+ Blocks claimed by an inode or the free list outside the range
of the file system.
+ Incorrect link counts.
+ Size checks:
- Directory size not of proper format.
+ Bad inode format.
+ Blocks not accounted for anywhere.
+ Directory checks:
- File pointing to unallocated inode.
- Inode number out of range.
+ Superblock checks:
- More blocks for inodes than there are in the file
+ Bad free block list format.
+ Total free block and/or free inode count incorrect.
+ Invalid continuation inode number in a primary inode.
Orphaned files and directories (allocated but unreferenced) are, with
the operator's concurrence, reconnected by placing them in the
Hewlett-Packard Company - 3 - HP-UX Release 11i: November 2000
lost+found directory. The name assigned is the inode number. The
only restriction is that the directory lost+found must have empty
slots in which entries can be made. This is accomplished by copying a
number of files to the directory, then removing them before fsck is
Unreferenced continuation inodes are removed with the -p option, since
they do not refer back to the primary inode. When a primary inode
contains an invalid continuation inode number, the continuation inode
number should be cleared (that is, set to 0). This is not done
automatically (with the -p option), because access control list
information may have been lost and should be corrected.
After fsck has checked and fixed the file system, it stores the
correct fs_clean flag in the superblock if it is not already there.
For a nonroot file system, FS_CLEAN is stored there. For the root
file system, which is mounted at the time of the fsck, no changes are
required to the superblock if no problems were found and FS_OK was
Checking the raw device is almost always faster.
fsck returns the following values:
0 Either no errors were detected or all errors were corrected.
1 A syntax error or other operational error occurred when
invoked with the -V option.
4 Root file system errors were corrected. The system must be
8 Some uncorrected errors exist on one or more of the file
systems checked, there was a syntax error, or some other
operational error occurred.
12 A signal was caught during processing.
32 The file system is unmounted and needs additional checking.
33 The file system is mounted.
34 The file system is damaged.
fsck should not be run on mounted file systems or on the root device.
If you do run on mounted file systems, be sure the system is in
single-user state (see shutdown(1M)).
Hewlett-Packard Company - 4 - HP-UX Release 11i: November 2000
The special case of the -c option, -c 0, will disable all internal
caches, which will reduce memory usage but may impact performance.
The -F option, from prior releases, has been replaced by the -f
fsck was developed by HP, AT&T, the University of California,
/etc/fstab Default list of file systems to check.
/var/adm/sbtab List of locations of the superblocks for file
systems. The mkfs command appends entries to
fsck(1M), fsck_vxfs(1M), dumpfs(1M), fsclean(1M), mkfs(1M), newfs(1M),
shutdown(1M), fstab(4), fs(4), inode(4), fs_wrapper(5), acl(5).
Hewlett-Packard Company - 5 - HP-UX Release 11i: November 2000