====== 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: * Enable quota on btrfs ''btrfs quota enable /'' * Install script [[https://github.com/agronick/btrfs-size]] ==== 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: * C disable COW feature (for newly created directories or zero sized files). New files in directores with C attributes will be created with C attrib. But not subdirectories. * c enable compression ==== 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