Man Linux: Main Page and Category List

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)