btrfs-receive(8) receive subvolumes from stdin/file.


btrfs receive [options] <mount>


Receives one or more subvolumes that were previously sent with btrfs send. The received subvolumes are stored into <mount>.

btrfs receive will fail with the following case:

1. a receiving subvolume already exists.

2. a previously received subvolume was changed after it was received.

3. default subvolume is changed or you don't mount btrfs filesystem with fs tree.

After receiving a subvolume, it is immediately set to read only.



Enable verbose debug output. Each occurrence of this option increases the verbose level more.

-f <infile>

By default, btrfs receive uses stdin to receive the subvolumes. Use this option to specify a file to use instead.


Confine the process to <mount> using chroot.


Terminate after receiving an <end cmd> in the data stream. Without this option, the receiver terminates only if an error is recognized or on EOF.

--max-errors <N>

Terminate as soon as N errors happened while processing commands from the send stream. Default value is 1. A value of 0 means no limit.

-m <mountpoint>

The root mount point of the destination fs.

By default the mountpoint is searched in /proc/self/mounts. If you do not have /proc, eg. in a chroot environment, use this option to tell us where this filesystem is mounted.


btrfs receive 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 m[blue][] for further details.