BTRFS hat als der etwas kleinere ZFS-Konkurrent das Potenzial für den künftigen Linux-Standard am Desktop. Es bietet fundamentale Vereinfachungen für die Datenträgeradministration ohne die überdimensionierten Maße eines ZFS.
BTRFS (B-Tree-Filesystem, „Butter FS“, „Better FS“) gibt es seit 2007, ist seit 2009 im Linux-Kernel und gilt seit 2014 als stabil. BTRFS hat viele Gemeinsamkeiten mit ZFS und gilt als dessen kleineres Linux-Pendant, das besser auf die Leistung und die Anforderungen am Linux-Desktop abgestimmt ist und keine zusätzlichen RAM-Ressourcen fordert. Dennoch bleiben die BTRFS-Spezialitäten vorerst „nur“ optional interessant und für ein typisches Desktopsystem sicher nicht zwingend. Bemerkenswert ist die interne Datenkomprimierung, während Datenverschlüsselung (im Unterschied zu ZFS) weiterhin fehlt. Als Formatierungsoption für interne wie externe Laufwerke hat BTRFS überall in den grafischen Werkzeugen wie Installern oder Laufwerksverwaltungen Einzug gefunden. Überwiegend findet der Umgang mit BTRFS aber im Terminal mit den Programmen statt, die das in der Regel vorinstallierte Paket „btrfs-progs“ (früher „btrfs-tools“) mitbringt. Das wichtigste dieser Tools nennt sich schlicht „btrfs“ und bringt eine Menge an Unterfunktionen mit. Dieser Beitrag hat nur Platz für die interessantesten Fähigkeiten von BTRFS.
BTRFS-Snapshots
BTRFS bietet Snapshots (Systemsicherungspunkte), um – mit einem einzigen Befehl – den aktuellen Partitionszustand zu sichern. Während grafische BTRFS-Tools, die über die grundlegende Formatierung (etwa mit Gnome-Disks) hinausgehen, den meisten Distributionen fehlen, hat Open Suse die Integration ein Stück verbessert. Das Konfigurationszentrum Yast2 bringt mit der Komponente Yast2-Snapper die wichtige Snapshot-Verwaltung in grafischer Darstellung. Dort genügt ein Klick auf „Erzeugen“ für einen manuellen Schnappschuss und „Löschen“ für das Entfernen des markierten Eintrags. Der Punkt „Änderungen anzeigen“ führt zu einem Detailbericht für den markierten Schnappschuss, der gezieltes Zurückschreiben einzelner Dateien ermöglicht – eine kleinteilige Arbeit, die zumindest für Systemdateien gute Kenntnisse voraussetzt.
Bedauerlich ist, dass der Yast2-Snapper kein komplettes Rollback zu einem früheren Zustand auslösen kann. Hierfür bietet Open Suse in erster Linie sein Bootmenü mit Auswahl der Snapshots. Im laufenden System gibt es für diesen Zweck auch noch das Terminaltool Snapper:
sudo snapper list
Dies zeigt zunächst sämtliche Snapshots mit Kennzahl. Dort suchen Sie den geeigneten Snapshot anhand des Datums und geben dann diesen Befehl
sudo snapper rollback [x]
mit der zugehörigen Kennziffer ein. Danach starten Sie das System neu. Beim Rollback geschieht grundlegend anderes als beim Wiederherstellen einzelner Dateien im Yast-Modul: Hier hängt Snapper den kompletten Snapshot an die ursprüngliche Stelle ins Dateisystem ein und ersetzt dabei die bisherigen Daten.
Insgesamt erscheint die Snapshotintegration in Open Suse prinzipiell verdienstvoll, aber für Desktopnutzer unzureichend. Wer sich mit BTRFS-Snapshots genauer befassen will, kommt trotz Yast2-Snapper und Konsolen-Snapper am zugrunde liegenden Basisprogrammen btrfs nicht vorbei (Beispiel):
sudo btrfs subvolume snapshot /home /home/snapshot.2021.01.01
Die Quelle – hier „/home“ – ist kein beliebig wählbarer Pfad, sondern muss ein existierendes BTRFS-Subvolume sein, welche wiederum der Befehl
sudo btrfs subvolume list /
liefern kann.
Snapshots sind auch bei größeren Laufwerken blitzschnell erledigt, da es sich vorläufig nur um einen Zeiger auf identische Dateiobjekte handelt. Erst bei Änderungen muss BTRFS die Originalversion für den Snapshot gesondert speichern. Der Snapshot wird dauerhaft den Originalzustand anzeigen und diesen erhalten, egal was im Originalordner geschieht. Ein „Rollback“, wie es Snapper nennt, gibt es eigentlich nicht: Vielmehr wird das bisherige Original ausgehängt und der Snapshot eingehängt.

