Gibt es eine Deep Freeze-ähnliche Anwendung für Ubuntu?

10

Ich würde gerne wissen, ob es eine Alternative zu Deep Freeze für Linux gibt, die sich noch in der Entwicklung befindet, da ich einige Dinge im Internet gelesen habe und es so aussieht, als hätte dieselbe Firma, die Deep Freeze entwickelt hat, eine Linux-Version davon, aber die Projekt wurde eingestellt.

Zignd
quelle
Warum willst du das? Erlauben Sie Nicht-Root-Benutzern nur nicht, Systemdateien zu ändern.
David Foerster
@ DavidFoerster Ich habe gerade die Frage bearbeitet, um Ihren Kommentar zu beantworten.
Zignd
Hallo, Sie können diese Alternative versuchen sourceforge.net/projects/dafturnofris-id
2
Normale (sofort einsatzbereite) "Gast" -Nutzer in (kürzlich?) Ubuntu werden im laufenden Betrieb erstellt, haben ihr Zuhause in /tmpund werden nach dem Abmelden bereinigt ... ist das nicht ausreichend?
Rmano

Antworten:

8

OFRIS ist eine Open Source-Anwendung, die Ihr Linux einfrieren kann. Es ist wie Deep Freeze unter Microsoft Windows.

Für Ubuntu-Versionen 9.10, 10.04 und 10.10. Um OFRIS zu installieren, drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus:

sudo add-apt-repository ppa:tldm217/tahutek.net -y
sudo apt-get update && sudo apt-get install ofris-en -y

Für Ubuntu-Versionen 11.04, 11.10, 12.04 und 13.04. Um OFRIS zu installieren, drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus:

[COPY-Dateiformat]

if [ $(uname -m) == "x86_64" ]; then deb="http://goo.gl/DleLl"; else deb="http://goo.gl/V94Qs"; fi && wget -q $deb -O ofris.deb && sudo dpkg -i ofris.deb && rm ofris.deb

Das Bild unten zeigt OFRIS am 13.04

Geben Sie hier die Bildbeschreibung ein

Quelle: XGeek

Mitch
quelle
Ich habe dies in 15.10 installiert und dann Freeze durch Drücken von 3 angewendet. Es hat bestätigt, dass sich das System im eingefrorenen Modus befindet. Dann habe ich neu gestartet, ich habe eine Datei / var / tmp / myname mit Wert erstellt, dann habe ich wieder neu gestartet, aber die Datei ist immer noch da. Wie ist das Gefrieren?
Was meinst du genau? Außerdem muss ich überprüfen, ob dies am 15.10 funktioniert. Beim Einfrieren des Systems wird alles so zurückgesetzt, wie es vor dem Einfrieren war. Lass es mich wissen, bitte.
Mitch
2

Warnung: Ich habe diese Lösung implementiert und sie funktioniert, aber die Zusammenführungszeiten, um zum Snapshot zurückzukehren, können dazu führen, dass der Startvorgang lange dauert, wenn beim letzten Start große Änderungen am System vorgenommen wurden. Während dieser Wartezeit kann es für Benutzer so aussehen, als ob das System hängt!

Beachten Sie auch, dass jeder, der über ausreichende Kenntnisse zum Mounten des Snapshots verfügt, Änderungen am Status "Eingefroren" vornehmen kann. Ich habe diese Möglichkeit genutzt, um "eingefrorene" Systeme zu aktualisieren, aber auch dies kann die Zeit verlängern, die zum Zusammenführen (Zurücksetzen) des Snapshots benötigt wird!


LVM-Snapshots + cron + script = "eingefroren"

Ich habe vor kurzem angefangen, mich mit LVM zu beschäftigen, und mir ist aufgefallen, dass man mit LVM und seinen Snapshot-Funktionen auf einem Computer einen "eingefrorenen" Zustand erzeugen kann. Natürlich erfordert diese Methode ein System, das mit LVM konfiguriert ist (oder zumindest LVM auf den Partitionen, die eingefroren werden sollen).

