Kali Linux 2022.1

Kali »Unkaputtbar« führt Btrfs-Snapshots ein

Kali Linux ist eine auf Penetrationstests ausgelegte Distribution auf Debian-Basis, die von der Firma Offensive Security herausgegeben wird. Neben mehreren Aktualisierungen pro Jahr führen die Entwickler immer wieder neue Funktionen ein, wie etwa Kaboxer, den Kali Applications Boxer, der schwierig zu paketierende Anwendungen in einen Container steckt und diesen dann über die Paketverwaltung einbindet.

Gerade haben die Entwickler eine neue Funktion mit dem sprechenden Namen Kali »Unkaputtbar« vorgestellt. Dabei sind die von Btrfs bekannten Snapshots kombiniert mit dem bei OpenSUSE entwickelten Snapshot-Manager Snapper. Damit lassen sich durch ein Update oder eine Konfigurationänderung unbrauchbar gemachte Installationen schnell per System-Snapshot auf einen funktionierenden Stand zurückfahren.

Btrfs Snapshots mit Snapper unter Kali Linux bieten folgende Vorteile:

  • automatische System Snapshots bei Aktualisierungen, Installationen oder Entfernungen per APT
  • automatische Snapshots bei jedem Neustart
  • automatisch erstelltes Kali Linux-spezifisches Btrfs-Subvolume-Layout
  • neues Boot-Menü, um angelegte Snapshots zu booten
  • Möglichkeit, den Dateiinhalt von Snapshots zu durchsuchen und Dateien zu kopieren
  • Durchführung von Diffs zwischen Snapshots und Wiederherstellung einzelner Dateien

Ab Kali Linux 2022.1

Kali »Unkaputtbar« steht für Bestandsanwender mit Btrfs als Dateisystem und Neuinstallationen ab Kali Linux 2022.1 zur Verfügung. Bei der Installation muss das Standard-Dateisystem Ext4 gegen Btrfs ausgetauscht werden. Im fertigen System sind dann noch einige Pakete zu installieren und Konfigurationen zu setzen:

# Set a secure root password or you'll struggle to log into a recovery shell 
sudo passwd

# Install some essential tools
sudo apt update && sudo apt install btrfs-progs snapper snapper-gui grub-btrfs

# Create the snapper configuration for the root filesystem "/"
sudo cp /etc/snapper/config-templates/default /etc/snapper/configs/root
sudo sed -i 's/^SNAPPER_CONFIGS=\"\"/SNAPPER_CONFIGS=\"root\"/' /etc/default/snapper

# Prevent "updatedb" from indexing the snapshots, which would slow down the system
sudo sed -i '/# PRUNENAMES=/ a PRUNENAMES = ".snapshots"' /etc/updatedb.conf

# Reconfigure lightdm to allow booting into readn-only snapshots
sudo sed -i 's/^#user-authority-in-system-dir=false/user-authority-in-system-dir=true/' /etc/lightdm/lightdm.conf

# Reboot for the changes to take effect
sudo reboot

Mächtige Snapper-GUI

Der anschließende Neustart erstellt den ersten automatisierten Snapshot, den ein erneuter Reboot in Grub zum Booten anzeigt. Kali erstellt standardmäßig Snapshots des Root-Verzeichnisses, um System-Rollbacks zu ermöglichen. Snapshots werden automatisch während APT-Operationen, in bestimmten Zeitintervallen und bei jedem Systemstart erstellt.

[metaslider id=27718 cssclass=””]

Dieses Verhalten lässt sich per Snapper-GUI steuern. So lassen sich zusätzliche Snapshots von /home oder anderen einzelnen Verzeichnissen anlegen, manuelle Snapshots erstellen oder nicht gewünschte automatische Snapshots abwählen, wie man das von openSUSE kennt. Ein aus Grub gewählter Snapshot ist nach dem Hochfahren zunächst nur lesbar (ro) und muss vor der Verwendung schreibbar (rw) eingehängt werden.

Teilt den Beitrag, falls ihr mögt

