Btrfs

So verwenden Sie Btrfs-Schnappschüsse

So verwenden Sie Btrfs-Schnappschüsse
Das Btrfs-Dateisystem verfügt über eine integrierte Snapshot-Unterstützung auf Dateisystemebene. Sie können ein Subvolume in Ihrem Btrfs-Dateisystem erstellen und Snapshots der Dateien/Verzeichnisse in diesem Subvolume erstellen. Wenn Sie einen Snapshot eines Subvolumes erstellen, wird der Status der Dateien/Verzeichnisse in diesem Subvolume gespeichert. Sie können alle Dateien/Verzeichnisse des Subvolumes aus dem Snapshot wiederherstellen, falls Sie es benötigen.

Die Snapshot-Funktion des Btrfs-Dateisystems verwendet das Copy-on-Write (CoW)-Prinzip. Es nimmt also nicht viel Speicherplatz in Anspruch und Sie können sofort Snapshots eines Subvolumes erstellen.

Das Btrfs-Dateisystem unterstützt 2 Arten von Snapshots.

  1. Beschreibbare Schnappschüsse: Wenn Sie einen beschreibbaren Snapshot erstellen, können Sie die Dateien/Verzeichnisse dieses Snapshots später ändern. Dies ist der Standard-Snapshot-Typ des Btrfs-Dateisystems.
  2. Schreibgeschützte Snapshots: Wenn Sie einen schreibgeschützten Snapshot erstellen, können Sie die Dateien/Verzeichnisse dieses Snapshots später nicht mehr ändern.

Dieser Artikel zeigt Ihnen, wie Sie beschreibbare und schreibgeschützte Snapshots Ihrer Btrfs-Dateisystem-Subvolumes erstellen. Ich zeige Ihnen auch, wie Sie einen beschreibbaren Snapshot aktualisieren und Dateien von einem Snapshot wiederherstellen. Ich zeige Ihnen auch, wie Sie einen Snapshot entfernen können. Also lasst uns anfangen.

Voraussetzungen

Um die Beispiele dieses Artikels auszuprobieren,

Ich habe eine 20 GB Festplatte sdb auf meinem Ubuntu-Rechner. Ich habe 2 Partitionen erstellt sdb1 und sdb2 auf dieser Festplatte. Ich werde die Partition verwenden sdb1 In diesem Artikel.

$ sudo lsblk -e7

Ihre Festplatte oder SSD kann einen anderen Namen haben als meine, ebenso die Partitionen. Stellen Sie also sicher, dass Sie sie von nun an durch Ihre ersetzen.

Wenn Sie Hilfe bei der Installation des Btrfs-Dateisystems unter Ubuntu benötigen, lesen Sie meinen Artikel Installieren und verwenden Sie Btrfs unter Ubuntu 20.04 LTS.

Wenn Sie Hilfe bei der Installation des Btrfs-Dateisystems auf Fedora benötigen, lesen Sie meinen Artikel Installieren und verwenden Sie Btrfs auf Fedora 33.

Erstellen eines Btrfs-Dateisystems

Um mit Btrfs-Subvolumes zu experimentieren, müssen Sie ein Btrfs-Dateisystem erstellen.

So erstellen Sie ein Btrfs-Dateisystem mit dem Label Daten auf der sdb1 Partition, führen Sie den folgenden Befehl aus:

$ sudo mkfs.btrfs -L Daten /dev/sdb1

Ein Btrfs-Dateisystem sollte erstellt werden.

Erstellen Sie ein Verzeichnis /Daten mit folgendem Befehl:

$ sudo mkdir -v /data

So mounten Sie das Btrfs-Dateisystem, das auf dem erstellt wurde sdb1 Partition in der /Daten Verzeichnis, führen Sie den folgenden Befehl aus:

$ sudo mount /dev/sdb1 /data

Das Btrfs-Dateisystem sollte gemountet sein, wie Sie im Screenshot unten sehen können.

$ df -h /data

Vorbereiten des Btrfs-Dateisystems für Snapshots

In Btrfs können Sie nur Snapshots von Btrfs-Subvolumes erstellen. Die Hauptwurzel eines Btrfs-Dateisystems ist auch ein Subvolume. Sie können also das gesamte Btrfs-Dateisystem sowie bestimmte Subvolumes sichern.

