Chemiestudium mit Linux und TeX

Automatische Snapshots mit btrfs unter Qubes

Im Folgenden werden wir das Verzeichnis /home/user/Documents so einrichten, dass es in definierten App-VMs regelmäßige automatische Snapshots erhält. Hierzu müssen zunächst in der zugehörigen Template-VM – da ich Debian bevorzuge, mache ich das hier am Beispiel von debian-9 – einige Änderungen vorgenommen werden. Anschließend müssen für die App-VMs weitere Vorkehrungen getroffen werden. Die vorliegende Anleitung bezieht sich auf Qubes 4.0-rc4

Template-VM

Qubes verwendet standardmäßig ext4 für die private Partition von AppVMs. Diese kann leicht in eine btrfs-Partition konvertiert werden. Als erstes sollte allerdings die Integrität der Partition sichergestellt werden. Dazu wird die Template-VM heruntergefahren und in dom0 Folgendes ausgeführt:

dom0# cd /var/lib/qubes/vm-templates/debian-9
dom0# sudo fsck.ext4 -f private.img

Ist alles in Ordnung, kann nun das Dateisystem konvertiert werden:

dom0# sudo btrfs-convert private.img

Anschließend wird die Template-VM gestartet und /home/user/Documents in ein Subvolume umgewandelt. Da es sich um eine Template-VM handelt, sollte der Ordner leer sein. Sollte das aus irgendeinem Grund nicht der Fall sein, sollte man ernsthaft seinen Standpunkt zur Systemsicherheit überdenken (und kann wie unten für die App-VM beschrieben den Ordner unter Beibehalt der Dateien in ein Subvolume umwandeln).

rmdir /home/user/Documents
sudo btrfs subvolume create /home/user/Documents
sudo chown user:user /home/user/Documents

Anschließend wir eine Snapper-Konfiguration angelegt:

sudo snapper -c docs create-config /home/user/Documents
sudo vi /etc/snapper/configs/docs

zum Beispiel mit folgendem Inhalt

Es sollte vielleicht erwähnt werden, dass damit zwar eine Konfiguration angelegt wurde, in der Template-VM jedoch keine automatischen Snapshots angelegt werden, da cron nicht läuft.

App-VM

Wie oben wird zunächst die App-VM heruntergefahren und ihr Image auf Fehler geprüft.

dom0# cd /var/lib/qubes/appvms/name-der-vm
dom0# sudo fsck.ext4 -f private.img

Ist alles in Ordnung, kann das Dateisystem konvertiert werden:

dom0# sudo btrfs-convert private.img

Anschließend wird die VM gestartet und der Ordner /home/user/Documents in ein Subvolume umgewandelt – dieses Mal unter Beibehalt der eventuell vorhandenen Dateien:

mv /home/user/Documents /home/user/Documents-flatdir
sudo btrfs subvolume create /home/user/Documents
sudo chown user:user /home/user/Documents
mv /home/user/Documents-flatdir/* /home/user/Documents/
rmdir /home/user/Documents-flatdir/*

Da wir hier die Snapper-Konfiguration nicht erstellen, müssen wir uns manuell darum kümmern, dass der Ordner .snapshots erstellt wird:

sudo btrfs subvolume create /home/user/Documents/.snapshots
sudo chmod 750 /home/user/Documents/.snapshots
sudo chown root:root /home/user/Documents/.snapshots

Und schließlich muss noch cron für die AppVM aktiviert werden – und zwar aus dom0:

dom0# qvm-service -e name-der-vm crond

Dieser Schritt muss dann für alle App-VMs, für die automatische Snapshots aktiviert werden sollen, wiederholt werden.

Comments on: "Automatische Snapshots mit btrfs unter Qubes" (1)

  1. Kreuvf said:

    Ich wusste, dass ich die Feed nicht umsonst noch beibehalten habe. ^.^ Willkommen zurück, Toshiki :D

Leave a comment for: "Automatische Snapshots mit btrfs unter Qubes"