Provided by: xfsprogs_3.1.7_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.

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)