Btrfsck

From btrfs Wiki
(Difference between revisions)
Jump to: navigation, search
(btrfs check --repair: btrfs check is a userspace tool,and has nothing to do with the kernel)
(redirect to manual page)
 
Line 1: Line 1:
 
+
#REDIRECT [[Manpage/btrfs-check]]
== Before trying fsck ==
+
 
+
If you have a broken filesystem, you should probably look at the recovery or [[FAQ#When_will_Btrfs_have_a_fsck_like_tool.3F|repair]] tools or you can read [http://marc.merlins.org/perso/btrfs/post_2014-03-19_Btrfs-Tips_-Btrfs-Scrub-and-Btrfs-Filesystem-Repair.html Marc MERLIN's page that explains the different ways to check and fix a btrfs filesystem].
+
 
+
In a nutshell, you should look at:
+
* btrfs scrub to detect issues on live filesystems
+
* look at btrfs detected errors in syslog (look at Marc's blog above on how to use sec.pl to do this)
+
* mount -o ro,recovery to mount a filesystem with issues
+
* btrfs-zero-log might help in specific cases. Go read [[Btrfs-zero-log]]
+
* btrfs restore will help you copy data off a broken btrfs filesystem. See its page: [[Restore]]
+
* btrfs check --repair, aka btrfsck is your last option if the ones above have not worked.
+
 
+
 
+
== btrfs check --repair ==
+
btrfs check --repair (used to be called btrfsck) checks consistency of a btrfs filesystem, and optionally repair some types of breakage. It can only be run on an unmounted FS.
+
 
+
 
+
Note that while this tool should be able to repair broken filesystems, it is still relatively new code, and has not seen widespread testing on a large range of real-life breakage. It is possible (but highly unlikely in the most recent versions) that it may cause additional damage in the process of repair.
+
btrfs check --repair received significant updates prior to v4.0. You are strongly recommended to use a version after v4.0 when trying to recover a filesystem.
+
 
+
'''It is highly recommended to get the latest version of btrfs-tools and recover important data with the steps listed above (mount -o recovery,ro  and btrfs restore) ''before'' trying btrfs check --repair'''
+
 
+
btrfs check --repair <device>
+
 
+
See the man page for exact up to date usage info: [[Manpage/btrfs-check]]
+
 
+
If all goes well, it should look something like this:
+
gargamel:/mnt# btrfs check --repair /dev/mapper/space  2>&1 | tee /tmp/repair
+
Fixed 0 roots.
+
checking extents
+
checking free space cache
+
checking fs roots
+
checking csums
+
checking root refs
+
enabling repair mode
+
Checking filesystem on /dev/mapper/space
+
UUID: 77077815-4ca2-44cd-a83a-b1aeb4607df4
+
cache and super generation don't match, space cache will be invalidated
+
found 294976426877 bytes used err is 0
+
total csum bytes: 636680648
+
total tree bytes: 6981910528
+
total fs tree bytes: 5149491200
+
total extent tree bytes: 895369216
+
btree space waste bytes: 1860661732
+
file data blocks allocated: 651971338240
+
  referenced 676102934528
+
Btrfs v3.17
+
 
+
== btrfsck ==
+
{{Deprecated|The tool btrfsck functionality has been merged to 'btrfs check' command. See [[Manpage/btrfs-check]].}}
+
 
+
For comparison, the old obsolete btrfsck looks like this:
+
gargamel:/mnt/btrfs_pool1# btrfsck /dev/mapper/raid0d1
+
Checking filesystem on /dev/mapper/raid0d1
+
UUID: 7f0c0b97-befe-4183-ab33-dba5b0059c3a
+
checking extents
+
checking free space cache
+
checking fs roots
+
checking csums
+
checking root refs
+
found 15735927605 bytes used err is 0
+
total csum bytes: 626165256
+
total tree bytes: 3327885312
+
total fs tree bytes: 2231566336
+
total extent tree bytes: 352927744
+
btree space waste bytes: 499663388
+
file data blocks allocated: 641351032832
+
  referenced 648040566784
+
 
+
My personal experience with the old btrfsck is that it could run for 24H or more on a filesystem of a few terabytes, and look like it's never going to complete. In my experience it's also not unusual to get tens to over a hundred thousand lines of output showing lines like:
+
Extent back ref already exists for 2148837945344 parent 0 root 257
+
leaf parent key incorrect 504993210368
+
bad block 504993210368
+
 
+
FIXME: are those real problems or unfortunate real problems that easily happen btrfs filesystems?
+

Latest revision as of 13:12, 21 October 2021

  1. REDIRECT Manpage/btrfs-check
Personal tools