B.3. Manual Page of xfs_check
xfs_check(8) xfs_check(8)
NAME
xfs_check - check XFS filesystem consistency
SYNOPSIS
xfs_check [ -i ino ] ... [ -b bno ] ... [ -s ] [ -v ] xfs_special
xfs_check -f [ -i ino ] ... [ -b bno ] ... [ -s ] [ -v ] 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.
-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 prob-
lem, 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 filesys-
tem block. For instance, it can be used to deter-
mine 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 accom-
plished using xfs_db's convert command.
Any non-verbose output from xfs_check means 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 filesys-
tem is mountable, xfsdump can be used to try and save impor-
tant 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 pro-
duced 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 num-
ber 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 multi-
ple 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 mes-
sage 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)