fsck command - what does it check/repair??

While rebooting one of the UNIX systems here at work, the boot-up process halted and a message appeared telling me that I had to run the fsck command. The command to the best of my knowledge went something like :

fsck -F ufs /dev/rdsk/c0t0d0s0

Can someone give me a full list of this command actually looks at and repairs. Is it just the blocks that it repairs or is it i-node values aswell??

Any information here would be most helpful!

it checks inodes as well as other file-system structure details. I do not believe it does a physical scan (i.e. bad blocks), although that may depend on your particular OS version. At least under linux there is a separate tool for this (which can be called by fsck if you pass a certain flag)

man fsck
 fsck(1M)                                                           fsck(1M)
 NAME
      fsck (generic) - file system consistency check and interactive repair

 SYNOPSIS
      /usr/sbin/fsck [-F FSType] [-m] [-V] [special ...]
      /usr/sbin/fsck [-F FSType] [-o FSspecific-options] [-V] [special ...]
 
DESCRIPTION
      The fsck command audits and interactively repairs inconsistent
      conditions for HP-UX 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).
 
   Options
      fsck recognizes the following options:
           -F FStype      Specify the file system type on which to operate

                          (see fstyp(1M) and fs_wrapper(5)).  If this option
                          is not included on the command line, then the file
                          system type is determined from the file /etc/fstab
                          by matching special with an entry in that file.
                          If there is no entry in /etc/fstab, then the file
                          system type is determined from the file
                          /etc/default/fs.

           -m             Perform a sanity check only.  fsck will return 0
                          if the file system is suitable for mounting.  If
                          the file system needs additional checking, the
                          return code is 32.  If the file system is mounted,
                          the return code is 33.  Error codes larger than 33
                          indicate that the file system is badly damaged.

           -o FSspecific-options
                          Specify options specific to each file system type.
                          FSspecific-options is a list of suboptions and/or
                          keyword/attribute pairs intended for a file-
                          system-specific version of the command.  See the
                          file-system-specific manual entries for a
                          description of the specific_options supported, if
                          any.

           -V             Echo the completed command line, but perform no other action.  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.

 RETURN VALUES
      The following values are returned by the -m option to fsck:
            0   Either no errors were detected or all errors were corrected.
           32   The file system needs additional checking.

           33   The file system is mounted.

      Return values greater that 33 indicate that file system is badly
      corrupted.  File system specific versions of fsck will have their own
      additional return values (see fsck_FSType(1M)).

 WARNINGS
      This command may not be supported for all file system types.

 FILES
      /etc/default/fs          Specifies the default file system type
      /etc/fstab               Default list of file systems to check

 STANDARDS CONFORMANCE
      fsck: SVID3

 SEE ALSO
      fsck_FSType(1M), mkfs(1M), newfs(1M), fstab(4), fs_wrapper(5).

One other thing to rememebr about fsck (at least under Solaris) is that it's primary function is to maintain the integrity of the file system, not the data in the file system. Complete files that are "misplaced" will be put in lost+found, but partial files will be dropped.

Is recommendable that you run the fsck from a boot cdrom.

at the maintenance prompt-> halt
at the prompt (ok) -> boot cdrom -s
then -> fsck -F ufs /dev/rdsk/c0t0d0s0

if you have a BAD SUPERBLOCK message->
newfs -Nv /dev/rdsk/c0t0d0s0
(to obtain the block numbers of the Superblock backup's)

select a backup block number in the middle of the previus
response.
then run ->

fsck -F ufs -ob=<backup_block_numer> /dev/rdsk/c0t0d0s0