Vollständige Wiederherstellung des Linux-Systems


20

Ich bin mit der Verwendung von rsync zum Sichern verschiedener Dateien von meinem System vertraut, aber was ist der beste Weg, um eine Maschine vollständig wiederherzustellen.

Was ich in der Vergangenheit versucht habe, ist:

  1. Führen Sie von den Fedora-Installationsdisketten aus eine Grundformatierung / Neuinstallation durch
  2. Stellen Sie sicher, dass das Netzwerk aktiviert ist
  3. Kopieren Sie alles von rsync backup über das neu installierte System

Auf diese Weise funktioniert es, aber ich denke nicht, dass jedes Paket, das installiert wurde, zu 100% danach funktioniert.

Ich möchte in der Lage sein, mein System mit minimalem Aufwand wiederherzustellen und alles funktioniert wie zum Zeitpunkt der Sicherung. Auch wenn möglich auf anderen Maschinen installieren und im Wesentlichen zwei Maschinen mit den gleichen Paketen und Daten haben.


Wenn Sie sagen, dass Sie auf anderen Computern installieren möchten, meinen Sie dann andere identische Computer oder eher einen Desktop und einen Laptop?
Ichorus

Hardware wäre anders, möchte aber auf beiden die gleichen Software-Pakete
Simon Foster

Antworten:


17

Folgendes habe ich getan (dies setzt eine einzelne Festplatte unter / dev / sda voraus)

  • Verwenden Sie dd zum Sichern der MBR- und Partitionstabelle: "dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout"

  • benutze rsync um das Ganze zu kopieren mit etwas wie: "rsync -axvPH --numeric-ids ..."

Beim Wiederherstellen mache ich Folgendes:

  • Booten Sie den Zielcomputer mit sysrescuecd . In der Regel befindet sich die Datei 'sda.layout' auf einem USB-Stick.

  • Stellen Sie die MBR- / Partitionstabelle mit dd wieder her: "dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda"

  • Verwenden Sie partprobe (danke Kommentator Mark) , damit der Kernel die Partitionstabelle erneut liest.

  • Hängen Sie alle verschiedenen Partitionen unter / restore / ein. Ich mache die Mount-Punkte beim Wiederherstellen identisch. Wenn ich also / boot, / var in meiner Quelle habe, ende ich mit / restore / boot, / restore / var usw.

  • Verwenden Sie Rsync, um die gesamte Sache wiederherzustellen.


3
Ich habe dies mehrere Male getan und habe den Vorteil, Standard-Linux-CLI-Befehle zu verwenden. Ich verwende rsnapshot, ein Perl-Skript um rsync, um Backups auf einem zentralen Server zu erstellen. Dann synchronisieren Sie das Ganze zurück, nachdem Sie von sysrescuecd gebootet und die Partitionstabelle bearbeitet haben. Übrigens wird "partprobe" die Partitionstabelle erneut lesen
Mark Porter

OK, dies kann als übler Hack angesehen werden, aber da Sie den Kernel die Partitionstabelle erneut lesen lassen können, indem Sie ein sysctl () wie fdisk ausgeben, können Sie genauso gut fdisk haben - was nach meiner Erfahrung anders als partprobe immer da ist - it: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug

Vielen Dank für alle Vorschläge, ich wusste, dass es da draußen eine bessere Lösung geben muss. Werde diese Vorschläge ausprobieren und sehen, was für mich am besten funktioniert.
Simon Foster

3
Vergessen Sie nicht die Zählung mit dd! "dd bs = 512 if = / dev / sda von = / backups / sda.layout count = 1" und "dd bs = 512 if = / path / to / sda.layout von = / dev / sda count = 1"
Steven

@Steven: Mist! Danke für den Fang. Kann ich einen Kommentar abgeben?
kbyrd

6

Ich klone niemals Systeme vollständig. Sie wissen nie, was sich ändern kann, und Ihr geklontes System-Image ist zum Zeitpunkt einer Änderung bereits veraltet. Am besten erstellen Sie ein Verfahren, mit dem Sie funktionsidentische Systeme erstellen können. Eine Möglichkeit sind Kickstart, AutoYaST oder ähnliche Tools. Führen Sie gute Backups Ihrer Konfiguration durch und verwenden Sie im Idealfall ein Konfigurationsmanagementsystem wie Bcfg2, Puppet oder CFEngine, um alles zu konfigurieren, anstatt es von Hand zu erledigen. Wenn Sie dann ein neues System erstellen müssen, das einem anderen ähnlich ist, oder ein vorhandenes System neu erstellen möchten, ist dies eine einfache und genau definierte Prozedur.


