btrfs send does not work for snapshots in subvolumes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Btrfs Tools |
Unknown
|
Unknown
|
|||
btrfs-tools (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bug Description
If I create a snapshot, of a subvolume and try to use btrfs send it fails with "No such file or directory"
# sudo btrfs sub create /testvol
Create subvolume '//testvol'
# sudo btrfs
btrfs btrfsck btrfs-debug-tree btrfs-image btrfs-select-super btrfstune
btrfs-calc-size btrfs-convert btrfs-find-root btrfs-map-logical btrfs-show-super btrfs-zero-log
# sudo btrfs sub list /
ID 257 gen 16298 top level 5 path @
ID 276 gen 16298 top level 257 path testvol
# sudo btrfs sub snap -r /t
testvol/ tmp/
# sudo btrfs sub snap -r /testvol/ /test-snap
Create a readonly snapshot of '/testvol/' in '//test-snap'
# sudo btrfs sub list /
ID 257 gen 16299 top level 5 path @
ID 276 gen 16299 top level 257 path testvol
ID 277 gen 16299 top level 257 path test-snap
# sudo btrfs send /test-snap/ > /dev/null
At subvol /test-snap/
ERROR: open @/test-snap failed. No such file or directory
This error has been reported upstream:
https:/
Because ubuntu creates /home and / on subvolumes this currently prevents backup solutions based on btrfs send.
Current workaround until upstream bug is fixed (works for me): YYYYMMDD- HHMMSS- @ YYYYMMDD- HHMMSS- @ | btrfs receive /backup
If you mount the btrfs root (without specifying subvol=@...) to e.g. /mnt then you can use btrfs send successfully
e.g.
btrfs subvolume snapshot -r /mnt/@ /mnt/snapshots/
btrfs send /mnt/snapshots/
(/backup being the 2nd btrfs volume to which the snapshot shall be sent to)