Btrfs Snapshots

Mit Btrfs lassen sich Snapshots erstellen was sowas wie ein Backup auf der Selben Platte/Partition darstellt. Wenn man unter Arch Linux Snapshots erstellen möchte muss man beachten dass in btrfs es sich um Subvolumes handelt. Arch Wiki Btrfs Snapshots.

Snapshot erstellen:

btrfs subvolume snapshot <quelle> <ziel>

Info: Subvolumes innerhalb von eines Subvolumes bleiben leer. Z.B. wenn man von / ein Snapshot erstellt und /home ist ein Subvolume, bleibt /home in dem Snapshot leer.

Snapshots vom Root Verzeichniss

Wir gehen mal von einem Normal installiertem Arch Linux ohne Subvolumes aus.
Um z.B. eins im / Verzeichniss zu erstellen gibt man:

btrfs subvolume snapshot / /heute_snapshot

Nun hat btrfs ein Snapshot vom Verzeichniss / angelegt.

Beim wiederherstellen von / ist die besonderheit das es sich um ein Laufendes System handelt, und es nicht im Laufenden Betrieb wiederherstellen lässt. Also bootet man ein Live System.

reboot
  • Live CD einlegen.

Man kann Subvolumes mounten mit:

mount -o subvol=heute_snapshot /dev/sda1 /mnt

Um ein Snapshot, dass das / Verzeichniss enthält, wiederherzustellen:

nano /mnt/etc/fstab

Man fügt subvol=<pfad> in die mount Optionen hinzu:

/dev/sda1       /       btrfs      subvol=heute_snapshot,ssd  0 0

Damit man auch vom Snapshot Booten kann, muss man den Bootloader neu schreiben:

arch-chroot /mnt
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda
exit

Nun kann man vom Snapshot booten.

umount /mnt
reboot

Man muss beachten dass das Snapshot kein Read-only Subvolume ist. Man kann dann am besten von dem ro Snapshot einen weiteren Snapshot erstellen.

Es ist allerdings noch das alte system vorhanden, also sollte man von anfang an ein Subvolume vom Root Verzeichniss machen, um es später wieder löschen oder zu archivieren mit z.B. send und receive.

Zuletzt geändert: 2023-10-28 11:58:12 +0200 CEST: remove import status