Paket:
btrfs-progs
ext? nach btrfs konvertieren:
man btrfs-convert
oder besser:
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
cd /mnt/btrfs
Snapshot des root-Volumes erstellen:
btrfs subvolume snapshot . 2025011300
Daten (nicht Subvolumes!) aus root-Volume löschen:
ls 2025011300 | xargs echo rm -rf
→ prüfen, das da keine Verzeichnisse mit verschachtelten Subvolumes enthalten sind
ls 2025011300 | xargs rm -rf btrfs subvolume show 2025011300
→ Subvolume ID
kopieren, z.B. 258
btrfs subvolume set-default 256 2025011300/
testen:
ls cd .. umount btrfs mount btrfs ls btrfs
mkdir /mnt/subvol mount -o subvolid=5 /dev/sda2 /mnt/subvol