3

Vorab wäre mehr Aufwand erforderlich, aber mit Kickstart und Revisor können Sie eine Installation anpassen und auf anderen Computern verwenden. Sie können angepasste Versionen Ihrer Einstellungsdateien hinzufügen.

Sie können auch in Betracht ziehen, Ihr Basisverzeichnis auf einer separaten Partition zu speichern. Sie können diese Partition in Ruhe lassen, während Sie eine Neuinstallation auf einer anderen Partition durchführen.


2

Besorgen Sie sich eine Kopie der Systemwiederherstellungs-CD , und starten Sie sie nach der ersten Minimalinstallation, hängen Sie die Festplatte ein, und führen Sie dann den Befehl rsync aus. Nachdem es fertig ist, müssen Sie möglicherweise update-grub ausführen, um es vom richtigen Boot-Gerät und Kernel booten zu lassen.


2

Ich habe immer gedacht, dass die Gentoo-Methode zum Installieren eines neuen Systems (von einem Backup oder auf andere Weise) aufgrund seiner Einfachheit die beste ist.

  1. Schaffen Sie ein funktionierendes, minimales System.
  2. Laden Sie das Betriebssystem als Festplatte in eine Live-CD.
  3. Tariere das Dateisystem und speichere es irgendwo.
  4. Laden Sie das Zielsystem mit einer Live-CD.
  5. Bereiten Sie die Zielfestplatte vor und hängen Sie sie ein.
  6. Entpacken Sie die gemountete Festplatte.
  7. Chroot betreten.
  8. Richten Sie den Bootloader und andere systemabhängige Dinge ein.
  9. Starten Sie neu und gehen Sie.
  10. Installieren Sie neue Software, kopieren Sie Benutzerordner, und fügen Sie bei Bedarf weitere Dateien hinzu.

2

Versuchen Sie Clonezilla Live-CD. Sie können eine Live-Sitzung starten und ein Image Ihres Computers erstellen, ohne etwas installieren zu müssen. Sie haben dann die Möglichkeit, die Kopie des Images auf einer Netzwerkfreigabe oder einem Remotecomputer usw. zu speichern.


0

Wenn es sich genau um den gleichen Computer handelt, würde ich nur ddein Festplatten-Image erstellen und es nach Bedarf neu erstellen (ggf. einige Konfigurationen nachträglich ändern).

Wenn Sie die Hardware wechseln, ist es mir gelungen, ein Tarball oder eine vollständige rsync-Sicherung des Dateisystemstamms zu erstellen. Ich bin mir nicht sicher, warum Sie zuerst eine vollständige Installation benötigen. Solange Sie eine vollständige Sicherung durchführen, sollte die Fedora-Basisinstallation keine Voraussetzung sein.


0

Ihr Verfahren kann zahlreiche Probleme verursachen und sollte vermieden werden.

Es gibt zwei empfohlene Hauptmethoden, um dies zu erreichen, und eine dritte, wenn Sie lediglich versuchen, eine Entwicklungsumgebung zu erstellen.

Bildgebung

Wenn die Hardware, auf der Sie TO wiederherstellen, identisch oder ähnlich genug ist, verwenden Sie ein Disk Imaging-Tool, um eine Kopie der gesamten Festplatte oder des Arrays zu erstellen. Wenn Sie ein Image wiederherstellen möchten, müssen Sie nur die betreffenden Computer mit diesem Image neu imageen. Wenn Sie ein Image auf mehreren Computern erstellen, müssen Sie die maschinenspezifischen Einstellungen der anderen Geräte (Hostname, statische IP-Adresse usw.) so aktualisieren, dass keine Konflikte auftreten.

Für das eigentliche Imaging würde ich jedes Tool oder Produkt empfehlen, das Festplatten klonen kann.

Konfigurations- / Basisverzeichnis-Backups

Sichern Sie auf Ihrem primären Computer regelmäßig (mit einer beliebigen Methode) eines der folgenden Verzeichnisse (oder anderer), die Sie benötigen:

/ home - Alle persönlichen Einstellungen, Dokumente und Dateien des Benutzers
/ etc - Konfigurationen
/ opt - Spezialsoftware, die nicht über den Paketmanager
/ usr / local installiert wurde - Spezialsoftware, die nicht über den Paketmanager
/ var - logs und dergleichen installiert wurde