15 Kommentare

  1. Kann ich alles verstehen und habe auch schon über solche Funktionen nachgedacht.
    Letztlich erstelle ich aber immer noch meine manuellen Backups und synce zusätzlich Daten auf ein NAS was nur im eigenen Netz läuft.
    Konfig Dateien sichere ich bei Bedarf.
    Hier möchte ich den Tag nicht vor dem Abend loben und sage toi, toi, toi. Bisher war eine Neuinstallation unter Debian stable sehr selten notwendig und ich spreche aus mehr wie 21 Jahren Linux Erfahrung mit min. 15 Jahren Debian.
    Ich verstehe aber durchaus die Beweggründe und ich bin mir sicher das es Konstellationen gibt, bei denen ausgefeiltere Mechanismen der Datensicherung erforderlich sind.

    0
  2. Ich Verstehe immer diesen Aufriss wegen BTRFS nicht in einem Szenario wo hoch Sensible Daten Verarbeitet werden mag so etwas Sinn machen aber für Privat Personen ?
    Habe seit über 10 Jahren mit Linux zu tun und nicht so einen grossen ärger gehabt klar geht auch mal ein System Kaputt aber doch eher Selten.
    Und wenn wieder erwarten mal sich ein System zerlegt ist das in 90-120 Minuten alles wieder hergestellt bzw Neu aufgesetzt.

    Wichtige Sachen immer auf einer Externen Platte packen kann auch im Rechner Verbaut sein und das OS und die Programme auf einer eigenen Platte habe ich immer so gemacht und nie Ärger in 10 Jahren habe ich es 3x erlebt das sich ein OS zerlegt hat.
    Ich nutze den Rechner wenn ich damit Arbeite, Hochfahren Updaten Arbeiten Runter fahren fertig, da habe ich nicht noch Lust jedes mal einen Snapshot zu machen oder darauf zu warten.
    Da kann ich meine Zeit Sinnvoller verbrennen mit anderen Sachen und die male wo sich ein OS zerlegt hat sind auch schon Ewigkeiten her das war noch zu Zeiten von Ubuntu 12.04 und früher.
    Ach und ja einen Snapshot einspielen geht schneller und ist bequemer aber wenn dann kann man das auch mal neu aufsetzen und hat ein Entschlacktes Schlankes System ist ja jetzt nicht so das man jede Woche sein System neu aufsetzt, und die 2 Stunden die das dauert kann man immer mal irgendwo unterbringen aus diesem Grunde habe ich auch 2 bzw 3 Rechner falls mal was ist das man noch ein laufendes System hat was aber bisher nur sehr selten Nötig war.

    4
    1. Es gibt durchaus Distributionen, die derart eng “auf Kante” genäht sind, dass man so ein Werkzeug als unbedingt erforderlich betrachte.
      Ich bevorzuge Lösungen die ohne so etwas auskommen. Und ich habe auch ohne so etwas die letzten 20 Jahre Linux überlebt.

      1
    2. Auch außerhalb der Archivierung von hochsensibler Daten ist das ein praktisches Feature. Gibt nicht nur Leute, die ihre Distro out-of-the box produktiv benutzen und außer dem Wallpaper nichts mehr einstellen.

      Da hat man mit der Zeit einfach so viele Anpassungen in den Konfigurationsdateien, dass man den Kram nicht einfach so verlieren möchte. Klar kann man sein /etc und die Paketliste statisch irgendwohin sichern. Aber der Aufwand der Neuinstallation ist in so einem Fall definitiv >= 90-120 min. Irgendwas vergisst man doch immer. Es sei denn, man hat Routine dadurch entwickelt, weil man das öfter macht. Dann hat man als User aber ein ganz anderes Problem, lel. 🙂

      Snapper+btrfs ist definitiv ein praktisches Feature, dass vor allen Dingen auch gut beim Erstellen von Bugreports dienlich sein kann. Bspw. eben Paketupdate installieren, bug auslösen, dokumentieren und einsenden – und wieder zurück ins laufende System rollen.

      2
    3. Hast Du Btrfs schon mal verwendet? Auf die Snapshots „wartest“ Du nicht; und die Funktionen gehen ja deutlich darüber hinaus (z. B. Reparieren (oder wenigstens Feststellen) von Bitrot … Und es bringt auch einige eigene Probleme mit: unbemerkt volles System, umständlich zu tauschende fehlerhafte Platte … 😉

      1
  3. Ich kann nur von den Erfahrungen mit Opensuse berichten. Die Snapshots sind winzig, da sie zu 99,9% nur aus Hardlinks bestehen. Wenn meine Systempartition vollläuft – passiert durchaus mal – ist der Bösewicht immer irgendjemand anders. Irgendwann war es mal eine dicke VM, die aus Versehen dort abgelegt worden war.

    1
    1. Vielleicht solltest du die Frequenz heruntersetzen oder auf Snapshots bei jedem Reboot verzichten? Ich denke, wichtig sind die, die von APT getriggert werden und manuell erstellte nach Config-Änderungen. Man muss da für sich einen Mittelweg finden, wenn der Plattenplatz begrenzt ist.

      0
        1. Was ist denn alles im Snapshot? Auch @home?

          In der Standardeinstellung macht Manjaro jeden Tag einen snapshot, zumindest glaube ich, es war bei mir so.

          In der Timeshift GUI kannst du das abstellen. Dann wird nur bei einem Update von pacman oder pamac ein snapshot gemacht.

          0
          1. Die erstellten Snapshots wachsen mit der Zeit an, also werden größer, je nachdem wieviel Dateien danach mit der Zeit geändert/erstellt wurden (Timeshift zeigt das auch an). /home, /var/cache, /tmp usw. sollte man deswegen nicht unbedingt mit snapshotten. Generell sollte man eh auf sein Plattenplatz unter btrfs achten. Das Dateisystem benötigt reichlich Speicher. Unter 1 TB würde ich lieber EXT4 nutzen, ist auch eh wesentlich performanter als btrfs und man kann seine Snapshots einfacher auf andere Datenträger auslagern.

            0
            1. Auf meinem Hauptsystem nutze ich Timeshift mit Ext4 zur täglichen Sicherung. Auf anderen Systemen immer mal wieder Btrfs mit Snapper/Snapper-GUI. Mir gefällt in dem Fall die GUI gut, weil die Verwaltung der Snapshots in der Konsole doch mühselig sein kann, wenn man es nicht jeden Tag macht.

              0

Kommentar hinterlassen