Btrfs send stream
A Btrfs send stream is a versioned sequence of commands describing a subvolume or changes needed to reconstruct it from existing state.
Full and incremental transfers use the same command format. An incremental transfer can reference a parent and other clone sources, whose corresponding state must remain available and unchanged. The no-data mode omits file payload and is not a data-recovery copy. [1]
The format carries per-command CRC32C and subvolume references; it is not a sector image. A successful receive --dump decodes the stream without applying it to a destination, so it cannot establish target dependency availability or successful restoration. [2] [3]
Six synthetic protocol-v1 dump controls on btrfs-progs v6.6.3 accepted a stream with its whole WRITE command removed and a snapshot reference without any destination parent lookup. A flipped payload bit, absent END and truncated command were rejected. These are parser observations, not actual receives or measured backup failures. [5]
Relations
- related
- btrfs, btrfs-received-uuid, btrfs-read-only-subvolume, incremental-backup, reflink
Limitations
- Command checksums do not authenticate the sender; the receive manual warns against untrusted streams. [1, 2, 3]
Citations
- btrfs-progs v6.17: send modes and clone-source preconditions
- btrfs-progs v6.17: send stream format and reference fields
- btrfs-progs v6.17: receive validation, write window and trust warning
- Hesela: six Btrfs dump parser controls, fixture hashes and recorded environment
Further reading
Sources & caveats
- Documentation and implementation observations are pinned to btrfs-progs v6.17. Separate dump-only controls used the recorded v6.6.3 executable; no Btrfs filesystem was mounted or restored.
Published by Hesela team · Updated
Report a correction · Editorial standards · Reuse guidance
Cite this page
Hesela team. Btrfs send stream. Hesela. 2026-10-18. https://hesela.dev/terms/btrfs-send-stream/