Zusammenfassung:

  • Installieren Sie das System auf LVM-Partitionen und reservieren Sie auf einer PV genügend Speicherplatz für einen Snapshot
  • Konfigurieren Sie das System so, wie Sie es möchten.
  • Erstellen Sie einen Cron-Job, der beim Booten als Root ausgeführt wird, um den Snapshot zusammenzuführen, und erstellen Sie einen neuen Snapshot, um den zusammengeführten zu ersetzen
  • Alle aufeinanderfolgenden Neustarts werden auf den Snapshot zurückgesetzt. Alle erstellten Snapshots werden vom System in dem Zustand erstellt, in dem Sie sie erstellt haben.
  • Als zusätzlichen Bonus kann der Snapshot gemountet und geändert werden (vorausgesetzt, Sie haben Root-Rechte) und der Status "eingefroren" kann bei Bedarf aktualisiert werden.

Proof of Concept: Frieren Sie alles außer einer Partition aus einer Neuinstallation ein

Die Installation:

  • Booten Sie von einer Live-Ubuntu-Disc / USB und wählen Sie die Option "Ubuntu ohne Installation testen". Dies ist wichtig für die manuelle Konfiguration von Partitionen mit LVM
  • Wenn Ubuntu eine Partition lädt, partitionieren Sie Ihre Festplatte mit dem Tool Ihrer Wahl, sodass eine Partition den gesamten Speicherplatz des Laufwerks einnimmt. Hier ist, womit ich arbeite:
    • /dev/sda (Größe 1T)
      • /dev/sda1 (Größe 1T)
  • Als nächstes in einem Terminal LVM einrichten /dev/sda1. Ich werde den größten Teil des Systems auf eine einzelne Partition stellen, aber das müssten Sie nicht.
    • sudo pvcreate /dev/sda1
    • sudo vgcreate ubuntu-vg /dev/sda1
    • sudo lvcreate -n swap -L 1G ubuntu-vg
    • sudo lvcreate -n unfrozen -L 10G ubuntu-vg
    • sudo lvcreate -n root -l +50%free ubuntu-vg
  • Wenn Sie nun ausführen, sudo vgsgefolgt von sudo lvs, sollten Sie in der Lage sein zu sehen, dass die Menge an freiem Speicherplatz in der Datenträgergruppe "ubuntu-vg" (VFree unter vgs output) gleich der Menge an Speicherplatz ist, die vom Stamm des logischen Datenträgers "root" belegt wird "(LSize unter lvs Ausgabe). In meinem Fall habe ich 506,44 g frei in Ubuntu-vg und meine Root-Partition ist 506,44 g groß. Wenn der in der Datenträgergruppe verbleibende freie Speicherplatz der Größe der Partition entspricht, die ich einfrieren möchte, sollte ich in der Lage sein, die gesamte Partition zu löschen und sie dennoch mit einem Neustart wiederherzustellen. Lassen Sie den Rest des freien Speicherplatzes in Ubuntu-VG vorerst ungenutzt. Wir werden es später verwenden.
  • Installieren Sie nun Ubuntu mithilfe der manuellen Partitionierung image.png
  • Wenn die Installation abgeschlossen ist, starten Sie das neu installierte System neu.
  • Konfigurieren Sie das neue System nach dem Start so, dass es genau so ist, wie Sie es möchten, wenn der Computer jedes Mal gestartet wird.
    • Wenn Sie nicht versehentlich Änderungen am Snapshot vornehmen und nicht möchten, dass die Snapshot-Partition in der Menüleiste angezeigt wird ...
      • mkdir /steady
      • Bearbeiten Sie /etc/fstabdurch Hinzufügen (dies ist alles eine Zeile) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1als letzte Zeile der Datei
    • Da Dinge wie Updates bei jedem Neustart weggeblasen werden, möchten Sie sie möglicherweise deaktivieren.
    • Wenn Sie eine nicht gefrorene Partition wie meine bei / unfrozen haben, vergessen Sie nicht, sie Benutzern zugänglich zu machen, die Zugriff darauf benötigen
  • Wenn Sie das System genau so konfiguriert haben, wie Sie es möchten, erstellen Sie das folgende Skript (Sie benötigen Root-Berechtigungen) und speichern Sie es wie /root/steadystate.shbei Ihrem bevorzugten Editor. Beachten Sie, dass Sie den Namen der Datenträgergruppe beim Einrichten von LVM auch im folgenden Skript aktualisieren müssen, wenn Sie ihn geändert haben.
    #!/bin/bash
    LOG=/dev/kmsg

    # wait for merge in progress
    echo -n "Reverting to snapshot if present... " | tee -a $LOG
    merging=1
    while [ "$merging" == "1" ];
    do
        /usr/sbin/service lightdm stop #prevent the auto-login/login screen from loading
        [ "$(sudo lvs -a | grep steadystate)" == "" ] && merging=0
        sleep 1
    done

    # create snapshot
    echo -n "Creating new snapshot... " | tee -a $LOG
    /sbin/lvcreate -s -n steadystate -l +100%free /dev/ubuntu-vg/root

    # make sure root comes online before trying to merge
    while [ ! -e /dev/mapper/ubuntu--vg-root];
    do
        sleep .5;
    done
    echo -n "Scheduling reset to snapshot... " | tee -a $LOG
    /sbin/lvconvert --merge /dev/ubuntu-vg/steadystate

    echo -n "Starting lightdm... " | tee -a $LOG
    /usr/sbin/service lightdm start
  • Zum Schluss ausführen sudo crontab -e, einen Editor auswählen und @reboot /bin/bash /root/steadystate.sham Ende der Datei einfügen. Speichern und schließen ( Ctrl+ X; Yzum Speichern antworten )
  • Starten Sie neu, und Sie sollten ein System haben, das eingefroren ist, mit Ausnahme der Partition, die bei / unfrozen bereitgestellt wird

