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
.