Provided by: xfsprogs_3.1.9ubuntu2.1_amd64 bug

NAME

       xfs_check - check XFS filesystem consistency

SYNOPSIS

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

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

       Note that using xfs_check is NOT recommended. Please use xfs_repair -n instead, for better
       scalability and speed.

OPTIONS

       -f     Specifies  that the filesystem image to be processed is stored in a regular file at
              device (see the mkfs.xfs(8) -d file option). This might happen if an image copy  of
              a filesystem has been made into an ordinary file.

       -l logdev
              Specifies  the  device where the filesystem's external log resides.  Only for those
              filesystems which use an external log. See the mkfs.xfs(8) -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 the specified inode ino.  For instance, it can be
              used to locate all the blocks associated with a given inode.

       -b bno Specifies verbose behavior for the specific filesystem block at bno.  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(8))  and  file  system  blocks  may  be  accomplished  using
              xfs_db(8)'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

       If  the  filesystem  is  completely  corrupt, a core dump might be produced instead of the
       message
              device 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)