Wie erstelle / restauriere ich unter Linux einen Image-Schnappschuss meines gesamten Laufwerks?

14

Ich bin zu verwöhnt von Windows-Dienstprogrammen, die einen digitalen Schnappschuss Ihres gesamten Laufwerks erstellen, den Sie im Falle eines Laufwerksabsturzes wiederherstellen können. (zB wie Time Machine für Mac OS X).

Gibt es eine ähnliche Möglichkeit, dies unter Linux zu tun?

user35997
quelle
1
Ich nehme an, Sie sind in Windows genauso verwöhnt wie Linux-Benutzer, die tatsächlich über Systemdienstprogramme verfügen. :)

Antworten:

13

Das gewünschte Tool (das Time Machine am ehesten ähnelt) heißt rsnapshot . Im Gegensatz zu normalen Backup-Tools werden nur geänderte Elemente kopiert, und Sie können problemlos zu vielen Zeitpunkten reisen. Sie können angeben, wie viel Speicherplatz auf der Festplatte zulässig ist, und die Anzahl der Snapshots wird so angepasst, dass diese Grenze eingehalten wird. Ein sehr schönes Werkzeug.

Norman Ramsey
quelle
6

PartImage wird über die Befehlszeile oder als Text-GUI ausgeführt. Es hat einen wichtigen Vorteil gegenüber dd:

Partimage kopiert nur Daten von den verwendeten Teilen der Partition. Aus Gründen der Geschwindigkeit und Effizienz werden freie Blöcke nicht in die Image-Datei geschrieben. Dies unterscheidet sich vom Befehl 'dd', der auch leere Blöcke kopiert.

StuffMaster
quelle
6

Sie können " dd if=/dev/sda of=/path/to/target/backup" einfach tun, wenn Sie wissen, dass Sie den Raum haben, in den Sie ihn stellen möchten. Sie können auch " dd if=/dev/sda | bzip2 > /path/to/target/backup" das Komprimieren im laufenden Betrieb durchführen. Dies kann jedoch einige Zeit dauern.

Oder Sie können " tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup" als Benutzer mit allen erforderlichen Leseberechtigungen arbeiten. Treffen Sie Ihre Wahl.

Nachtrag: Ich habe kürzlich einen neuen Laptop gekauft, der mit Vista vorinstalliert ist. Ich dachte, ich wollte Vista irgendwo behalten, falls ich es irgendwann ausprobieren wollte. Deshalb habe ich beim ersten Booten des Computers (mit einer Linux-Live-CD) Folgendes getan:

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

Das war natürlich in einem schnellen lokalen Netzwerk. Sonst wäre es klüger gewesen, vor der Übertragung zu komprimieren:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

Ich hoffe, Sie finden einige davon nützlich.

Edit: Ups. Geändert bbin dd...

Pianosaurus
quelle
1
Das würde auch den Bootsektor nicht einschließen, oder? Das hat mich immer durcheinander gebracht, wenn ich mit partimage ein Windows-Laufwerk gesichert habe.
greg, es würde alles enthalten, einschließlich einer Partitionstabelle und mbr
Johannes Schaub - litb
4

Ich wende eine zweifache Strategie an: # 1 sind LVM-Snapshots und # 2 ist rsnapshot , mit der ich zeitpunktbezogene Sicherungen auf einem dedizierten externen Festplattenlaufwerk durchführe. Das externe Festplattenlaufwerk ist so platziert, dass ich es auf dem Weg zur Tür leicht herausreißen kann, falls etwas Schlimmes passieren sollte. Ich verwende (noch) keinen anderen externen Mechanismus als das regelmäßige Brennen eines Schnappschusses auf eine Reihe von verschlüsselten DVDs und das Versenden an den Ort eines Freundes in einer anderen Stadt zur Speicherung.

Ich empfehle rsnapshot aufgrund der Art und Weise, wie Snapshots erstellt werden, und der Verwendung fester Links für Dinge, die sich nicht geändert haben. Wenn Ihr Home-Verzeichnis nicht mehr funktioniert, können Sie einfach eine rsnapshot-Kopie und eine Tarpipe erstellen oder sie nach der Neuinstallation oder Wiederherstellung nach einem Laufwerksausfall auf Ihre neue Home-Partition zurücksynchronisieren.

Michael Trausch
quelle
3

Mehrere. Es ist die altmodische dd (1) , die Art der arkanen ist; es gibt dump (8) und restore (8) ; Es gibt verschiedene Open-Source-Produkte wie Amanda ; und wenn Sie möchten, können Sie ZFS installieren und ein Cron-Skript verwenden, um regelmäßige Snapshots zu erstellen. Auf diese Weise erhalten Sie etwas, das mit Time Machine praktisch identisch ist (siehe Weblog von Tim Foster).

