xfs_check(1M) xfs_check(1M)
xfs_check, xfs_check64 - check XFS filesystem consistency
xfs_check [ -i ino ] ... [ -b bno ] ... [ -s ] [ -v ] xfs_special
xfs_check -f [ -i ino ] ... [ -b bno ] ... [ -s ] [ -v ] file
xfs_check64 [ -i ino ] ... [ -b bno ] ... [ -s ] [ -v ] xfs_special
xfs_check64 -f [ -i ino ] ... [ -b bno ] ... [ -s ] [ -v ] file
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.
xfs_check64 is a 64-bit version of xfs_check which is not as susceptible
to running out of memory. It is available only on 64-bit capable
systems.
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 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.
Page 1
xfs_check(1M) xfs_check(1M)
Any non-verbose output from xfs_check means that the filesystem has an
inconsistency. The filesystem can be repaired using either
xfs_repair(1M) to fix the filesystem in place, or by using xfsdump(1M)
and mkfs_xfs(1M) to dump the filesystem, make a new filesystem, then use
xfsrestore(1M) 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.
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, and if the system running xfs_check supports execution of
64-bit binaries, then a suggestion to run xfs_check64 is printed as well.
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
Page 2
xfs_check(1M) xfs_check(1M)
(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.
mkfs_xfs(1M), xfsdump(1M), xfsrestore(1M), xfs_ncheck(1M),
xfs_repair(1M), xfs(4).
PPPPaaaaggggeeee 3333 [ Back ]
|