    ICHECK(VIII)                  2/9/75                 ICHECK(VIII)

    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  number  of blocks missing; i.e. not in any file nor
             in the free list,
             The number of special files,
             The total number of files,
             The number of large and huge files,
             The number of directories,
             The number of indirect blocks, and the number of double-
             indirect blocks in huge files,
             The number of blocks used in files,
             The number of free blocks.

         The -s flag 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 flag causes the normal  output  reports  to  be  sup-
         pressed.

         Following  the  -b flag 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
         Currently, /dev/rrk2 and /dev/rrp0 are the default file sys-
         tems.

    SEE ALSO
         dcheck(VIII),   ncheck(VIII),  fs(V),  clri(VIII),
         restor(VIII)

                                  - 1 -

    ICHECK(VIII)                  2/9/75                 ICHECK(VIII)

    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.

                                  - 2 -