So erstellen Sie Snapshots mit BtrFS unter Linux

Möchten Sie Schnappschüsse von Daten auf Ihrem Linux-PC erstellen, nur für den Fall, dass etwas gelöscht wird? Mit dem BtrFS-Dateisystem ist das möglich. Bevor Sie einen BtrFS-Snapshot erstellen können, müssen Sie zunächst ein Blockgerät unter Linux haben, das das BtrFS-Dateisystem verwendet. Wenn Sie ein vorhandenes Laufwerk in ein BtrFS-Laufwerk für verschiedene Daten umwandeln möchten, befolgen Sie die nachstehenden Anweisungen. Möchten Sie stattdessen BtrFS als Root-Dateisystem verwenden? Stellen Sie sicher, dass Sie während des Installationsvorgangs „benutzerdefinierte Installation“ auswählen und BtrFS als Dateisystem Ihrer Wahl auswählen.

Zusätzlich zu einem Blockgerät mit dem darauf formatierten BtrFS-Dateisystem muss der Benutzer auch die btrfs-progs Paket.

Hinweis: Möglicherweise müssen Sie den Befehl lsblk ausführen, um zu bestimmen, welches Blockgerät formatiert werden soll.

BtrFS unter Linux

Um ein Laufwerk zu formatieren, sichern Sie zuerst alle darauf befindlichen Daten und öffnen Sie dann ein Terminal. Im Terminal rooten mit: sudo -s. Verwenden Sie bei Root-Zugriff den Befehl mkfs, um ein neues Dateisystem auf dem Gerät zu erstellen. In diesem Beispiel verwenden wir /dev/sdd1

mkfs.btrfs -f /dev/sdd1

Fehlerbehebung

Laufwerk funktioniert nach Formatierung auf BtrFS nicht? Möglicherweise müssen Sie eine neue Partitionstabelle erstellen. So geht’s:

parted /dev/sdd
mklabel gpt
mkpart primary btrfs 1MiB 100%

Beenden Sie das geteilte Werkzeug mit:

quit

Führen Sie dann den Formatbefehl erneut aus.

mkfs.btrfs -f /dev/sdd1

Erstellen Sie Snapshots mit BtrFS

Bevor Sie Snapshots erstellen, müssen Sie einige Untervolumes erstellen. Haupt-Linux-Dateisystem ist BtrFS? Überspringen Sie diesen Schritt und fahren Sie direkt mit dem Einrichten von Subvolumes fort. Befolgen Sie diesen Teil des Prozesses nur, wenn Sie ein sekundäres Laufwerk mit dem BtrFS-Dateisystem verwenden, Sie müssen es einhängen. In diesem Beispiel ist die Festplatte /dev/sdd.

  Wie man Linux wie macOS aussehen lässt

sudo -s 
mkdir /btrfs
mount -t btrfs /dev/sdd1 /btrfs

Der BtrFS-Hauptordner wurde erstellt, gemountet und ist einsatzbereit. Es ist Zeit, ein Subvolume zu erstellen. Was ist ein Subvolume? Es ist eine spezielle Funktion, die mit dem BtrFS-Dateisystem geliefert wird, die es erstellten Volumes ermöglicht, ähnlich wie ein Blockgerät zu funktionieren (denken Sie an /dev/sda1 usw.).

Die Realität ist, dass es sich nicht wirklich um Blockgeräte handelt. Stattdessen handelt es sich um ausgefallene Verzeichnisse, die sich eine Technologie namens „Namespaces“ zunutze machen. Ohne zu kompliziert zu werden, nutzt das BtrFS diese Namespace-Technologie, um Benutzern zu ermöglichen, eine Reihe individueller, einhängbarer Sub-Volumes zu erstellen, die sich ähnlich wie Blockgeräte verhalten und verhalten.

Gehen Sie folgendermaßen vor, um Ihr eigenes Subvolume zu erstellen. In diesem Beispiel zeigen wir eine grundlegende Subvolume-Struktur, die im Hauptordner /btrfs beginnt. Denken Sie daran, dass Sie Ihre eigenen Volumes erstellen können, wo immer Sie möchten, solange dies auf einem BtrFS-Dateisystem erfolgt.