Dies funktioniert, weil der Snapshot beim Booten erstellt wird und obwohl wir den Befehl zum Zusammenführen des Snapshots direkt danach übergeben, kann der Snapshot nicht zusammengeführt werden, solange das logische Volume für root aktiv ist. Daher wird die Zusammenführungsaktion auf das nächste Mal verschoben, wenn / dev / ubuntu-vg / root beim nächsten Neustart aktiviert wird. Diese Aktion wird auch ausgelöst, wenn das System von einem Live-USB-Gerät gestartet wird.

Nur zum Spaß ging ich nach einem Neustart rein und lief, sudo apt remove --purge firefox* libreoffice-* unity*was ich normalerweise nicht empfehlen würde, da es einige nützliche Programme entfernt und das System in einen möglicherweise weniger wünschenswerten Zustand versetzt! gebrochen.png Das System würde nicht einmal ordnungsgemäß über die GUI heruntergefahren. Wie behebt man das? Neustart! rebooted.png Nach dem Neustart war alles wieder in Ordnung. Firefox, LibreOffice und Unity waren alle wieder da, wo sie hingehörten.

Ich habe auch versucht, Linux * zu entfernen. Dies ließ den Computer nicht booten, aber das einfache Booten von einer Live-Ubuntu-Festplatte schien die Zusammenführung zu bewirken. Durch einen erneuten Neustart wurde das System im "eingefrorenen" Zustand belassen

Wenn Sie Änderungen vornehmen möchten, können Sie den Snapshot mit rw-Berechtigungen (erneut) bereitstellen, ihn dann chrooten und alle Änderungen vornehmen, die dauerhaft bleiben sollen. Dies ist nicht fehlerfrei, aber es ist ein Proof of Concept.

b_laoshi
quelle
1

Standardmäßig verweigern Ubuntu und die meisten anderen Unices regulären Benutzern (Studenten, Gästen) den Schreibzugriff auf Systemdateien. Nur ein Administrator mit der entsprechenden Berechtigung (Benutzername und Schlüssel) kann Software installieren, Systemeinstellungen ändern oder Partitionen löschen.

