Provided by: xfsprogs_2.7.7-1_i386 bug

NAME

       xfs_check - check XFS filesystem consistency

SYNOPSIS

       xfs_check [ -i ino ] ... [ -b bno ] ...
                 [ -s ] [ -v ] [ -l logdev ] xfs_special

       xfs_check -f [ -i ino ] ... [ -b bno ] ...
                 [ -s ] [ -v ] [ -l logdev ] file

DESCRIPTION

       xfs_check  checks  whether  an  XFS  filesystem  is  consistent.  It is
       normally run only when there is reason to believe that  the  filesystem
       has  a  consistency problem.  The filesystem to be checked is specified
       by the xfs_special argument, which should be the disk or volume  device
       for  the  filesystem.  Filesystems stored in files can also be checked,
       using the -f flag.  The filesystem  should  normally  be  unmounted  or
       read-only  during  the  execution  of  xfs_check.   Otherwise, spurious
       problems are reported.

       The options to xfs_check are:

       -f       Specifies that the special device is actually a file (see  the
                mkfs.xfs  -d file option).  This might happen if an image copy
                of a filesystem has been made into an ordinary file.

       -l       Specifies the  device  special  file  where  the  filesystem’s
                external log resides.  Only for those filesystems which use an
                external log.  See the mkfs.xfs -l option, and refer to xfs(5)
                for a detailed description of the XFS log.

       -s       Specifies   that  only  serious  errors  should  be  reported.
                Serious errors are those that make it impossible to find major
                data structures in the filesystem.  This option can be used to
                cut down the amount of output when there is a serious problem,
                when  the  output might make it difficult to see what the real
                problem is.

       -v       Specifies  verbose  output;  it  is  impossibly  long  for   a
                reasonably-sized  filesystem.   This  option  is  intended for
                internal use only.

       -i ino   Specifies  verbose  behavior  for  a  specific   inode.    For
                instance,  it  can be used to locate all the blocks associated
                with a given inode.

       -b bno   Specifies verbose behavior for a  specific  filesystem  block.
                For  instance,  it  can  be  used to determine what a specific
                block is used for.  The block number is a "file  system  block
                number".   Conversion  between  disk addresses (i.e. addresses
                reported  by  xfs_bmap)  and  file  system   blocks   may   be
                accomplished using xfs_db’s convert command.

       Any  output  that is produced when xfs_check is not run in verbose mode
       indicates that the filesystem has an inconsistency.  The filesystem can
       be  repaired using either xfs_repair(8) to fix the filesystem in place,
       or by using xfsdump(8) and mkfs.xfs(8) to dump the filesystem,  make  a
       new filesystem, then use xfsrestore(8) to restore the data onto the new
       filesystem.  Note that  xfsdump  may  fail  on  a  corrupt  filesystem.
       However, if the filesystem is mountable, xfsdump can be used to try and
       save important data before repairing the  filesystem  with  xfs_repair.
       If  the  filesystem  is  not  mountable  though, xfs_repair is the only
       viable option.

DIAGNOSTICS

       Under one circumstance, xfs_check unfortunately might dump core  rather
       than produce useful output.  If the filesystem is completely corrupt, a
       core dump might be produced instead of the message
           xxx is not a valid filesystem

       If the filesystem is very large (has many files) then  xfs_check  might
       run out of memory.  In this case the message
           out of memory
       is printed.

       The  following  is  a  description  of the most likely problems and the
       associated  messages.   Most  of  the  diagnostics  produced  are  only
       meaningful with an understanding of the structure of the filesystem.

       agf_freeblks n, counted m in ag a
              The   freeblocks  count  in  the  allocation  group  header  for
              allocation group a doesn’t match the number  of  blocks  counted
              free.

       agf_longest n, counted m in ag a
              The  longest  free  extent  in  the  allocation group header for
              allocation group a doesn’t match the longest free  extent  found
              in the allocation group.

       agi_count n, counted m in ag a
              The  allocated  inode  count  in the allocation group header for
              allocation group a doesn’t match the number of inodes counted in
              the allocation group.

       agi_freecount n, counted m in ag a
              The  free  inode  count  in  the  allocation  group  header  for
              allocation group a doesn’t match the number  of  inodes  counted
              free in the allocation group.

       block a/b expected inum 0 got i
              The  block  number  is  specified  as  a  pair (allocation group
              number, block in the  allocation  group).   The  block  is  used
              multiple  times (shared), between multiple inodes.  This message
              usually follows a message of the next type.

       block a/b expected type unknown got y
              The block is used multiple times (shared).

       block a/b type unknown not expected
              The block is unaccounted for (not in the  freelist  and  not  in
              use).

       link count mismatch for inode nnn (name xxx), nlink m, counted n
              The  inode  has  a  bad  link  count  (number  of  references in
              directories).

       rtblock b expected inum 0 got i
              The block is used  multiple  times  (shared),  between  multiple
              inodes.   This  message  usually  follows  a message of the next
              type.

       rtblock b expected type unknown got y
              The real-time block is used multiple times (shared).

       rtblock b type unknown not expected
              The real-time block is unaccounted for (not in the freelist  and
              not in use).

       sb_fdblocks n, counted m
              The  number  of  free  data  blocks  recorded  in the superblock
              doesn’t match the number counted free in the filesystem.

       sb_frextents n, counted m
              The number of free real-time extents recorded in the  superblock
              doesn’t match the number counted free in the filesystem.

       sb_icount n, counted m
              The  number  of  allocated  inodes  recorded  in  the superblock
              doesn’t match the number allocated in the filesystem.

       sb_ifree n, counted m
              The number of free inodes recorded  in  the  superblock  doesn’t
              match the number free in the filesystem.

SEE ALSO

       mkfs.xfs(8),  xfsdump(8),  xfsrestore(8), xfs_ncheck(8), xfs_repair(8),
       xfs(5).

                                                                  xfs_check(8)