Table of Contents

BTRFS subvolumes

btrfs subvolume create /BTRFS/sub1
btrfs subvolume create /BTRFS/sub2
btrfs subvolume create /BTRFS/sub3
btrfs subvolume list /BTRFS
ID 256 gen 234 top level 5 path sub1
ID 257 gen 227 top level 5 path sub2
ID 258 gen 228 top level 5 path sub3

Mount subvolume

mount -o subvol=sv1/sv12 /dev/sdb /mnt

Getting data size on each subcvolume:

Mixed mount options

NOT SUPPORTED YET:

In general, btrfs doesn't _yet_ have the runtime infrastructure to handle 
per-subvolume mount options.  The on-device format and general approach 
in the kernel was designed to allow it, and it's on the roadmap, it just 
hasn't been done... yet.

To make workaround it is possible to use attributes on files or directories:

Move data between subvolumes

See `cp` command arg:

When --reflink[=always] is specified, perform a lightweight copy, where the data blocks are copied  only  when  modified.   If  this  is  not  possible  the  copy  fails,  or  if
     --reflink=auto is specified, fall back to a standard copy.
cp -pr --reflink=always srcDirectory dstDirectory/
rm -r srcDirectory