Möchten Sie Momentaufnahmen Ihrer Daten auf Ihrem Linux-System anfertigen, um im Fall eines Datenverlusts gewappnet zu sein? Das Dateisystem BtrFS bietet Ihnen diese Möglichkeit. Bevor Sie jedoch mit der Erstellung von BtrFS-Snapshots beginnen können, benötigen Sie ein Blockgerät unter Linux, das mit dem BtrFS-Dateisystem formatiert ist. Wenn Sie eine vorhandene Festplatte in ein BtrFS-Laufwerk umwandeln möchten, um dort Ihre Daten abzulegen, folgen Sie den untenstehenden Anweisungen. Wenn Sie BtrFS hingegen als Root-Dateisystem einsetzen möchten, wählen Sie während des Installationsprozesses die „benutzerdefinierte Installation“ und selektieren Sie BtrFS als Ihr bevorzugtes Dateisystem.
Zusätzlich zu einem Blockgerät, das mit dem BtrFS-Dateisystem formatiert ist, benötigen Sie das Paket btrfs-progs.
Hinweis: Um das korrekte Blockgerät für die Formatierung zu identifizieren, kann der Befehl lsblk
hilfreich sein.
BtrFS unter Linux einrichten
Um ein Laufwerk zu formatieren, sichern Sie zuerst alle vorhandenen Daten. Anschließend öffnen Sie ein Terminalfenster. Im Terminal wechseln Sie mit dem Befehl sudo -s
in den Root-Modus. Mit Root-Rechten verwenden Sie den Befehl mkfs
, um ein neues Dateisystem auf dem entsprechenden Gerät zu erstellen. In diesem Beispiel verwenden wir /dev/sdd1
:
mkfs.btrfs -f /dev/sdd1
Problembehandlung
Funktioniert das Laufwerk nach der BtrFS-Formatierung nicht korrekt? Möglicherweise ist das Erstellen einer neuen Partitionstabelle erforderlich. Gehen Sie dazu wie folgt vor:
parted /dev/sdd mklabel gpt mkpart primary btrfs 1MiB 100%
Verlassen Sie das parted
-Tool mit:
quit
Führen Sie danach den Formatierungsbefehl erneut aus:
mkfs.btrfs -f /dev/sdd1
Erstellung von Snapshots mit BtrFS
Bevor Sie Snapshots erstellen können, müssen Sie zunächst einige Subvolumes anlegen. Wenn Ihr Haupt-Linux-Dateisystem bereits BtrFS ist, können Sie diesen Schritt überspringen und direkt mit der Einrichtung der Subvolumes fortfahren. Folgen Sie diesem Prozessabschnitt nur, wenn Sie ein sekundäres Laufwerk mit BtrFS verwenden; dieses muss zunächst gemountet werden. Im folgenden Beispiel verwenden wir die Festplatte /dev/sdd
.
sudo -s mkdir /btrfs mount -t btrfs /dev/sdd1 /btrfs
Der BtrFS-Hauptordner wurde erstellt, gemountet und ist einsatzbereit. Jetzt ist es an der Zeit, ein Subvolume anzulegen. Aber was ist eigentlich ein Subvolume? Es handelt sich um eine spezielle Funktion des BtrFS-Dateisystems. Sie ermöglicht es, erstellte Volumes wie Blockgeräte zu verwenden (ähnlich wie /dev/sda1
usw.).
Tatsächlich sind diese Subvolumes keine echten Blockgeräte. Stattdessen sind es besondere Verzeichnisse, die eine Technologie namens „Namespaces“ nutzen. BtrFS nutzt diese Namespace-Technologie, um Anwendern zu ermöglichen, eine Reihe von individuellen, mountbaren Subvolumes zu erstellen, die sich ähnlich wie Blockgeräte verhalten.
Um ein eigenes Subvolume zu erstellen, befolgen Sie die folgenden Schritte. In unserem Beispiel wird eine grundlegende Subvolume-Struktur erstellt, die im Hauptordner /btrfs
beginnt. Sie können Ihre eigenen Volumes natürlich anlegen, wo immer Sie möchten, solange dies auf einem BtrFS-Dateisystem erfolgt.
Zuerst benötigen Sie eine Root-Shell. Diese Befehle könnten zwar mit sudo
-Rechten ausgeführt werden, aber die Interaktion mit dem Dateisystem (als Root) kann einfacher sein, daher ist es am besten, direkt Root zu werden. Verwenden Sie sudo -s
oder melden Sie sich mit su
als Root an. Dann führen Sie folgenden Befehl aus:
btrfs subvolume create /btrfs/vol_a
Dieser Befehl erstellt ein BtrFS-Subvolume unterhalb von /mnt/btrfs
auf unserem Beispiellaufwerk /dev/sdd1
. An dieser Stelle könnten Sie bereits aufhören und dieses Subvolume zum Speichern wichtiger Daten verwenden. Alternativ können Sie auch Sub-Subvolumes erstellen (so viele Sie möchten). Um ein Volume innerhalb eines anderen zu erstellen, verwenden Sie folgenden Befehl:
btrfs subvolume create /btrfs/vol_a/vol_b
Um einen Snapshot zu erstellen, verschieben oder kopieren Sie zunächst alle wichtigen Daten in ein Subvolume. Zum Beispiel:
cp -R ~/Documents /btrfs/vol_a/
Erstellen Sie danach einen Snapshot mit dem folgenden Befehl:
btrfs subvolume snapshot /btrfs/vol_a/ /btrfs/vol_a/backup_1
Hinweis: Ersetzen Sie backup_1
durch den gewünschten Namen Ihres Snapshots. Verwenden Sie aussagekräftige Namen, um die Snapshots später besser sortieren zu können.
Um einen beliebigen Snapshot wiederherzustellen, verwenden Sie den Befehl: mv /btrfs/vol_a/ /mnt/btrfs/vol_a/backup_1
Subvolumes als Blockgeräte mounten
Ein grosser Vorteil von Subvolumes ist die Möglichkeit, diese einzeln als unabhängige Geräte zu mounten. Um eine Liste aller bekannten Volumes zu erhalten, verwenden Sie den Befehl btrfs subvolume list
:
btrfs subvolume list /btrfs
Durchgehen Sie die Liste und suchen Sie die ID-Nummer des Subvolumes, das Sie mounten möchten. Mounten Sie das Subvolume mit dem Befehl mount
und unmounten Sie es wieder, sobald Sie die ID notiert haben.
mount -o subvolid=XXX /dev/sdX /btrfs
Ersetzen Sie XXX
durch die ID und /dev/sdX
durch das Laufwerk, auf dem sich das zu mountende Volume befindet. Beachten Sie, dass Sie ein Subvolume nicht auf derselben Partition mounten können, auf der sich das übergeordnete Volume befindet. Mounten Sie es stattdessen auf einer anderen BtrFS-formatierten Partition oder einem anderen Laufwerk. Zum Beispiel:
mount -o subvolid=38 /dev/sdc1 /btrfs
Subvolume 38 befindet sich auf /dev/sdd1
, aber /dev/sdc1
ist ebenfalls mit BtrFS formatiert, sodass Snapshots dort gemountet werden können. Dies muss nicht auf separaten Laufwerken geschehen, es kann beispielsweise auch auf /dev/sdc2
usw. gemountet werden.
Standard-Subvolume festlegen
Das Festlegen eines Standard-BtrFS-Subvolumes ist nützlich, da es die Interaktion mit diesem vereinfacht. Um ein Standard-Subvolume festzulegen, suchen Sie zunächst die entsprechende ID mit dem Befehl subvolume list
. Verwenden Sie diese ID dann im Befehl set-default
:
btrfs subvolume set-default XXX /btrfs
Um eine von Ihnen gesetzte Standardeinstellung zu entfernen, verwenden Sie denselben Befehl, ersetzen aber die Volume-ID durch die Nummer 0
. Dadurch wird der Standard auf die Werkseinstellungen zurückgesetzt und Sie können ein anderes Subvolume als Standard verwenden.
btrfs subvolume set-default 0 /btrfs
Subvolume löschen
Wenn Sie ein Subvolume nicht mehr benötigen, können Sie es mit BtrFS löschen. Bitte löschen Sie Subvolumes nicht manuell über die Befehlszeile mit Befehlen wie rmdir
oder rm -rf
. Verwenden Sie stattdessen die entsprechenden BtrFS-Dateisystemtools.
Um ein Subvolume zu löschen, gehen Sie wie folgt vor:
btrfs subvolume delete /btrfs/volume-name