Normale Benutzer können standardmäßig nur in ihr Ausgangsverzeichnis und das temporäre Verzeichnis des Systems schreiben. Eine übliche Methode zur Behandlung einmaliger Gastsitzungen besteht darin, das Ausgangsverzeichnis im temporären Verzeichnis und das temporäre Verzeichnis im Hauptspeicher abzulegen.

Wenn Sie besonders sicher gehen möchten, mounten Sie die Systempartition schreibgeschützt und legen Sie eine aufs- Partition darüber, die Änderungen im Hauptspeicher speichert.

David Foerster
quelle
1

fsprotect ist eine Reihe von Skripten, die vorhandene Dateisysteme schützen. fsprotect eignet sich hervorragend für öffentliche Computer wie Bibliotheken, Internetcafés usw.

Mit aufs packen sie ein tmpfs-Dateisystem, wodurch Änderungen in das tmpfs-Dateisystem geschrieben werden müssen.

Das Root-Dateisystem ist durch ein initramfs-Skript geschützt. Andere Dateisysteme sind durch ein Init-Skript geschützt. Alle geschützten Dateisysteme sind schreibgeschützt und gewährleisten ihre Unveränderlichkeit auch beim Ausschalten.

Um fsprotect in allen derzeit unterstützten Versionen von Ubuntu zu installieren, öffnen Sie das Terminal und geben Sie Folgendes ein:

sudo apt-get install fsprotect

Die Vorteile der Verwendung von fsprotect sind:

  • Dateisysteme sind geschützt und es werden niemals Änderungen auf die Festplatte geschrieben.
  • Geschützte Dateisysteme sind schreibgeschützt gemountet. Dies bedeutet, dass sie nicht beschädigt werden, wenn der Computer nicht ordnungsgemäß ausgeschaltet wird.
  • Es ist sehr einfach zu bedienen.
  • In einigen Fällen beschleunigt dies den Zugriff auf das Dateisystem.

Die Nachteile der Verwendung von fsprotect sind:

  • Dateisystemänderungen dürfen nicht mehr als eine vordefinierte Grenze in Bytes (von Ihnen festgelegt) sein.
  • Da tmpfs häufig verwendet wird, müssen Sie über ausreichend Swap-Speicher verfügen.
Karel
quelle
Die Installation schlägt unter Ubuntu 16.04.2 fehl. Problem ist ein schlechter Verweis touchin einem Initram-Skript. Es zeigt /usr/bin/toucheher auf als /bin/touch. Dies kann zum Funktionieren gezwungen werden, aber selbst wenn es installiert ist, funktioniert das Netzwerk nicht mehr.
b_laoshi
Das Netzwerk funktioniert möglicherweise nicht mehr, weil Sie einen fehlerhaften Kernel oder einen Kernel ohne Header-Dateien verwenden. Wenn der Computer neu gestartet wird, warten Sie, bis der Begrüßungsbildschirm des Herstellers verschwindet, und drücken Sie dann die Umschalttaste, um die GRUB-Startoptionen anzuzeigen. Wählen Sie im lila GRUB-Bildschirm Erweiterte Optionen für Ubuntu und drücken Sie die Eingabetaste. Ein neuer lila Bildschirm mit einer Liste der Kernel wird angezeigt. Wählen Sie einen anderen Kernel und drücken Sie die Eingabetaste.
Karel
Es ist praktisch eine Neuinstallation mit allen Updates. Ich habe den alten Kernel ausprobiert und zuerst mit dem Netzwerk gebootet, aber dann wurde mir klar, dass fsprotect nicht im alten Kernel gebündelt war. Ich habe alle Kernel aktualisiert und jetzt habe ich kein Netzwerk mehr, wenn ich von einem der Kernel aus starte.
b_laoshi
1
Wenn Sie die Option fsprotect aus grub entfernen und initramfs aktualisieren, wird fsprotect natürlich deaktiviert, und das Netzwerk funktioniert wieder. Offensichtlich ist es etwas in fsprotect, das die Vernetzung bricht.
b_laoshi