Dieser Abschnitt erstellt ein Btrfs-Subvolume /data/projects/web1 und erstellen Sie die erforderlichen Dateien für die nächsten Abschnitte dieses Artikels unten. Ich werde auch ein Verzeichnis erstellen, in dem Sie Ihre Schnappschüsse aufbewahren können. In den nächsten Abschnitten zeige ich Ihnen, wie Sie Snapshots erstellen (beschreibbar und schreibgeschützt), einen beschreibbaren Snapshot aktualisieren und Dateien aus dem Snapshot wiederherstellen. Also lasst uns anfangen.

Erstellen Sie zuerst ein neues Verzeichnis /Daten/Projekte wie folgt:

$ sudo mkdir -v /data/projects

Erstellen Sie ein neues Subvolume web1 in dem /Daten/Projekte Verzeichnis wie folgt:

$ sudo btrfs Subvolume erstellen /data/projects/web1

Erstellen Sie eine neue Datei Index.html in dem /data/projects/web1 Teilvolumen wie folgt:

$ sudo nano /data/projects/web1/index.html

Geben Sie die folgenden Codezeilen in die ein Index.html Datei.




Demo-Website



Hallo Welt 4



Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten Index.html Datei.

Erstellen Sie eine neue Datei Stil.CSS in dem /data/projects/web1 Teilvolumen wie folgt:

$ sudo nano /data/projects/web1/style.CSS

Geben Sie die folgenden Codezeilen in die ein Stil.CSS Datei.

h1
Farbe grün;

Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten Stil.CSS Datei.

Jetzt die /data/projects/web1 Teilvolumen hat die Index.html und Stil.CSS Datei.

$ ls -lh /data/projects/web1

Ich möchte alle Snapshots dieses Btrfs-Dateisystems im /Daten/.Schnappschüsse Verzeichnis.

Erstellen Sie die /Daten/.Schnappschüsse Verzeichnis mit folgendem Befehl:

$ sudo mkdir -v /data/.Schnappschüsse

Schnappschüsse eines Subvolumes machen Taking

Um einen Schnappschuss vom zu machen /data/projects/web1 Unterband in die /Daten/.Schnappschüsse/web1-2020-12-25 Verzeichnis (wird automatisch erstellt), führen Sie den folgenden Befehl aus:

$ sudo btrfs Subvolume-Snapshot /data/projects/web1 /data/.Schnappschüsse/web1-2020-12-25

Eine Momentaufnahme der /data/projects/web1 Verzeichnis sollte auf dem . erstellt werden /Daten/.Schnappschüsse/web1-2020-12-25 Verzeichnis.

Wie Sie im Screenshot unten sehen können, ein neues Untervolumen .Schnappschüsse/web1-2020-12-25 geschaffen. Ein Snapshot ist eigentlich ein Subvolume.

$ sudo btrfs Subvolume-Liste /data

Weitere Informationen zu dem von Ihnen erstellten Snapshot finden Sie im /Daten/.Schnappschüsse/web1-2020-12-25 Verzeichnis wie folgt:

$ sudo btrfs Subvolume anzeigen /data/.Schnappschüsse/web1-2020-12-25

Wie Sie sehen können, sind alle Dateien in der /data/projects/web1 Teilvolumen sind in der /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss.

$ tree -a /data

Wiederherstellen von Dateien aus Snapshots

In diesem Abschnitt zeige ich Ihnen, wie Sie Dateien aus den Btrfs-Snapshots wiederherstellen können.

Zuerst zeige ich Ihnen, wie Sie eine einzelne Datei aus dem Snapshot wiederherstellen können.

Öffne das /data/projects/web1/index.html Datei mit dem Nano-Texteditor wie folgt:

$ sudo nano /data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen vor.

Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die Datei zu speichern.

Wie Sie sehen können, ist die Hauptsache Index.html Datei unterscheidet sich von der Index.html Datei im Schnappschuss.

$ cat /data/projects/web1/index.html
$ Katze /Daten/.Schnappschüsse/web1-2020-12-25/index.html

Wir haben die Änderungen am Main vorgenommen Index.html Datei sind unerwünscht, und wir möchten die Datei wiederherstellen Index.html Datei aus dem Schnappschuss.

Sie können die wiederherstellen Index.html Datei aus dem Snapshot wie folgt:

