System-Image des laufenden Debian-Systems?


22

Ist es möglich, ein laufendes Debian-System in eine Art Image-Datei zu sichern, die einfach mit dd auf eine andere Festplatte zurückgeschrieben werden kann, wenn das ursprüngliche (gesicherte) Debian-System ausfällt?

Ich bin besonders auf der Suche nach einem Tool, das direkt in den Repositories verfügbar ist, da Debian Wheezy auf einem Himbeer-Pi ausgeführt wird und ich daher Unterstützung für die ARM-Architektur benötige, die für Pakete der Debian-Repositories recht zuverlässig ist.


2
Ich würde nicht empfehlen, eine Block-für-Block-Kopie von einem mit RW gemounteten Dateisystem zu erhalten. Kleinste Schreibvorgänge können die Datei beschädigen, und Sie glauben, dass Sie über ein funktionsfähiges Backup verfügen. Also mount -o remount,rodas Laufwerk kopieren Sie , wenn Sie sich entscheiden dd, dumpoder ähnliches. Das Kopieren mit dem Dateisystem rsyncoder einer anderen Methode, einschließlich, cpist für das Live-System sicher.
WhimsicalWombat

Antworten:


15

ddist gut, wenn es Ihnen nichts ausmacht, eine Image-Datei zu erstellen, die genau der Größe Ihrer Raw-Festplatte entspricht. rsyncist gut, wenn Sie einen einfachen Zugriff auf Dateiebene wünschen. Die Standardmethode zum Sichern eines Dateisystems ist dumpund restore( aptitude install dump).

Für ein Gerät wie den Raspberry Pi würde ich unter der Annahme einer MS-DOS-Partitionstabelle und unter der Annahme, dass der Datenträger / dev / sda ist, Folgendes sichern:

  • dd if=/dev/sda of=sda-boot-sectors.img count=2048 um ein Image des Boot-Abschnitts der Festplatte zu erhalten.
  • fdisk -lu /dev/sda >sda-partition-table.txt zum späteren Nachschlagen.
  • dump -0af sda1-root-level0.dump /dev/sda1 und wiederholen Sie dies für jede Partition, die Sie sichern möchten.

Sie können das Los dann komprimieren und an einem sicheren Ort aufbewahren. Zum Wiederherstellen verwenden Sie dd, um die Partitionstabelle und die Startsektoren wiederherzustellen, die Partitionstabelle neu zu laden, die neuen Dateisysteme zu erstellen und zu verwenden cd /mnt/new-filesystem; restore -rf /some-location/sda1-root-level0.dump.

Die Upsides:

  • dump Ruft eine vollständige Kopie des Dateisystems ab, einschließlich ACLs, erweiterter Attribute, Eigentumsrechte, Dateien mit geringer Dichte und spezieller Dateisystemattribute - alles wird unverändert gesichert.
  • Es werden nur die benötigten Blöcke kopiert und nicht verwendete ignoriert.
  • Es ist ein Standard-Unix-Tool und kann von vielen anderen Unix-Tools gelesen werden.

Die Nachteile:

  • Es werden beschädigte Snapshots erstellt, wenn das Dateisystem während des Dumps beschrieben wird
  • Es ist schwieriger, das gesicherte Image bereitzustellen (was Sie mit Festplattenimages tun können) oder auf einzelne Dateien zuzugreifen (was Sie mit rsyncBackups tun können ).
  • Es ist dateisystemtypspezifisch. Sie können ein ext3Dateisystem ext4sichern und in einem wiederherstellen , aber Sie können jeden Typ von Dateisystem sichern . Die meisten ausgereiften Dateisysteme haben ihre eigenen dumpVersionen. Der Standard - Debian dumptut ext2, ext3und ext4. Wenn Sie ein Flash-spezifisches Dateisystem verwenden, können Ihre Optionen unterschiedlich sein.

In der Manpage ist nicht angegeben, dumpdass das Dateisystem nicht beschrieben werden soll. Ich meine, das klingt nach einer vernünftigen Einschränkung, aber es ist schade, dass es nicht in der Manpage erwähnt wird, so dass jemand diesen Fehler machen kann ...
imz - Ivan Zakharyaschev

Dank Ihres Beitrags habe ich von diesem Tool erfahren (Dump / Restore). Ich werde es verwenden, um eine Kopie eines Dateisystems mit etwas wie:mkfs.ext4 /dev/sda1; mount /dev/sda1 /mnt/disk; cd /mnt/disk; dump -0af - /dev/sda5 | restore -rf -
imz - Ivan Zakharyaschev

5

Verwenden Sie ddfür den Boot-Sektor und rsync -aHSfür die Dateien. Sie müssen "virtuelle" Dateisysteme wie / proc / sys und alle RAM-Disks (tmpfs) ausschließen.

Wenn Sie die Partitionierung auch beibehalten möchten, können Sie sie mit sichern sfdiskoder mit neu erstellen parted.


