Gibt es einen "Wiederherstellungspunkt" in Linux (Debian / Ubuntu) wie Windows?


17

Ich arbeite direkt in einer Ubuntu Virtual Machine (VM). Einige Updates (wie der Kernel) waren im Update Manager verfügbar.

Wenn ich keine VM verwenden würde, würde ich sie nicht aktualisieren, da die Gefahr besteht, dass etwas beschädigt wird. Da es sich um eine VM handelt, können Sie einen Snapshot erstellen oder eine Appliance exportieren und wiederherstellen, wenn ein Fehler auftritt.

Angenommen, ich verwende keine VM mit einer Debian / Ubuntu-Installation. Gibt es einen Installations- / Wiederherstellungsansatz, der nicht von einer VM-Konfiguration abhängt, um Ihr System genau vor einem Upgrade wiederherzustellen (wie ein "Wiederherstellungspunkt" in Windows) und der einfach wiederherzustellen ist wie eine VM-Appliance?

(Ich suche nicht nach "Geisterbildern" oder ähnlichem (Norton Ghost, Clonezilla usw.), sondern nach etwas, das in das Linux-System eingebaut ist.)


3
Ich weiß, dass dies kein Thema ist, daher füge ich es als Kommentar hinzu, aber OpenSolaris kann einen Snapshot des gesamten ZFS-Dateisystems erstellen und später wiederherstellen. Aufgrund der Deduplizierung wird auch nicht viel Speicherplatz benötigt. Tatsächlich besteht die Standardmethode für größere Upgrades darin, einen neuen FS-Snapshot zu erstellen und die Upgrades darauf zu installieren. Wenn es funktioniert, können Sie das alte löschen. Wenn nicht, können Sie einfach zu dem zurückkehren, der funktioniert hat.
AndrejaKo

3
@AndrejaKo: +1 Es ist jedoch ein "Klon" (ein beschreibbarer Schnappschuss; normale Schnappschüsse sind schreibgeschützt), und die Tatsache, dass nicht viel Speicherplatz benötigt wird, hat nichts mit Deduplizierung zu tun, sondern mit der Art und Weise, wie Schnappschüsse und Klone behandelt werden in COW-Dateisystemen. Das heißt, Sie erhalten die gleiche Speicherplatzersparnis auch für nicht dedupierte Pools.
Knweiss

@knweiss Ja, das stimmt. Ich habe es gerade nachgeschlagen!
AndrejaKo

Antworten:


15

Es gibt keine ähnliche Funktion in einer mir bekannten Linux-Distribution. Es gibt mehrere Gründe, warum es viel weniger nützlich wäre als für Windows.

  • In erster Linie sind Linux-Distributionen weitaus ernster als Microsoft, wenn es darum geht, stabile Releases nur zur Behebung wichtiger Fehler und mit minimalen Änderungen zu aktualisieren. Beispielsweise können Sie bei Ubuntu und Debian festlegen, dass nur Sicherheitsupdates ( -security) oder nur Sicherheitsupdates und wichtige Fehlerkorrekturen ( -updates) empfangen werden .

  • Kernel-Upgrades sind die riskantesten, da eine scheinbar vorteilhafte Änderung bei einer bestimmten Hardwarekonfiguration Probleme verursachen kann. Aus diesem Grund können in den meisten Distributionen mehrere Kernelversionen gleichzeitig installiert werden. Zum Zeitpunkt der Erstellung dieses Dokuments sind in Ubuntu 10.04 beispielsweise drei Kernel-Versionen verfügbar: 2.6.32.21.22von der ursprünglichen Version, 2.6.32.22.23mit Sicherheitsupdates und auch 2.6.32.23.24mit nicht sicherheitsrelevanten Updates. Wenn das Release ... 24 ein Problem auf Ihrem Computer verursacht, können Sie unter ... 23 einen Neustart durchführen (und das Release ... 24 sogar als nicht installierbar markieren, zumindest wenn Sie aptitude verwenden).

  • Es gibt keine Registrierung: Alle Konfigurationsdaten befinden sich in Dateien (in der /etcHierarchie), die leicht einzeln wiederhergestellt werden können, wenn etwas schief geht. Selbst dann wirken sich Aktualisierungen der stabilen Version selten auf Dateien unter aus /etc.

  • Wenn Sie Pakete von einer anderen Quelle als einer stabilen Version installieren, möchten Sie möglicherweise Kopien älterer Paketversionen und Sicherungen Ihrer Konfigurationsdateien aufbewahren. Hier einige Hinweise dazu in Debian und Ubuntu.

    • Heruntergeladene Pakete bleiben erhalten /var/cache/apt/archives. Wenn Sie über ausreichend Speicherplatz verfügen, löschen Sie alte Paketdateien erst, nachdem Sie bestätigt haben, dass die neuere Version für Sie funktioniert.
    • In vielen Quellen werden ältere Versionen beibehalten, sodass Sie ein Downgrade problemlos durchführen können (entweder durch manuelles Herunterladen und Installieren einer älteren Version oder mithilfe der apt-Einstellungen). Für Debian schauen Sie auf snapshot.debian.org .
    • Es gibt eine sehr einfache Möglichkeit, die Versionskontrolle einzurichten /etc: Installieren Sie das etckeeperPaket und aktivieren Sie es mit dem Befehl etckeeper init. (Ich mache das, aber nicht, weil ich mir Sorgen mache, dass Upgrades etwas kaputt machen, sondern weil ich mir Sorgen mache, dass meine Änderungen etwas kaputt machen.)

