icheck - file system storage consistency check
icheck [ -s ] [ -b numbers ] [ filesystem ]
Icheck examines a file system, builds a bit map of used blocks, and
compares this bit map against the free list maintained on the file sys-
tem. If the file system is not specified, a set of default file sys-
tems is checked. The normal output of icheck includes a report of
The total number of files and the numbers of regular, directory,
block special and character special files.
The total number of blocks in use and the numbers of single-,
double-, and triple-indirect blocks and directory blocks.
The number of free blocks.
The number of blocks missing; i.e. not in any file nor in the
The -s option causes icheck to ignore the actual free list and recon-
struct a new one by rewriting the super-block of the file system. The
file system should be dismounted while this is done; if this is not
possible (for example if the root file system has to be salvaged) care
should be taken that the system is quiescent and that it is rebooted
immediately afterwards so that the old, bad in-core copy of the super-
block will not continue to be used. Notice also that the words in the
super-block which indicate the size of the free list and of the i-list
are believed. If the super-block has been curdled these words will
have to be patched. The -s option causes the normal output reports to
Following the -b option is a list of block numbers; whenever any of the
named blocks turns up in a file, a diagnostic is produced.
Icheck is faster if the raw version of the special file is used, since
it reads the i-list many blocks at a time.
Default file systems vary with installation.
dcheck(1), ncheck(1), filsys(5), clri(1)
For duplicate blocks and bad blocks (which lie outside the file system)
icheck announces the difficulty, the i-number, and the kind of block
involved. If a read error is encountered, the block number of the bad
block is printed and icheck considers it to contain 0. `Bad freeblock'
means that a block number outside the available space was encountered
in the free list. `n dups in free' means that n blocks were found in
the free list which duplicate blocks either in some file or in the ear-
lier part of the free list.
Since icheck is inherently two-pass in nature, extraneous diagnostics
may be produced if applied to active file systems.
It believes even preposterous super-blocks and consequently can get