Snapper...Timeshift-Alternative?

  • Suse und Garuda-Linux setzen Snapper statt Timeshift ein. Zeit es einmal auszuprobieren (unter Archlinux). Sorry, wenn es etwas länger geworden ist.


    Im ersten Schritt die folgenden Pakete installieren:


    Arch-Repo

    snapper

    grub-btrfs

    snap-pac


    AUR

    btrfs-assistant

    snapper-support

    snapper-tools


    Snapper lässt sich im Terminal bedienen, es gibt aber auch eine GUI. Ähnlich wie bei Timeshift lassen sich auch hier zeitgesteuerte Sicherungen erstellen. Oder automatische Snapshots bei der Installation von Programmen oder beim Systemstart.


    Dann mal einen ultimativen Crash-Test durchführen. ;)


    Zuerst einen initialen Snapshot mit dem Namen "Snapshot vor dem Crash" erstellt.


    Anschließend lösche ich die gesamte Systemkonfiguration in /etc.

    Code
    [root@archlinux]# rm -rf /etc
    
    [root@archlinux]# ls -l /etc
    ls: Zugriff auf '/etc' nicht möglich: Datei oder Verzeichnis nicht gefunden

    Neustart! Wie zu erwarten...es geht nichts mehr. Das Grub-Menü ist noch vorhanden, bis zum Login-Manager komme ich aber nicht mehr.


    Also noch einmal Neustart und im Grub-Menü "Arch Linux snapshots" aufrufen.


    Dort befindet sich er zuvor angelegte Snapshot "Snapshot vor dem Crash"



    Der Snapshot wird gestartet. Direkt nach dem Login wird automatisch gefragt, ob der gerade ausgewählte Snapshot zukünftig als Standard gesetzt werden soll.


    Hat geklappt und nach einem erneuten Start funktioniert alles wie gewohnt. Das Verzeichnis /etc ist wieder vorhanden.


    Auf den ersten Blick macht es schon mal einen guten Eindruck. :thumbup:


    Mit Snapper lassen sich auch einzelne Dateien aus einem Snapshot wiederherstellen - statt eines kompletten Rollbacks. Falls Interesse besteht, kann ich auch noch etwas dazu schreiben.

  • OK - Schade, aber snapper funktioniert anscheinend nur unter BTRFS.
    Kann ich für meine Nvme SSD's nicht verwenden, die vertragen sich nicht mit Btrfs und werden durch Btrfs unbrauchbar und defekt - liegt wohl am Alter des MB. Aber ich lasse alles so, komme so auch damit zurecht.

    -----------------------------------------------------------------------------

    arch-linux-beschreibung_60.png und     sind meine Favoriten

    CPU: AMD FX-8350 (8) @ 4 GHz - GPU: AMD Lexa Pro Radeon

    Arch - KDE | Manjaro KDE | Manjaro Cinnamon | Kubuntu

    Mit gut gestellten Fragen kommt man schneller ans Ziel !

    -----------------------------------------------------------------------------

  • OK - Schade, aber snapper funktioniert anscheinend nur unter BTRFS.
    Kann ich für meine Nvme SSD's nicht verwenden, die vertragen sich nicht mit Btrfs und werden durch Btrfs unbrauchbar und defekt - liegt wohl am Alter des MB. Aber ich lasse alles so, komme so auch damit zurecht.

    Wenn alles wie gewünscht funktioniert, dann solltest du auch nichts verändern. ;)


    Hatte vorab in der Forensuche nach Snapper geschaut und fand recht wenig. Also habe ich mir gedacht, ich könnte ein bisschen was dazu schreiben.

  • Da ich Snapper seit einem Monat im produktiven Einsatz habe, hier ein kurzes Update (ist doch etwas länger ausgefallen als ursprünglich gedacht ;) )


    Anders als im Eingangspost beschrieben habe ich nur drei Pakete installiert

    • snapper (das eigentliche Programm)
    • grub-btrfs (sorgt für die Einträge der Snapshots im Grub-Bootloader)
    • snap-pac (erstellt automatische Snapshots bei De-/Installation von Programmen und Systemupdates

    Auf eine GUI habe ich verzichtet, da diese auf das BTRFS-Layout von Suse ausgerichtet ist und bei Abweichungen davon nur eingeschränkt funktioniert. Ist aber auch nicht unbedingt erforderlich, da die Bedienung über das Terminal doch recht simpel ist.


    Mit sudo snapper list werden die vorhandenen Snapshots aufgelistet. Der "Snapshot" mit der #0 stellt immer den aktuellen Stand des Sytems dar.


    timeline = automatische zeitgesteuerte Snapshots

    number = Snapshots vor/nach einer Installation, Update...

    Mit sudo snapper create --description "Das wird ein Snaphot" lassen sich auch manuelle Snapshots erstellen.


    Wie viele Snapshots aufbewahrt werden sollen, ist in der /etc/snapper/configs/root hinterlegt. Diese kann mit einem Editor bearbeitet werden oder man nutzt die Snapper-Tools.


    sudo snapper get-config

    In dieser Konfiguration werden 7 stündliche Snapshots und 10 tägliche aufbewahrt. Mit sudo snapper set-config TIMELINE_LIMIT_DAILY=7 lassen sich die Werte anpassen.


    Jetzt geht es ans Eingemachte, es gibt ein Problem und es muss zurückgerollt werden.

    Um beim obigen Beispiel zu bleiben: Beim Snapshot 278 war alles noch in Ordnung, danach ist irgendwas schiefgelaufen.


    Es muss auf die Nummer 278 zurückgerollt werden. Mit sudo snapper undochange 278..0 wird der Snapshot 278 auf das aktuelle System 0 übertragen. Alle Änderungen im System, die nach dem Snapshot #278 gemacht wurden, sind damit weg.


    Vielleicht soll aber nicht das gesamte System zurückgerollt werden, sondern nur eine bestimmte Änderung. Mit sudo snapper status 278..0 lassen sich die Veränderungen anzeigen.

    Es gab unter anderem eine Änderung in der /etc/sudoers (c = change). Um zu sehen, was verändert wurde, gibt es den Befehl diff.


    sudo snapper diff 278..0 /etc/sudoers

    Diff
    --- /.snapshots/278/snapshot/etc/sudoers    2022-09-18 06:24:23.238752494 +0200
    +++ /etc/sudoers    2022-09-20 16:48:22.989685117 +0200
    @@ -97,4 +97,4 @@
     
     ## Read drop-in files from /etc/sudoers.d
     @includedir /etc/sudoers.d
    -%wheel ALL=(ALL:ALL) ALL,NOPASSWD:/usr/bin/snapper list
    +%wheel ALL=(ALL:ALL) ALL

    Jeder, der schon mal mit Github u. ä. zu tun hatte, kennt diese Darstellung. In diesem Fall habe ich der Gruppe "wheel" das Recht eingeräumt, "snapper list" ohne Passwort zu benutzen.


    Mit sudo snapper undochange 278..0 /etc/sudoers lässt sich diese Änderung nun rückgängig machen.


    Wenn aber gar nichts mehr geht und das System nicht mehr starten möchte, dann kommt das Paket grub-btrfs ins Spiel. Das sorgt dafür, dass es von jedem vorhandenen Snapshot einen bootfähigen Eintrag in Grub gibt, von dem aus das System gestartet werden kann.




    Das war's... :)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!