2014-04-02 08:29:18 +00:00
|
|
|
btrfs-check(8)
|
|
|
|
==============
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
2014-12-18 15:04:10 +00:00
|
|
|
btrfs-check - check or repair an unmounted btrfs filesystem
|
2014-04-02 08:29:18 +00:00
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
2014-05-19 15:49:35 +00:00
|
|
|
*btrfs check* [options] <device>
|
2014-04-02 08:29:18 +00:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
|
|
|
|
2016-05-06 12:45:57 +00:00
|
|
|
The filesystem checker is used to verify structural integrity of a filesystem
|
|
|
|
and attempt to repair it if requested. The filesystem must be unmounted.
|
|
|
|
|
|
|
|
By default, *btrfs check* will not modify the device but you can reaffirm that
|
|
|
|
by the option '--readonly'.
|
2014-04-15 07:04:51 +00:00
|
|
|
|
2014-05-19 15:49:35 +00:00
|
|
|
*btrfsck* is an alias of *btrfs check* command and is now deprecated.
|
2014-04-16 16:33:44 +00:00
|
|
|
|
2016-09-25 01:26:41 +00:00
|
|
|
WARNING: Do not use '--repair' unless you are advised to by a developer, an
|
2016-05-06 12:45:57 +00:00
|
|
|
experienced user or accept the fact that 'fsck' cannot possibly fix all sorts
|
|
|
|
of damage that could happen to a filesystem because of software and hardware
|
|
|
|
bugs.
|
|
|
|
|
|
|
|
The structural integrity check verifies if internal filesystem objects or
|
|
|
|
data structures satisfy the constraints, point to the right objects or are
|
|
|
|
correctly connected together.
|
|
|
|
|
|
|
|
There are several cross checks that can detect wrong reference counts of shared
|
|
|
|
extents, backrefrences, missing extents of inodes, directory and inode
|
|
|
|
connectivity etc.
|
|
|
|
|
|
|
|
The amount of memory required can be high, depending on the size of the
|
|
|
|
filesystem, smililarly the run time.
|
|
|
|
|
|
|
|
SAFE OR ADVISORY OPTIONS
|
|
|
|
------------------------
|
|
|
|
|
2016-03-09 13:55:11 +00:00
|
|
|
-b|--backup::
|
2016-05-06 12:45:57 +00:00
|
|
|
use the first valid set of backup roots stored in the superblock
|
|
|
|
+
|
|
|
|
This can be combined with '--super' if some of the superblocks are damaged.
|
|
|
|
|
2014-05-28 11:22:40 +00:00
|
|
|
--check-data-csum::
|
2016-01-28 08:00:24 +00:00
|
|
|
verify checksums of data blocks
|
2016-05-06 12:45:57 +00:00
|
|
|
+
|
|
|
|
This expects that the filesystem is otherwise
|
|
|
|
OK, so this is basically and offline 'scrub' but does not repair data from
|
|
|
|
spare coipes.
|
|
|
|
|
|
|
|
--chunk-root <bytenr>::
|
|
|
|
use the given offset 'bytenr' for the chunk tree root
|
|
|
|
|
|
|
|
-E|--subvol-extents <subvolid>::
|
|
|
|
show extent state for the given subvolume
|
|
|
|
|
2015-09-24 06:13:05 +00:00
|
|
|
-p|--progress::
|
|
|
|
indicate progress at various checking phases
|
2016-05-06 12:45:57 +00:00
|
|
|
|
2014-12-18 15:04:10 +00:00
|
|
|
--qgroup-report::
|
|
|
|
verify qgroup accounting and compare against filesystem accounting
|
2016-05-06 12:45:57 +00:00
|
|
|
|
2016-03-09 13:55:11 +00:00
|
|
|
-r|--tree-root <bytenr>::
|
2016-05-06 12:45:57 +00:00
|
|
|
use the given offset 'bytenr' for the tree root
|
|
|
|
|
|
|
|
--readonly::
|
|
|
|
(default)
|
|
|
|
run in read-only mode, this option exists to calm potential panic when users
|
|
|
|
are going to run the checker
|
|
|
|
|
|
|
|
-s|--super <superblock>::
|
|
|
|
use 'superblock'th superblock copy, valid values are 0, 1 or 2 if the
|
|
|
|
respective superblock offset is within the device size
|
|
|
|
+
|
|
|
|
This can be used to use a different starting point if some of the primary
|
|
|
|
superblock is damaged.
|
|
|
|
|
2016-10-13 09:22:26 +00:00
|
|
|
--clear-space-cache v1|v2::
|
|
|
|
completely wipe all free space cache of given type
|
|
|
|
|
|
|
|
NOTE: Only v1 free space cache supported is implemented.
|
|
|
|
+
|
|
|
|
Kernel mount option 'clear_cache' is only designed to rebuild free space cache
|
|
|
|
which is modified during the lifetime of that mount option. It doesn't rebuild
|
|
|
|
all free space cache, nor clear them out.
|
|
|
|
|
|
|
|
|
2016-05-06 12:45:57 +00:00
|
|
|
DANGEROUS OPTIONS
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
--repair::
|
|
|
|
enable the repair mode and attempt to fix problems where possible
|
|
|
|
--init-csum-tree::
|
|
|
|
create a new checksum tree and recalculate checksums in all files
|
|
|
|
+
|
|
|
|
NOTE: Do not blindly use this option to fix checksum mismatch problems.
|
|
|
|
|
|
|
|
--init-extent-tree::
|
|
|
|
build the extent tree from scratch
|
|
|
|
+
|
|
|
|
NOTE: Do not use unless you know what you're doing.
|
2014-04-02 08:29:18 +00:00
|
|
|
|
2016-08-17 17:33:24 +00:00
|
|
|
--mode=MODE::
|
|
|
|
select mode of operation regarding memory and IO
|
2016-04-24 07:47:12 +00:00
|
|
|
+
|
2016-08-17 17:33:24 +00:00
|
|
|
The 'MODE' can be one of 'original' and 'lowmem'. The original mode is mostly
|
|
|
|
unoptimized regarding memory consumpption and can lead to out-of-memory
|
|
|
|
conditions on large filesystems. The possible workaround is to export the block
|
|
|
|
device over network to a machine with enough memory. The low memory mode is
|
|
|
|
supposed to address the memory consumption, at the cost of increased IO when it
|
|
|
|
needs to re-read blocks when needed. This may increase run time.
|
|
|
|
|
|
|
|
NOTE: 'lowmem' mode does not work with '--repair' yet, and is still considered
|
|
|
|
experimental.
|
2016-04-24 07:47:12 +00:00
|
|
|
|
2014-04-02 08:29:18 +00:00
|
|
|
EXIT STATUS
|
|
|
|
-----------
|
2014-09-19 01:49:59 +00:00
|
|
|
*btrfs check* returns a zero exit status if it succeeds. Non zero is
|
2014-04-02 08:29:18 +00:00
|
|
|
returned in case of failure.
|
|
|
|
|
|
|
|
AVAILABILITY
|
|
|
|
------------
|
2014-05-19 16:04:26 +00:00
|
|
|
*btrfs* is part of btrfs-progs.
|
2014-04-02 08:29:18 +00:00
|
|
|
Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for
|
|
|
|
further details.
|
|
|
|
|
|
|
|
SEE ALSO
|
|
|
|
--------
|
|
|
|
`mkfs.btrfs`(8),
|
|
|
|
`btrfs-scrub`(8),
|
|
|
|
`btrfs-rescue`(8)
|