Erstellen eines Snapshots eines Linux-Systems

11

Ich möchte Folgendes tun: Speichern Sie den aktuellen Status meines Linux-Betriebssystems (centOS6.5). Nehmen Sie einige Änderungen vor (insbesondere einen Fehler einspeisen und einen Dienst testen, um zu überprüfen, wie er sich verhält, wenn dieser bestimmte Fehlertyp auftritt.) Stellen Sie dann das System wieder in den gespeicherten Zustand zurück. Ich kann nicht herausfinden, wie dies auf einem Linux-System gemacht wird. Ich habe eine Maschine mit centOS 6.5 mit einem ext4-Dateisystem. Auch dies ist ein physischer Server und keine virtuelle Maschine.

Irgendwelche Ideen oder Vorschläge?

bRuta
quelle
Physischer Server oder virtuelle Maschine?
Steve
1
Ich empfehle, Ihr Betriebssystem auf einer Virtualisierungssoftware wie VirtualBox auszuführen. Es unterstützt gut Schnappschüsse.
Yaegashi
Es ist ein physischer Server. Ich muss dies auf mehreren Computern (physischen Servern) tun und kann die Konfiguration nicht ändern, um mein Betriebssystem auf einer Virtualisierungssoftware auszuführen.
BRUTA
Normalerweise wird eine zusätzliche Meta-Ebene wie Virtualisierung benötigt, um System-Snapshots zu unterstützen. Es wäre sehr schwierig, physische Server dazu zu bringen, sich so zu verhalten, als ob sie von Firmware- und Bootloader-Ebene aus unter Kontrolle wären.
Yaegashi

Antworten:

8

Ich würde es einfach halten und klonen. Starten Sie ein Live-System von USB (am einfachsten ist Ubuntu von einem USB-Stick, wie ich finde), und sichern Sie dann Ihre Festplatte auf einer anderen Partition (oder einer externen Festplatte usw.), z

dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1

wo Sie durch /dev/sda1Ihre root ( /) Partition ersetzen müssen . Machen Sie dasselbe mit anderen Partitionen (wie das für /boot, /boot/efi, /home) , soweit anwendbar.

Wenn Sie Platz sparen müssen, können Sie dies tun

dd if=/dev/sda1 bs=64M | gzip --fast | dd bs=32M of=/mnt/my_mounted_backup_drive/backup-sda1.gz

oder komplizierter, viel langsamer, aber ein paar Bytes mehr sparen,

mkdir -p /mnt/linux
mount -o ro /dev/sda1 /mnt/linux
cd /mnt/linux
tar cvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz .??* *

Sie können dann umgekehrt wiederherstellen, z

mkdir -p /mnt/linux
mount /dev/sda1 /mnt/linux
cd /mnt/linux
tar xvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz

oder

dd /mnt/my_mounted_backup_drive/backup-sda1.gz bs=32M | gzip --decompress | dd bs=64M of=/dev/sda1

(Vorsicht, wo Sie Ihre Daten schreiben, dies löscht alles auf /dev/sda1, also machen Sie es gleich beim ersten Mal richtig :-)

Ned64
quelle
PS: Wenn Sie erwarten, dass etwas wirklich schief geht, sichern Sie die Partitionstabelle, wie z dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sda. Beim Wiederherstellen müssen Sie darauf achten, dass hier nicht zu viele Blöcke auf die Festplatte zurückgeschrieben werden. Sie können nicht sagen, wie viele, ohne auf Ihr Partitionslayout zu achten. Stellen Sie den Block wieder her (ohne ihn), in dem Ihre erste Partition gemäß gdiskoder beginnt fdisk.
Ned64
5

Sie können rsync verwenden, um das gesamte System zu sichern.

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder

Es gibt einen großartigen Artikel im Arch Linux Wiki darüber

Hugo Rodrigues
quelle
Das ist ziemlich kurz, um die beste Option für mich zu sein. Wenn Sie keine haben rsync, können Sie diese verwenden dd, um meine USB-Laufwerke zu sichern.
m3nda
1

Sie können FSArchiver verwenden , mit dem der Inhalt des Dateisystems in einer komprimierten Datei gespeichert und das Dateisystem beim Extrahieren der Daten wiederhergestellt wird.

Hier ist ein Beispiel aus der Dokumentation :

fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1

Sie können auch die Multithread-Komprimierung verwenden, und die Wiederherstellung ist unkompliziert:

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1
Paulo Almeida
quelle
-1

Um zu einem vorherigen Status zurückzukehren, können Sie das aktuelle Dateisystem in ein neues Verzeichnis einbinden. Dadurch wird das Dateisystem in einem neuen Stammverzeichnis bereitgestellt, das mit dem folgenden Befehl angegeben wird:

mount DIR DIR

Um diesen Status wiederherzustellen, ändern Sie das Stammverzeichnis des Dateisystems aus dem im Befehl mount angegebenen Verzeichnis.

umount DIR

user346623
quelle