Ja, es gibt einfach keinen Vergleich zwischen der Stabilität von Windows und Debian / stable. Selbst wenn etwas kaputt geht (fast immer aufgrund eines offensichtlichen Benutzerfehlers), gibt es zahlreiche Tools zum Debuggen und Beheben von Problemen.
Liori

2
"Kernel-Upgrades sind die riskantesten" - Deshalb bewahre ich eine Kopie von Knoppix neben meinem Computer auf. 5 und nicht 6.
Amphetamachine

Möglicherweise finden Sie auch [rsnapshot] (rsnapshot.org), ein auf rsync basierendes Dateisystem-Snapshot-Dienstprogramm .
Pablo A

5

Dies ist nicht erforderlich, da der Paketmanager darauf achtet, welche Datei aus welchem ​​Paket stammt, und das Paket-Update oder die Installation rückgängig machen kann.


2
Aber wenn das Paket während des Neustarts etwas kaputt gemacht hat, kann es schwierig werden, ein Rollback durchzuführen (insbesondere im Zusammenhang mit Kernel-Revisionen)
warren

1
Deshalb wird normalerweise der vorherige Kernel beibehalten und kann so ausgewählt werden, dass er in grub gebootet wird.
mbq

1
Ich stimme nicht zu. Es wäre sehr nützlich, mit einem einfachen Neustart zwischen Betriebssystem-Update x und Update x + 1 wechseln zu können (der Unterschied könnte weit mehr als ein Kernel-Paket umfassen). Dies ist mit OpenSolaris möglich.
Knweiss

Mit Solaris ist alles möglich, außer stabile Treiber zu finden ;-)
mbq

5

Sie könnten versuchen, ein Werkzeug wie etckeeper zu verwenden . Dieses Tool speichert einfach systemweite Konfigurationsdateien in einem Versionskontroll-Repository und erleichtert das Zurücksetzen und erneute Anwenden von Änderungen.

Aber um ehrlich zu sein, musste ich keine Änderungen rückgängig machen, die durch Aktualisierungen meiner Debian / Stable-Systeme verursacht wurden. Ich benutze es, um Fehler zu beheben, die ich manuell gemacht habe.


Ich verwende etckeeper, finde es aber tatsächlich sinnvoller, eine Zeitleiste mit Änderungen anzuzeigen, als ein Rollback durchzuführen (natürlich erhalten Sie beide Fähigkeiten). Die Verwendung des im Backend eingebauten Webservers (z. B. hg, git, bzr usw.) ist häufig am einfachsten:sudo hg serve -R /etc

3

TMK, die Windows-Wiederherstellungsfunktion, macht nur Änderungen an der Registrierung und einigen kritischen Verzeichnissen rückgängig. Linux hat das nicht.

Sie können den manuellen Ansatz mit Sicherungen versuchen. Sichern Sie einfach Ihr Home-Verzeichnis und die Liste der Programme von Synaptic und verwenden Sie diese als Wiederherstellungspunkt.


