btrfs man page

btrfs — a toolbox to manage btrfs filesystems


btrfs <command> [<args>]


The btrfs utility is a toolbox for managing btrfs filesystems. There are command groups to work with subvolumes, devices, for whole filesystem or other specific actions. See section Commands.

There are also standalone tools for some tasks like btrfs-convert or btrfstune that were separate historically and/or haven’t been merged to the main utility. See section Standalone Tools for more details.

For other topics (mount options, etc) please refer to the separate manual page btrfs(5).

Command Syntax

Any command name can be shortened as far as it stays unambiguous, however it is recommended to use full command names in scripts. All command groups have their manual page named btrfs-<group>.

For example: it is possible to run btrfs sub snaps instead of btrfs subvolume snapshot. But btrfs file s is not allowed, because file s may be interpreted both as filesystem show and as filesystem sync.

If the command name is ambiguous, the list of conflicting options is printed.

For an overview of a given command use btrfs command --help or btrfs [command...] --help --full to print all available options.



Balance btrfs filesystem chunks across single or several devices.

See btrfs-balance(8) for details.


Do off-line check on a btrfs filesystem.

See btrfs-check(8) for details.


Manage devices managed by btrfs, including add/delete/scan and so on.

See btrfs-device(8) for details.


Manage a btrfs filesystem, including label setting/sync and so on.

See btrfs-filesystem(8) for details.


Debug tools for developers/hackers.

See btrfs-inspect-internal(8) for details.


Get/set a property from/to a btrfs object.

See btrfs-property(8) for details.


Manage quota group(qgroup) for btrfs filesystem.

See btrfs-qgroup(8) for details.


Manage quota on btrfs filesystem like enabling/rescan and etc.

See btrfs-quota(8) and btrfs-qgroup(8) for details.


Receive subvolume data from stdin/file for restore and etc.

See btrfs-receive(8) for details.


Replace btrfs devices.

See btrfs-replace(8) for details.


Try to rescue damaged btrfs filesystem.

See btrfs-rescue(8) for details.


Try to restore files from a damaged btrfs filesystem.

See btrfs-restore(8) for details.


Scrub a btrfs filesystem.

See btrfs-scrub(8) for details.


Send subvolume data to stdout/file for backup and etc.

See btrfs-send(8) for details.


Create/delete/list/manage btrfs subvolume.

See btrfs-subvolume(8) for details.

Standalone Tools

There are several standalone tools to provide certain functionality. If the functionality proves to be useful, the standalone tools are declared obsolete and their functionality copied to the main tool. The deprecation period is long (years) and the obsolete binaries are still provided.

Tools that are still in active use without an equivalent in btrfs:


in-place conversion from ext2/3/4 filesystems to btrfs


tweak some filesystem properties on a unmounted filesystem


rescue tool to overwrite primary superblock from a spare copy


rescue helper to find tree roots in a filesystem

Deprecated and obsolete tools:


moved to btrfs inspect-internal dump-tree


moved to btrfs inspect-internal dump-super


moved to btrfs rescue zero-log

Exit Status

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


btrfs is part of btrfs-progs. Please refer to the btrfs wiki for further details.

See Also

btrfs-balance(8), btrfs-check(8), btrfs-convert(8), btrfs-device(8), btrfs-filesystem(8), btrfs-inspect-internal(8), btrfs-property(8), btrfs-qgroup(8), btrfs-quota(8), btrfs-receive(8), btrfs-replace(8), btrfs-rescue(8), btrfs-restore(8), btrfs-scrub(8), btrfs-send(8), btrfs-subvolume(8), btrfstune(8), mkfs.btrfs(8)

Referenced By

btrbk(1), btrbk.conf(5), btrfs(5), fsck.btrfs(8), guestfish(1), guestfs(3), mkfs.btrfs(8), mksubvolume(8), snapper(8), ssh_filter_btrbk(1), systemd-gpt-auto-generator(8), systemd-nspawn(1), virt-resize(1).

10/16/2017 Btrfs v4.13.3 Btrfs Manual