Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi2:btrfs [2017/05/10 07:02] ingo_wichmann angelegt |
lpi2:btrfs [2025/01/28 07:52] (aktuell) ingo_wichmann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== btrfs ====== | ||
+ | Status: | ||
+ | * https://btrfs.readthedocs.io/en/stable/Status.html | ||
+ | * https://silvenga.com/posts/btrfs-and-lessons-learned/ | ||
+ | |||
+ | Paket: | ||
+ | * Debian: ''btrfs-progs btrfsmaintenance'' | ||
+ | |||
+ | ===== Dateisystem anlegen ===== | ||
+ | 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 ===== | ||
+ | Daten komprimieren: (( https://github.com/systemd/systemd/issues/9112 )) | ||
+ | btrfs filesystem df -h . | ||
+ | -> ''Data, single: total=2.01GiB, used=1.53GiB'' | ||
+ | btrfs filesystem defragment -czstd -r share/ | ||
+ | btrfs filesystem df -h . | ||
+ | -> ''Data, single: total=3.01GiB, used=740.17MiB'' | ||
+ | btrfs filesystem usage . | ||
+ | ===== Subvolumes ===== | ||
+ | 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 | ||
+ | |||
+ | ===== Snapshots ===== | ||
+ | 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 | ||
+ | |||
+ | ===== Subvolume zum default-Volume machen ===== | ||
+ | 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 | ||
+ | |||
+ | ===== Subvolume mounten ===== | ||
+ | mkdir /mnt/subvol | ||
+ | mount -o subvolid=5 /dev/sda2 /mnt/subvol | ||
+ | |||
+ | ===== Datenträger tauschen ===== | ||
+ | btrfs device usage . | ||
+ | btrfs device add /dev/sda6 . | ||
+ | btrfs device usage . | ||
+ | btrfs device add /dev/sda2 . | ||
+ | btrfs device usage . | ||
+ | |||
+ | ===== SuSE ===== | ||
+ | ++++ SuSE default root layout | | ||
SuSE default: | SuSE default: | ||
Zeile 35: | Zeile 141: | ||
subvolid=$(btrfs subvolume show $target/@/.snapshots/1/snapshot | sed -rn 's/.*Object ID:\s+//p') | subvolid=$(btrfs subvolume show $target/@/.snapshots/1/snapshot | sed -rn 's/.*Object ID:\s+//p') | ||
btrfs subvolume set-default "$subvolid" "$target" | btrfs subvolume set-default "$subvolid" "$target" | ||
+ | ++++ | ||