Danke, hört sich sehr interessant an, hast du das schon in der Vergangenheit eingestellt? Wie erstelle ich aus diesen Teilen ein vollständiges Image, benutze einfach ein Loopkack-Gerät? (Ja, Sie möchten die Partitionierung fortsetzen und so weiter. Sie möchten, dass ein Image ohne weiteres
Herumspielen

@ stefan.at.wpf Ich habe gerade einige meiner Lösungen zum Klonen von VMs durchgemischt, physische Server (Autoyast / Kistart) erstellt und aus einem nicht gespiegelten System einen RAID1-Spiegel erstellt Dateisystem für Clusterknoten. Ich benutze dieses myselv nicht. Meine Methode wäre, einen neuen Server (einschließlich eines Backup-Clients) automatisch zu installieren und dann den Inhalt des alten Servers über ein Backup auf dem neuen Server wiederherzustellen.
Nils

4

Für Debian müssen Sie wirklich nur Ihre Daten und Konfigurationsdateien sichern .

So sichern Sie den vorhandenen Status:

  • Sichern Sie die Paketauswahl mit dpkg --get-selections > dpkg_selections.
  • Sichern Sie die Debconf-Datenbank mit sudo debconf-get-selections > debconf_selections.

So wenden Sie dies auf ein neues System an:

  • Wenden Sie zuerst die Debconf-Auswahl mit an sudo debconf-set-selections < debconf_selections.
  • Paketauswahl mit übernehmen dpkg --set-selections < dpkg_selections.
  • Pakete installieren mit apt-get dselect-upgrade.

Ihre Daten sollten sich in erster Linie in /homeund befinden /var(z. B. /var/lib/mysqlfür MySQL, /var/wwwfür Apache usw.). Sie sollten herausfinden können, welche Anwendungen für Sie wichtig sind.

Die Konfiguration erfolgt hauptsächlich in /etc. Auch hier sollte es nicht schwierig sein, herauszufinden, was für Sie wichtig ist.


Zum debconf-get-selectionLaufenapt-get install debconf-utils
Pandita

1

Ich weiß nicht, ob das gut ist, wenn das System läuft, aber das ist, was ich tue.

sudo dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

wie gesagt, vielleicht gibt es eine bessere lösung, dann würde ich es auch gerne wissen!


1

Ich habe so viel Backup- und Restore-Software ausprobiert und war nie glücklich. Das ist, was ich jetzt mache: Ich habe ein zweites Debian auf einem Ersatzcomputer installiert (das gleiche MB, die gleiche NIC-Karte usw.). Ich synchronisiere jeden Abend von Computer A zu Computer B. Es gibt einige Dateien, die ich zurückhalte (/ etc / network / interfaces, / etc / hosts, / etc / hostname), da ich keine Konflikte zwischen den beiden aktiven Systemen möchte. Eigentlich habe ich Kopien davon in einem anderen Ordner. Ich deaktiviere auch einige Dienste, die nicht auf Computer B ausgeführt werden müssen (Postfix, MySQL usw.). Ich habe ein Skript auf Computer B geschrieben, das es im Grunde genommen in Computer A umwandelt (die zurückgehaltenen Dateien ersetzen), die Netzwerkkarte neu startet und die deaktivierten Dienste aktiviert. Natürlich muss Maschine A ausgeschaltet sein, wenn ich das Skript starte, sonst wird es Chaos geben. Ich teste Maschine B monatlich, indem ich Maschine A ausschalte und das Skript ausführe. und einige Tests durchführen, um sicherzustellen, dass es auf dem neuesten Stand ist und ordnungsgemäß ausgeführt wird. Es wirkt wie ein Zauber!


0

Schauen Sie sich Clonezilla an. Ich sehe es in den Standard-Debian-Repos. http://clonezilla.org/

Bearbeiten: Wahrscheinlich nicht, Clonezilla-Liste Anforderungen auf ihrer Titelseite: "X86 oder x86-64-Prozessor"


Interessantes Projekt, trotzdem danke :-)
stefan.at.wpf 22.06.12

0

Um mein Pi zu sichern, entferne ich die microSD-Karte und schließe sie an meinen Laptop an. Führen Sie dann a aus dd, um auf meinem Laptop eine Datei der gesamten Festplatte zu erstellen, wie oben beschrieben:

dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

2
Dies ignoriert buchstäblich den wichtigsten Teil der Frage. Die Frage ist, wie man a macht Live- Image eines Systems erstellt werden soll. Wenn Sie die Festplatten verschieben, sollten Sie das System besser herunterfahren.
Sirenen

0

Verwenden Sie den Systemback. Ich habe es sogar mit Debian Stretch zum Laufen gebracht. Es gibt Ihnen einen schönen Live-Boot-USB mit genau Ihrem konfigurierten Desktop.

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.