Installieren Sie beim Wiederherstellen das Betriebssystem erneut auf den betreffenden Computern, und kopieren Sie dann jede dieser Dateien (oder nur die relevanten Dateien) an den richtigen Speicherort.

Virtuelle Maschinen mit Snapshots

Erstellen Sie eine virtuelle Maschine in VMWare (oder was auch immer Sie bevorzugen). Wenn es so konfiguriert ist, wie Sie es möchten, erstellen Sie einen Schnappschuss. Dieser Snapshot kann dann problemlos auf einer beliebigen Anzahl neuer oder vorhandener virtueller Maschinen wiederhergestellt werden.

Im Allgemeinen sollten Sie nur Daten und Konfigurationen sichern (wie auch immer Sie diese definieren). Das Betriebssystem und die Software können problemlos jederzeit neu erstellt werden: Nur Ihre eigenen Inhalte sind wertvoll. Wenn dieses Setup für die Entwicklung vorgesehen ist und Sie eine identische Umgebung sicherstellen müssen (anstatt einfach die Dinge wieder zum Laufen zu bringen), sind Snapshots in einer virtuellen Maschine die beste Wahl.

Imaging ist die Brute-Force-Lösung. Wenn Sie können, sichern Sie einfach Ihre Daten und sorgen Sie sich nicht um das Betriebssystem. Der Versuch, es vollständig wiederherzustellen, verlangt nach Ärger.

Wenn Sie klarstellen können, was Ihre endgültige Absicht ist, kann ich eine detailliertere Lösung anbieten.


0

Da Sie sagen, "Hardware wird anders", kann SystemImager sehr praktisch sein.

Es ist nur eine Reihe von Wrapper-Skripten rund um PXE und Rsync. Daher ist das erstellte "Backup" nur eine vollständige Verzeichnisstruktur Ihres gesicherten Linux-Servers. Sie können in dieses Verzeichnis "cd" und die Inhalte beim Füttern ändern. (SystemImager verwaltet das Ändern der Netzwerkeinstellungen selbst, wenn Sie das Bild herausschieben.)

Sie können auf Ihrem gesicherten Server chrooten und yum oder apt ausführen, um Software zu installieren, bevor Sie das Image herausschieben.

Bearbeiten: Sie können sich das SI-Skript ansehen, das Partitionen / logische Volumes erstellt, und es an die Festplattengröße der Zielcomputer anpassen. Sie können auch Kernelmodule hinzufügen / entfernen.


0

Ich hatte sehr viel Glück mit Mondo Rescue. Grundsätzlich werden alle Ihre Dateien und Partitionen zur späteren Verwendung auf einer bootfähigen CD gesichert. Es kann Änderungen in Partitionen und Laufwerken verarbeiten.

http://www.mondorescue.org/



0
  • Am sichersten ist es, die gesamten Festplatten oder zumindest die relevanten Partitionen zu klonen und mit einer Live-CD wiederherzustellen.

  • Eine andere platzsparendere Methode ist die Verwendung von dump (xfsdump für XFS). In diesem Fall müssen Sie die Partitionen jedoch manuell neu erstellen (formatieren). Vergessen Sie nicht, sie mit denselben Parametern zu erstellen, insbesondere UUID und LABEL.

  • Sie können tar auch mit dem --xattrs Parameter verwenden, um die erweiterten Attribute jeder Datei zu speichern.


1
Modernes rsync unter Linux hat -X und -A für erweiterte Attribute bzw. ACLs.
kbyrd

0

partimage und partclone (Teile von Clonezilla) sind nützliche Dienstprogramme zum Erstellen vollständiger Systemimages.

Wie Sie bereits festgestellt haben, sind vollständige Systemabbilder nicht unbedingt vom System portierbar: in der Regel aufgrund von Gerätenamen.

Es kann so einfach sein, GRUB (vorzugsweise auf einer separaten / Boot-Partition) und den MBR nach dem Imaging erneut zu installieren (z. B. mit einer LiveCD).

Ein anderer Ansatz besteht darin, Konfigurationsverwaltungstools zu verwenden, um Richtlinien zu definieren, die auf ein Basisimage angewendet werden (z. B. Vagrant-Basisboxen). und separate Datensicherungen in Block- und / oder Objektspeicher (EBS / S3, Openstack Block Storage / Openstack Object Storage)

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.