$ sudo cp -v /data/.Schnappschüsse/web1-2020-12-25/index.html /data/projects/web1/index.html

Wie Sie sehen können, ist die Index.html Datei wird aus dem Snapshot wiederhergestellt.

$ cat /data/projects/web1/index.html
$ Katze /Daten/.Schnappschüsse/web1-2020-12-25/index.html

Sehen wir uns nun an, wie Sie alle Dateien/Verzeichnisse aus dem Snapshot wiederherstellen können.

Entfernen Sie alle Dateien aus dem /data/projects/web1 Schnappschuss wie folgt:

$ sudo rm -rv /data/projects/web1/*

Um alle Dateien/Verzeichnisse aus dem Snapshot wiederherzustellen, führen Sie den folgenden Befehl aus:

$ sudo rsync -avz /data/.Schnappschüsse/web1-2020-12-25/ /data/projects/web1/

Wie Sie sehen, werden die Dateien/Verzeichnisse aus dem Snapshot wiederhergestellt.

$ ls -lh /data/projects/web1

Sehen wir uns schließlich an, wie Sie Dateien/Verzeichnisse aus dem Snapshot im Spiegelmodus wiederherstellen können. Im Spiegelmodus sind die Dateien/Verzeichnisse des Subvolumes dieselben wie im Snapshot. Wenn sich im Subvolume Dateien/Verzeichnisse befinden, die im Snapshot nicht verfügbar sind, werden sie entfernt.

Erstellen wir eine neue Datei im Subvolume, um den Dateibaum vom Snapshot zu unterscheiden.

Ein ... kreieren Liesmich.TXT Datei in der /data/projects/web1 Teilvolumen wie folgt:

$ echo "Hallo Welt 5" | sudo tee /data/projects/web1/README.TXT

Wie Sie sehen, ist der Dateibaum der of /data/projects/web1 Teilvolumen ist anders als das /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss.

$ tree -a /data

So stellen Sie die Dateien/Verzeichnisse aus dem /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss zum /data/projects/web1 Subvolume im Spiegelmodus, führen Sie den folgenden Befehl aus:

$ sudo rsync -avz --delete /data/.Schnappschüsse/web1-2020-12-25/ /data/projects/web1/

Alle Dateien/Verzeichnisse der /data/projects/web1 Subvolume sollte wiederhergestellt werden (im Spiegelmodus) aus dem /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss.

Der Dateibaum der /data/projects/web1 Unterband und die /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss sollte gleich sein.

Wie Sie sehen können, ist der Index.HTML-Datei und -Stil.Der Inhalt der CSS-Datei ist in der /data/projects/web1 Unterband und die /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss.

Inhalt der Index.html und Stil.CSS Datei in der /data/projects/web1 Teilvolumen.

$ cat /data/projects/web1/index.html
$ cat /data/projects/web1/style.CSS

Inhalt der Index.html und Stil.CSS Datei in der /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss.

$ cat /data/projects/web1/index.html
$ cat /data/projects/web1/style.CSS

Aktualisieren eines Snapshots

Standardmäßig erstellt das Btrfs-Dateisystem beschreibbare Snapshots. Ein Btrfs-Snapshot ist wie ein Subvolume. So können Sie die Dateien/Verzeichnisse eines beschreibbaren Snapshots ändern/aktualisieren.

Aktualisieren wir die Index.html Datei in der /data/projects/web1 Teilvolumen.

Öffnen Sie zuerst die Index.html Datei aus dem /data/projects/web1 Teilband mit dem nano Texteditor wie folgt:

$ sudo nano /data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen vor. Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten Index.html Datei.

Wie Sie sehen können, ist der Index.html-Datei des /data/projects/web1 Teilvolumen ist anders als das /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss.

$ cat /data/projects/web1/index.html
$ Katze /Daten/.Schnappschüsse/web1-2020-12-25/index.html

Sie möchten das behalten Index.html Datei der /data/projects/web1 Teilvolumen.

Um die zu aktualisieren Index.html Datei in der /Daten/.Schnappschüsse/web1-2020-12-25 Snapshot, führen Sie den folgenden Befehl aus:

$ sudo cp -v /data/projects/web1/index.html /Daten/.Schnappschüsse/web1-2020-12-25/index.html

Wie Sie sehen können, ist die Index.html Datei der /Daten/.Schnappschüsse/web1-2020-12-25 Schnappschuss wird aktualisiert.

Das Aktualisieren eines Snapshots ist so einfach wie das Kopieren neuer Dateien in den Snapshot.

Erstellen von schreibgeschützten Snapshots eines Subvolumes

Manchmal möchten Sie nicht, dass die von Ihnen aufgenommenen Schnappschüsse in irgendeiner Weise aktualisiert werden. In diesem Fall können Sie schreibgeschützte Snapshots erstellen.

Zum Beispiel, um einen schreibgeschützten Snapshot zu erstellen /Daten/.Schnappschüsse/web1-2020-12-26 des /data/projects/web1 subvolume, führen Sie den folgenden Befehl aus:

$ sudo btrfs Subvolume-Snapshot -r /data/projects/web1 /data/.Schnappschüsse/web1-2020-12-26

Wie Sie sehen, ein neues Unterband .Schnappschüsse/web1-2020-12-26 geschaffen.

$ sudo btrfs Subvolume-Liste /data

Wie Sie sehen können, ist der Schnappschuss /Daten/.Schnappschüsse/web1-2020-12-26 ist schreibgeschützt.

$ sudo btrfs Subvolume anzeigen /data/.Schnappschüsse/web1-2020-12-26

Aktualisieren wir die Index.html Datei aus dem /data/projects/web1 Teilvolumen.

Öffnen Sie dazu die Index.html Datei aus dem /data/projects/web1 Teilband mit dem nano Texteditor wie folgt:

$ sudo nano /data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen vor. Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die Änderungen zu speichern.

Wie Sie sehen können, ist die Index.html in dem /data/projects/web1 Teilvolumen ist anders als das /Daten/.Schnappschüsse/web1-2020-12-26 Schnappschuss.

$ cat /data/projects/web1/index.html
$ Katze /Daten/.Schnappschüsse/web1-2020-12-26/index.html

Versuchen wir, die zu aktualisieren Index.html Datei in der /Daten/.Schnappschüsse/web1-2020-12-26 Schnappschuss.

$ sudo cp -v /data/projects/web1/index.html /Daten/.Schnappschüsse/web1-2020-12-26/index.html

Wie Sie sehen, können Sie die nicht aktualisieren Index.html Datei der /Daten/.Schnappschüsse/web1-2020-12-26 Snapshot, weil der Snapshot schreibgeschützt ist.

Entfernen eines Snapshots

Ich habe Ihnen vorhin gesagt, dass ein Btrfs-Snapshot wie ein Subvolume ist. Sie können also einen Btrfs-Snapshot genauso entfernen, wie Sie ein Btrfs-Subvolume entfernen. Gleicher Befehl.

So wird der Dateibaum des Btrfs-Dateisystems auf dem /Daten Verzeichnis sieht im Moment so aus.

$ tree -a /data

Lass uns das entfernen .Schnappschüsse/web1-2020-12-25 Schnappschuss.

$ sudo btrfs Subvolume-Liste /data

Um die remove zu entfernen /Daten/.Schnappschüsse/web1-2020-12-25 Snapshot, führen Sie den folgenden Befehl aus:

$ sudo btrfs Subvolume löschen /data/.Schnappschüsse/web1-2020-12-25

Wie Sie sehen können, ist der Schnappschuss .Schnappschüsse/web1-2020-12-25 ist nicht mehr.

$ sudo btrfs Subvolume-Liste /data

Wie Sie sehen, sind die Dateien/Verzeichnisse der /Daten/.Schnappschüsse/web1-2020-12-25 Snapshot wird ebenfalls entfernt.

$ tree -a /data

Fazit

Dieser Artikel hat Ihnen gezeigt, wie Sie beschreibbare und schreibgeschützte Snapshots Ihrer Btrfs-Dateisystem-Subvolumes erstellen. Ich habe Ihnen auch gezeigt, wie Sie einen beschreibbaren Snapshot aktualisieren und Dateien von einem Snapshot wiederherstellen. Ich habe Ihnen auch gezeigt, wie Sie einen Btrfs-Snapshot entfernen können. Dieser Artikel soll Ihnen den Einstieg in die Btrfs-Snapshot-Funktion erleichtern.

Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...