Besorgen Sie sich zuerst eine Root-Shell. Diese Befehle könnten mit sudo-Privilegien ausgeführt werden, aber da die Interaktion mit dem Dateisystem (als root) mühsam sein kann, ist es am besten, sofort root zu werden. Verwenden Sie sudo -s oder melden Sie sich mit su als Root an. Dann mach:

btrfs subvolume create /btrfs/vol_a

Der erste Befehl erstellt ein BtrFS-Subvolume unter /mnt/btrfs auf unserem Beispiellaufwerk /dev/sdd1. Wenn Sie wollten, könnten Sie hier aufhören und dies als Volume verwenden, um alle wichtigen Daten zu speichern. Alternativ können Sie Sub-Sub-Volumes erstellen (so viele Sie möchten). Um ein Volume innerhalb eines Volumes zu erstellen, würden Sie Folgendes tun:

btrfs subvolume create /btrfs/vol_a/vol_b

Um einen Snapshot zu erstellen, verschieben/kopieren Sie zunächst alle wichtigen Daten in ein Subvolume. Beispielsweise:

cp -R ~/Documents /btrfs/vol_a/

Verwenden Sie dann das Dateisystem, um einen Snapshot zu erstellen.

  So installieren Sie AppImages auf einfache Weise unter Linux

btrfs subvolume snapshot /btrfs/vol_a/ /btrfs/vol_a/backup_1

Hinweis: Ersetzen Sie „backup_1“ durch den Namen Ihres Snapshots. Beschriften Sie sie deutlich, damit Sie sie später sortieren können.

Stellen Sie einen beliebigen Snapshot wieder her mit: mv /btrfs/vol_a/ /mnt/btrfs/vol_a/backup_1

Mounten von Subvolumes als Blockgeräte

Ein Teil des Tollen an Subvolumes ist die Möglichkeit, sie alle einzeln als unabhängige Geräte bereitzustellen. Listen Sie dazu zunächst alle bekannten Volumes mit dem Befehl btrfs auf.

btrfs subvolume list /btrfs

Gehen Sie die Liste durch, suchen Sie die ID-Nummer des Subvolumes und hängen Sie es dann mit dem Befehl mount ein. Unmounten Sie es dann, sobald Sie die ID erhalten 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. Denken Sie nur daran, dass Sie ein Subvolume nicht auf derselben Partition wie die Partition der obersten Ebene mounten können. Mounten Sie stattdessen auf einer anderen BtrFS-formatierten Partition oder einem anderen Laufwerk. Beispielsweise:

mount -o subvolid=38 /dev/sdc1 /btrfs

Subvol 38 befindet sich auf /dev/sdd1, aber /dev/sdc1 ist auch BtrFS, sodass Snapshots dort gemountet werden können. Dies muss nicht auf einzelnen Laufwerken durchgeführt werden. Stattdessen können Sie es in /dev/sdc2 usw. einhängen.

  So installieren Sie Mailspring unter Linux

Stellen Sie das Standard-Subvolume ein

Das Festlegen des standardmäßigen BtrFS-Subvolumes ist nützlich, da es die Interaktion damit erleichtert. Um einen Standard festzulegen, verwenden Sie zuerst den Befehl subvolume list, um die ID zu finden. Nehmen Sie die ID und fügen Sie sie in den Befehl set-default ein:

btrfs subvolume set-default XXX /btrfs

Um eine von Ihnen festgelegte Standardeinstellung zu entfernen, verwenden Sie denselben Befehl, außer dass Sie anstelle einer Volume-ID aus der Subvolume-Liste die Nummer 0 verwenden. Dadurch wird sie auf die Werkseinstellungen zurückgesetzt, und Sie können sie dann verwenden andere Subvolumes als Standard.

btrfs subvolume set-default 0 /btrfs

Ein Subvolume löschen

Wenn Sie zu irgendeinem Zeitpunkt ein Volume loswerden möchten, können Sie es mit BtrFS löschen. Bitte löschen Sie das Subvolume nicht manuell von der Festplatte, mit Befehlen wie „rmdir“ oder „rm -rf“. Es ist besser, die BtrFS-Dateisystemtools zu verwenden.

Gehen Sie wie folgt vor, um ein Volume zu löschen:

btrfs subvolume delete /btrfs/volume-name