3

Beachten Sie, dass insbesondere Ubuntu (aber wahrscheinlich auch Debian) alte Kernelpakete bei der Installation der Updates nicht entfernt. Sie können den Bootloader so konfigurieren, dass eine Liste der Kernel angezeigt wird, die beim Booten ausgewählt werden können.

Dadurch werden automatisch "Wiederherstellungspunkte" erstellt - nur für den Kernel, da Sie die vorherige Version auswählen können, wenn die neuere Probleme verursacht. Soweit ich weiß, hat Windows nichts Vergleichbares für seine Kernel-Updates. (Und vor allem für Heimanwender möchte ich nicht verstehen, wie man ein nicht bootfähiges System aufgrund eines Kernel-Updates diagnostiziert und repariert.)


3

Es gibt ein Tool namens Timeshift. ( http://www.teejeetech.in/p/timeshift.html ) Ich habe es nicht benutzt, aber es sieht vielversprechend aus und ich habe von den Benutzern gute Dinge darüber gehört. Die Schnappschüsse sollen eine Duplizierung der Daten verhindern. Und erschrecken Sie sich nicht vor einer dunkel aussehenden Website. :)


2

Wenn Sie den Logical Volume Manager zum Verwalten der Inhalte Ihrer Festplatten verwenden, erhalten Sie diese teilweise kostenlos über Snapshots. So zitieren Sie das großartige HOWTO : "Ein Beispiel ist, einen Snapshot eines Volumes zu erstellen , den Snapshot bereitzustellen und ein experimentelles Programm zu starten , mit dem Dateien auf diesem Volume geändert werden. Wenn Ihnen das nicht gefällt, können Sie den Snapshot deaktivieren und entfernen. und hängen Sie das ursprüngliche Dateisystem an seiner Stelle. "


Ich möchte darauf hinweisen, dass die vorgeschlagene Festplattenpartitionierung unter Ubuntu 12.04+ LVM verwendet. Dies ist also wirklich der beste Vorschlag.
Kevinf

1

Abhängig von Ihrer VM-Technologie können Sie die VM stoppen / anhalten / anhalten, den Core sichern und das Image der VM kopieren. Wenn dies fehlschlägt, stellen Sie einfach das Original wieder her.

Wenn Sie sich gerade auf einem logischen Volume befinden, können Sie einen LVM-Snapshot erstellen, der auf dem ursprünglichen LV basiert. Testen Sie ein Upgrade und wenn es funktioniert, wiederholen Sie es auf der ursprünglichen VM (siehe lvcreate (8) -s)

Oder mit dem alten Goldteer (1). Sie erstellen einen vollständigen Teerball des Benutzerbereichs, stellen die Dateien wieder her und entfernen die Dateien, die nicht im ursprünglichen Teerball enthalten waren.


Aus der Frage: "Gibt es einen Installations- / Wiederherstellungsansatz, der nicht von einer VM-Konfiguration abhängt?"
Ben Voigt

1

Derzeit bietet Linux ein solches Feature nicht wirklich an, obwohl es sehr nützlich wäre.

Der Artikel Unbreakable Upgrades, ZFS und Apt beschreibt jedoch die apt-clone- Funktion der Linux-basierten Nexenta- Speicherdistribution und schlägt vor, ...

Teilweise als Antwort auf ZFS wird ein neues Dateisystem namens BTRFS erstellt, das viele der Vorteile von ZFS bietet und möglicherweise auch in Zukunft „unzerbrechliche Upgrades“ für durchschnittliche Linux-Distributionen wie Ubuntu ermöglicht.

IMHO benötigen wir zunächst ein verwendbares COW-Dateisystem (Copy-On-Write) für Linux, bevor eine solche Funktion in Systeminstallations- / Aktualisierungsprogrammen auf vernünftige Weise implementiert werden kann.

Hinweis: Obwohl Nexenta Linux-basiert ist, wird der Linux-Kernel nicht verwendet. Es verwendet den OpenSolaris-Kernel und ZFS.


Ich habe nicht vor, Ihre Nissen auszusuchen, aber Linux-basiert ohne Linux-Kernel ist ein bisschen wie ein Widerspruch.
Seamus Connor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.