Wikipedia hat einen Artikel mit einer Liste mit vielen Optionen .

Charlie Martin
quelle
2

Wenn Sie ein Backup auf Dateiebene wie Time Machine möchten, empfehle ich Ihnen dringend rsnapshot, wie Norman es vorgeschlagen hat.

Wenn Sie eine Lösung für die vollständige Sicherung und Wiederherstellung von Images wie Norton Ghost suchen, hat CloneZilla recht gut funktioniert. Ich starte die Live-CD und verwende dann einen anderen Computer als SSH-Server zum Sichern / Wiederherstellen der Images auf / von.

(Ich habe es sogar geschafft, die Live-Version per PXE-Boot für einen alten Tablet-Laptop, den ich ohne CD-Laufwerk und ohne USB-Boot hatte, zum Laufen zu bringen, aber es war sehr umständlich.)

Und Sie können es auch für Windows-Maschinen verwenden.

Evan
quelle
1

Ich habe mir immer Gedanken gemacht, ob ich dd verwenden soll, wenn die Laufwerke unterschiedlich groß sind. Oder hatten unterschiedliche Anzahlen von Köpfen / Sektoren / Spuren / etc.

dd ist sehr nützlich, wenn ein Snapshot erstellt und dasselbe Laufwerk neu gestartet wird. Besonders USB-Laufwerke oder Windows-Partitionen. Aber wenn ich von einem 500Meg auf ein 1500Meg-Laufwerk gehe, mache ich mir Sorgen.

Außerdem möchte ich, wenn mein Laufwerk ausfällt, es als Entschuldigung für ein Upgrade auf ein neueres Betriebssystem verwenden können.


Trotzdem macht der gute alte Teer einen guten Job! GNU-tar enthält Diff-Tar-gegen-Dateien , nur-Update-Dateien-die-geändert-haben , und nur-Archivdateien-neuere-als-Datum- Optionen.

(Ich sollte erwähnen, dass ich vor ein paar Jahren auf einen Fehler gestoßen bin, bei dem ich eine neuere Version von GNU-tar herunterladen und installieren musste . (Dies hat mit sehr langen Pfadnamen und mehreren Volumes zu tun.) Keine große Sache Das ist immer eine Option.)

Sie sollten wahrscheinlich / proc , / sys und vielleicht / var / log / lastlog oder / mnt ausschließen . (Normalerweise mache ich ein Backup auf einem externen Laufwerk, das unter / mnt gemountet ist . Backup des Backups - nicht so gut!)

Einschließen von / dev kann sich lohnen. gnu-tar wird mit Geräten richtig umgehen ( mknod ). Obwohl Sie das gesicherte / dev während einer Wiederherstellung wahrscheinlich nicht verwenden werden . (Gelegentlich ist es schön zu sehen, welche Berechtigungen oder Links Sie zuvor eingerichtet haben.)

Möglicherweise möchten Sie vor dem Sichern auch fdisk- und rpm- Informationen sichern. Z.B

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

Sowie das Mounten von "optionalen" vom Benutzer gemounteten Dateisystemen.


quelle
1

Im Folgenden finden Sie die vollständigen Schritte für eine andere Methode, mit der Sie von einer Festplatte auf eine andere wechseln und sogar eine Maschine klonen können, wenn die Hardware ähnlich ist.

Erstellen Sie zunächst ein Image eines funktionierenden Systems. Tun Sie dies als root.

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

Sichern Sie die Kernel-Images

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

Starten Sie den Computer, auf dem das Image bereitgestellt werden soll, mit einer Live-CD / Gentoo-CD. Hängen Sie die Festplatte ein und partitionieren Sie sie entsprechend:

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

Dateisysteme hinzufügen

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

Laufwerke einbinden:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

Kopieren Sie die Datei hostname.tgz auf diesen Computer.

Extrahieren Sie es in das Stammverzeichnis der neuen Maschine / mnt / new_root

# tar -xzf hostname.tgz

Chroot in die neue Umgebung.

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

Überprüfen Sie /boot/grub/grub.conf und / etc / fstab

Setup grub auf der Festplatte:

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

Beenden und mounten Sie die Laufwerke und starten Sie den Computer neu.

Tiefbrunnen
quelle
0

Sie können unter Linux mit LVM, dem Manager für logische Volumes, Snapshots erstellen.


quelle
1
Wenn Sie LVM verwenden, ist dies nicht unbedingt der Fall. Wenn ja, dann ja, wäre dies eine gute Option howtoforge.com/linux_lvm_snapshots
Gavin H