Meine / home-Partition besteht aus einer gesamten physischen Festplatte. Es ist als btrfs formatiert. Ich möchte einen Schnappschuss machen. Insbesondere in Bezug auf die Benennung von Subvolumes bin ich verwirrt.
Mir ist bewusst, dass es ähnliche Fragen gibt, aber jede ähnliche Frage scheint etwas anderes zu stellen als das, was ich stelle (und sie sind älter, was angesichts der raschen Entwicklung von btrfs wahrscheinlich veraltet ist). Beispielsweise ist die Antwort auf diese Frage anscheinend nicht die Antwort auf meine Frage, da meine / home-Partition ein separates Volume ist und die Manpage für btrfs jetzt einen anderen Befehl zum Erstellen von Snapshots anzeigt.
ein anderes ähnliches problem, keine feste lösung .
Jemand anders ist genauso verwirrt wie ich in Bezug auf die Namensgebung
Meine Frage:
Einfach starten: Ist dies der richtige Befehl, um einen einfachen Schnappschuss meiner Home-Partition zu erstellen?
btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421
Ich bin wirklich mutig geworden und habe es getestet und es funktioniert nicht. Der Fehler ist error accessing /home/@home
. Wie unten gezeigt, wird @home aufgelistet.
Ich bin offensichtlich verwirrt über die Namen der Subvolumes. Muss ich sie zum Erstellen von Schnappschüssen verwenden? Einige Beispiele zeigen das Erstellen von Snapshots von "home" mit /home
dem Parameter "source". Anhand von Beispielen für Root-Volumes muss ich diese verwenden /home/@home
.
Würde dieser Befehl funktionieren? Und wenn nicht, warum?
btrfs subvolume snapshot /home /home/@home_snapshot_20120421
Ist das @
nur eine Namenskonvention? Ist es überhaupt sinnvoll?
Hier sind einige Ausgaben, die relevant sein könnten:
btrfs subvolume list /home
ID 256 top level 5 path @home
Ich bin mir nicht sicher, was das genau bedeutet. Wenn ich es versuche btrfs device scan
, gibt es einen Fehler (z. B. das Gerät / dev / sda1 kann nicht gescannt werden). Mein Dateisystem enthält keine Fehler. Alles ist gut.
Hier sind meine Partitionen. Als Antwort auf eine Antwort ist no / home nicht meine einzige BTRFS-Partition.
/dev/sda1: (boot partition) TYPE="ext2"
/dev/sda2: (root partition) TYPE="btrfs"
/dev/sdb1: (home partition) TYPE="btrfs"
/dev/sdc1: (shared partition) TYPE="btrfs"
/dev/sdc2: TYPE="swap"
Antworten:
Was ist der richtige Befehl, um einen Schnappschuss meiner Home-Partition unter Ubuntu 12.04 zu erstellen?
Angesichts der Tatsache, dass sich home auf einer btrfs-Partition befindet und als / home gemountet ist, lautet der richtige Befehl:
Hier sind meine Ergebnisse:
Bevor Sie den Befehl heute ausführen:
Der Befehl:
Nachdem Sie den Befehl heute ausgeführt haben:
Das einzige Problem bei dieser Methode ist, dass Schnappschüsse angezeigt werden, wenn Sie sich in (Liste) / home befinden.
Das Ubuntu-Community-Wiki wurde mit einer Lösung für dieses Problem aktualisiert. Hier ist es:
So arbeiten Sie mit Schnappschüssen im Ubuntu-Layout
Um mit Snapshots von / oder / home im Ubuntu-Layout arbeiten zu können, ist es sehr praktisch, das btrfs-Dateisystem an einem separaten Ort einzuhängen und vom oberen Rand des btrfs-Baums aus zu arbeiten, anstatt von den eingehängten Subvolumes. <- das ist die Lösung. Leider ist es nicht bequem .
Verwenden Sie zum Erstellen eines Snapshots dieselbe Syntax wie oben:
Dadurch wird eine Momentaufnahme des @ -Untervolumes mit dem Namen @_snapshot erstellt, das sich ebenfalls oben im btrfs-Baum befindet. Da es sich oben in der Baumstruktur befindet, wird es beim Auflisten von Dateien auf einem bereitgestellten Volume nicht angezeigt.
Um ein Rollback zu einem Snapshot durchzuführen, müssen Sie lediglich dessen Namen in den Namen ändern, den Ubuntu bereitstellt und neu startet. So ändern Sie den Namen:
So löschen Sie einen Schnappschuss:
btrfs-Snapshots sind selbst Subvolumes und in sich geschlossen. Das Löschen des alten @ -Untervolumes ist in Ordnung, vorausgesetzt, wir haben einen Ersatz.
HINWEIS: Der Befehl btrfs-tools unterbricht
set-default
Ubuntus Layout.quelle
Ok, das Wichtigste zuerst:
Der Name des Subvolumes, das Sie gerade anzeigen, wird
@home
durch angezeigtbtrfs subvolume list /home
. Es ist montiert in/home
. @home ist der Name des Subvolumes und hat auch die ID 256, sodass höchstwahrscheinlich nur Ihr / home als btrfs formatiert ist.Um nun einen Schnappschuss von @home zu erstellen, müssen Sie Folgendes ausführen:
sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421
Das Subvolume kann einen beliebigen Namen haben. Das @ ist Ubuntus Konvention zur Installationszeit. (Wenn Sie
apt-btrfs-snapshot
das Root-Subvolume verwenden, muss es zwischendurch benannt@
werden.) Das Community-Wiki empfiehlt nachdrücklich,@
als Root und@home
als Home zu bleiben, da es auf diese Weise gemountet ist. Dies ist besonders wichtig, wenn Sie ein Rollback durchführen möchten: Sie sollten NICHT das Subvolume set-default von btrfs verwenden (keine Syntax, die absichtlich hervorgehoben wird).Dafür
btrfs device scan
musst du verwendensudo
.Zum Löschen eines Subvolumes können Sie verwenden
sudo btrfs subvolume delete @home_snapshot_20120421
Alle Btrfs - Befehle können so lange abgekürzt werden , da sie eindeutig sind, so zum Beispiel
sudo btrfs device scan
kann abgeschnitten werdensudo btrfs d s
,sudo btrfs dev sc
oder irgendetwas dazwischen.Ich hoffe das hat deine Fragen beantwortet. Es gibt einige Tools, mit denen regelmäßige Backups erstellt werden können. Btrfs-Snapshot-Rotation ist ein Beispiel. Gehen Sie mit Vorsicht vor, da keine von ihnen wirklich ausgereift ist oder genügend Traktion hat, dh sie können sehr gut Fehler enthalten.
quelle
$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
btrfs device scan
. Jede Variante, einschließlich using,sudo
gibt den Fehler "ERROR: Das Gerät '/ dev / sdX' kann nicht gescannt werden" aus, wobei X für einen gültigen Namen wie a, a1, b usw. steht.btrfs sub snap @ /mnt/random
und es hat bei mir funktioniert. Dann war ich wieder in / mnt, wo @ montiert wurde. Entschuldigung für die VerwirrungInstallieren Sie das
apt-btrfs-snapshot
Paket, und verwenden Sie seine Unterbefehlelist
,snapshot
,delete
undset-default
.Dies ist ein Skript, das die
btrfs
Befehle der unteren Ebene umschließt. Es funktioniert, indem Sie zuerst das btrfs-Root-Dateisystem irgendwo mounten. Damit meine ich die reale Wurzel, im Gegensatz zu dem/@
Subvolume, das normalerweise als gemountet wird/
. Mit anderen Worten, Sie müssen laufen ,mount /dev/sda1 /mnt
damit Sie die Subvolumes anzeigen können , die als aufgeführt werden/mnt/@
,/mnt/@home
und alle anderen , die Sie erstellt haben. Von dort können Siebtrfs subvolume snapshot /mnt/@home @snapshot-today
, die eine Momentaufnahme von/@home
benannten erstellen/@snapshot-today
. Vergleichen Sie dies mit dem Ausführenbtrfs subvolume snapshot /home /home/@snapshot_today
, das stattdessen den Schnappschuss als untergeordnetes Element von erstellt/@home
. Daher wird er angezeigt, wenn Siels /home
und sein richtiger Name vorliegen/@home/@snapshot-today
.Rollende einen Snapshot zurück ist nur eine einfache Umbenennung:
mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home
. Das nächste Mal , wenn Sie booten, wenn es geht zu montieren/@home
in/home
, wird es die Snapshot finden.Es ist ein bisschen schwierig, den Kopf herumzureißen, weil Sie den Unterschied zwischen der Sichtweise von btrfs und der Sichtweise des Kernels berücksichtigen müssen, der von den Einhängeoptionen (insbesondere dem Argument subvol =) beeinflusst wird.
quelle