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


     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 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

     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 flag causes the normal output reports to be


     Following the -b flag is a list of block  numbers;  whenever

     any  of the named blocks turns up in a file, a diagnostic is


     Icheck is faster if the raw version of the special  file  is

     used, since it reads the i-list many blocks at a time.


     Currently, /dev/rrk2 and  /dev/rrp0  are  the  default  file



     dcheck  (VIII),  ncheck  (VIII),  fs   (V),   clri   (VIII),



     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 earlier part of the free list.


     Since icheck is inherently two-pass  in  nature,  extraneous

     diagnostics  may  be  produced  if  applied  to  active file


     It believes even preposterous super-blocks and  consequently

     can get core images.