BTRFS-Komprimierung auf SSD
BTRFS bietet für komplette Datenträger transparente (Hintergrund-)Komprimierung aller gespeicherten Dateien. Auf SSDs mit wenig Kapazität kann eine Linux-Installation mit BTRFS Platz sparen und obendrein den Datendurchsdatz erhöhen. Preis ist eine höhere Prozessorlast, was aber bei aktuellen CPUs kaum auffallen sollte. Wenn Linux mit BTRFS installiert wurde (was inzwischen auch Ubuntu & Co. anbieten), lässt sich die optionale Komprimierung für das root-Dateisystem in der Datei „/etc/fstab“ einrichten. Nach
sudo nano /etc/fstab
werden Sie eine gut gefüllte Datei mit diversen Subvolumes vorfinden. Für das root-Verzeichnis „/“ wird als Dateisystem „btrfs“ und in der Optionenspalte lediglich „defaults“ anzutreffen sein. Für die zusätzliche Komprimierung ergänzen Sie die Option „compress“:
UUID=[Partitions-ID] / btrfs defaults,compress 0 0
Theoretisch kann Analoges auch für „subvol=/@/home“ und weitere Subvolumes erfolgen.
BTRFS-Komprimierung auf USB
Wer Bedenken vor der Formatierung und Komprimierung eines Systemdatenträgers hat, kann BTRFS immerhin für externe Laufwerke in Erwägung ziehen. Neben dem standardmäßig vorgesehenen
sudo mkfs.btrfs /dev/sd[x]
bieten auch die Gnome- und KDE-Laufwerkstools BTRFS-Formatierung. Falls die optionale Kompression gewünscht ist, sollte sie baldmöglichst nach der Formatierung aktiviert werden, da sie erst ab diesemZeitpunkt wirkt (vorher vorhandene Daten bleiben unberücksichtigt). Dies geschieht am Mountpunkt des eingehängten Laufwerks (hier „[…]/btrfs-stick“):
sudo btrfs property set /media/sepp/btrfs-stick compression zstd
Das Attribut bleibt dann permanent gesetzt, auch nach Aushängen und erneutem Einhängen. Davon und von den aktuellen Eigenschaften eines BTRFS-Dateisystems können Sie sich mit
btrfs property get /media/sepp/btrfs-stick
jederzeit überzeugen. BTRFS-Kompression kann gerade bei langsamen USB-Laufwerken und Speicherkarten den Datendurchsatz deutlich verbessern.

BTRFS: Weitere Praxisbeispiele
Konvertierung: Das Tool btrfs-convert (im Paket „btrfs-progs“ enthalten) kann von einem Livesystem aus das Ext4-Dateisystem eines bereits installierten Linux zu BTRFS konvertieren. Wir raten ab – nicht aus empirischer Erfahrung, sondern aufgrund prinzipieller Vorsicht vor Eingriffen dieser Dimension.
Datenträger zusammenlegen: Folgender Befehl legt zwei (ausgehängte) Datenträger zu einem logischen Volume zusammen:
sudo mkfs.btrfs /dev/sdc /dev/sdd
Achtung – das ist eine Formatierung und eventuelle Daten auf den Laufwerken gehen verloren. Um diesen neuen Speicherplatz einzuhängen, benötigen Sie ein leeres Verzeichnis und einen Mountbefehl:
sudo mount /dev/sdc ~/Sticks
Es spielt keine Rolle, welche der beiden Gerätekennungen Sie verwenden. Sie können später auch noch weitere Datenträger hinzufügen:
sudo btrfs device add /dev/sdf ~/Sticks/
Das gilt analog auch für das root-Dateisystem („/“), falls dort der Speicherplatz knapp werden sollte:
sudo btrfs device add /dev/sdf /
Größenänderungen: Wie schnell BTRFS Größenänderungen auf einem Volume oder einem Verbund erledigt, zeigt der folgende Befehl:
sudo btrfs filesystem resize -10g /
Das verkleinert das root-Dateisystem sofort um zehn GB.


