BTRFS-CHECK(8)

NAME
btrfs-rescue - Recover a damaged btrfs filesystem

SYNOPSIS

btrfs rescue <subcommand> <args>

DESCRIPTION

btrfs rescue is used to try to recover a damaged btrfs filesystem.

SUBCOMMAND

chunk-recover [options] <device>
    Recover the chunk tree by scanning the devices

    Options

    -y
        assume an answer of yes to all questions.

    -v
        verbose mode.

    -h
        help.

    Note

    Since chunk-recover will scan the whole device, it will be VERY slow especially executed on a large device.

super-recover [options] <device>
    Recover bad superblocks from good copies.

    Options

    -y
        assume an answer of yes to all questions.

    -v
        verbose mode.

zero-log <device>
    clear out log tree

btrfs rescue zero-log will remove the log tree if log tree is corrupt, which will allow you to mount the filesystem again.

The common case where this happens has been fixed a long time ago, so it is unlikely that you will see this particular problem.

One can determine whether btrfs-zero-log is needed according to the kernel backtrace:

    ? replay_one_dir_item+0xb5/0xb5 [btrfs]
    ? walk_log_tree+0x9c/0x19d [btrfs]
    ? btrfs_read_fs_root_no_radix+0x169/0x1a1 [btrfs]
    ? btrfs_recover_log_trees+0x195/0x29c [btrfs]
    ? replay_one_dir_item+0xb5/0xb5 [btrfs]
    ? btree_read_extent_buffer_pages+0x76/0xbc [btrfs]
    ? open_ctree+0xff6/0x132c [btrfs]

If the errors are like above, then zero-log could be used to clear the log and the filesystem may be mounted normally again.

EXIT STATUS

btrfs rescue returns a zero exit status if it succeeds. Non zero is returned in case of failure.

AVAILABILITY

btrfs is part of btrfs-progs. Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for further details.

SEE ALSO

mkfs.btrfs(8), btrfs-scrub(8), btrfs-check(8)