ICHECK(1M)                                             ICHECK(1M)

     NAME
          icheck - file system storage consistency check

     SYNOPSIS
          icheck [ -s ]  [ -b numbers ] [ filesystem ]

     DESCRIPTION
          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 system.  If the file system is not
          specified, a set of default file systems 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 direc-
               tory blocks.

               The number of free blocks.

               The number of blocks missing; i.e. not in any file nor
               in the free list.

          The -s option causes icheck to ignore the actual free list
          and reconstruct 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 immedi-
          ately 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 be sup-
          pressed.

          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.

     FILES
          Default file systems vary with installation.

     SEE ALSO

     ICHECK(1M)                                             ICHECK(1M)

          dcheck(1), ncheck(1), filsys(5), clri(1)

     DIAGNOSTICS
          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 encoun-
          tered, 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 encoun-
          tered 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 earlier part of the free list.

     BUGS
          Since icheck is inherently two-pass in nature, extraneous
          diagnostics may be produced if applied to active file sys-
          tems.
          It believes even preposterous super-blocks and consequently
          can get core images.