Paket: btrfs-progs ext? nach btrfs konvertieren: man btrfs-convert Dateisystem anlegen und mounten: mkfs.btrfs /dev/sda2 btrfs filesystem show mkdir /mnt/btrfs mount /dev/sda2 /mnt/btrfs cd /mnt/btrfs Beispieldaten hinein kopieren: time cp -a /usr/share/ . Daten komprimieren: btrfs filesystem df -h share/ -> ''Data, single: total=2.01GiB, used=1.53GiB'' btrfs filesystem defragment -czstd -r share/ btrfs filesystem df -h share/ -> ''Data, single: total=3.01GiB, used=740.17MiB'' Informationen über das top-level Subvolume anzeigen: btrfs subvolume show . -> Subvolume ID: 5 btrfs subvolume list . -> noch keine Subvolumes Subvolume anlegen und Daten hinein verschieben: btrfs subvolume create subvol1 btrfs subvolume list . btrfs subvolume show subvol1 -> Subvolume ID: 256 -> Parent ID: 5 time mv ./share/ ./subvol1/ Subvolume umbenennen: mv subvol1/ subvol2 Subvolume (erneut) mounten: mkdir /mnt/subvol2 mount -o subvol=/subvol2 /dev/sda2 /mnt/subvol2 Snapshot erstellen: time btrfs subvolume snapshot subvol2 snap1 btrfs subvolume list . btrfs subvolume show snap1 -> Subvolume ID: 257 -> Parent ID: 5 Read-only Snapshot erstellen: btrfs subvolume snapshot -r subvol2 snap_ro1 btrfs filesystem df -h . btrfs filesystem du -s --human-readable . du -sh . du -shx . btrfs filesystem du -s --human-readable subvol2 du -sh subvol2 btrfs filesystem du -s --human-readable snap1 ++++ SuSE default root layout | SuSE default: mkfs.btrfs ${BOOT_DEVICE}2 uuid=$(lsblk -n -o uuid ${BOOT_DEVICE}2) mkdir $target mount UUID="$uuid" $target || exit btrfs subvolume create ${target%/}/@ btrfs subvolume create ${target%/}/@/.snapshots mkdir -p ${target%/}/@/.snapshots/1 btrfs subvolume create ${target%/}/@/.snapshots/1/snapshot mkdir -p ${target%/}/@/boot/grub2 btrfs subvolume create ${target%/}/@/boot/grub2/i386-pc btrfs subvolume create ${target%/}/@/boot/grub2/x86_64-efi btrfs subvolume create ${target%/}/@/opt btrfs subvolume create ${target%/}/@/srv btrfs subvolume create ${target%/}/@/tmp mkdir -p ${target%/}/@/usr btrfs subvolume create ${target%/}/@/usr/local mkdir -p ${target%/}/@/var btrfs subvolume create ${target%/}/@/var/crash mkdir -p ${target%/}/@/var/lib/libvirt btrfs subvolume create ${target%/}/@/var/lib/libvirt/images btrfs subvolume create ${target%/}/@/var/lib/mailman btrfs subvolume create ${target%/}/@/var/lib/mariadb btrfs subvolume create ${target%/}/@/var/lib/mysql btrfs subvolume create ${target%/}/@/var/lib/named btrfs subvolume create ${target%/}/@/var/lib/pgsql btrfs subvolume create ${target%/}/@/var/log btrfs subvolume create ${target%/}/@/var/opt btrfs subvolume create ${target%/}/@/var/spool btrfs subvolume create ${target%/}/@/var/tmp subvolid=$(btrfs subvolume show $target/@/.snapshots/1/snapshot | sed -rn 's/.*Object ID:\s+//p') btrfs subvolume set-default "$subvolid" "$target" ++++