Festplattenabbild mittelsNetcat

auf einen entfernten Rechner sichern

Zur Sicherung einer gesamten Festplatte zum Beispiel in einem Notebook kann man bequem einen anderen Rechner im Netz verwenden. Den Notebook mit PXE oder mit GRML CD booten und folgendes Script dort hin kopieren /usr/local/bin/netcat-image-backup:

download

#!/bin/bash DATUM=$(date -I) SOURCE_DEVICE=/dev/hda TARGET_HOST=caminus TARGET_IMAGE=/root/backupdir/$(hostname)-${DATUM}$( echo $SOURCE_DEVICE|tr "/" "_").gz LOG=dvd-backup.log # ---------- nothing to configure below here ----------- EM="\033[1m\033[31m" # Farbe CN="\033[0m" # Normal NC_PORT=4444 DELAY=20 # [s] Verzögerung bis zum Start der Übertragung, zum einloggen auf dem Zielrechner echo "$DATUM;$BACKUP_PATH to $TARGET_HOST">>$LOG # echo " " echo "Sicherung der Festplatte auf $TARGET_HOST." echo " Zielpfad: $TARGET_HOST:$TARGET_IMAGE" echo -e "$EM in ${DELAY}s geht es los, bis starten wir netcat auf dem Zielhost...$CN" echo " " # remote netcat im listenmode starten ssh root@$TARGET_HOST "netcat -l -p 4444 > $TARGET_IMAGE "& echo "... netcat auf $TARGET_HOST im Hintergrund gestartet.." sleep $DELAY echo "los gehts..." dd if=$SOURCE_DEVICE |gzip -9|netcat $TARGET_HOST 4444

Auf dem Notebook wird dann in einer Shell das Script gestartet. Dieses baut eine Verbindung zum Zielrechner auf und startet dort im Hintergrund ein netcat-Empfang, der in eine Datei ausgibt. Danach wird die gesamte Festplatte wird komprimiert per netcat an den Zielrechner übertragen. Die Rücksicherung geht auch über ein shell script. /usr/local/bin/netcat-image-restore:

download

#!/bin/bash TARGET_HOST=js-nb TARGET_DRIVE=/dev/hda SOURCE_IMAGE=$1 LOG=restore.log RESTORE_SERVER=caminus # sollte nur hier gestartet werden DELAY=20 #------------------------------------------ myexit() { echo $1 exit 1 } [ "$(hostname)" = "$RESTORE_SERVER" ] || myexit "Dieses Script sollte auf diesem host nicht laufen. ENDE" DATUM=$(date -I) [ -z "$1" ] && myexit "Bitte Quellarchiv angeben!" [ -f "$1" ] || myexit "Das angegebene Quellarchiv exisitert nicht!" NC_PORT=4444 echo "$DATUM;$BACKUP_PATH to $TARGET_HOST">>$LOG # echo " " echo "RückSicherung auf die Festplatte des $TARGET_HOST, $TARGET_DRIVE." echo " Quellpfad: $TARGET_HOST:$SOURCE_IMAGE" echo " " # remote netcat im listenmode starten ssh root@$TARGET_HOST "netcat -l -p 4444 > $TARGET_DRIVE "& echo "... netcat auf $TARGET_HOST im Hintergrund gestartet.." sleep $DELAY echo "los gehts..." gunzip -c $SOURCE_IMAGE |netcat $TARGET_HOST 4444

Der Vorteil ist, dass man jegliches festplattenbasierte Betreibssystem, damit offline sichern kann. Auch kann man dies zum Klonen verwenden. Um einen Windows XP Notebook zu sichern habe ich nach fertiger Installation aller Programme die Festplatte defragmentiert und freien Platz mit einem Tool überschrieben. Dadurch wird die Kompression sehr effektiv und eine Installation mit 10 Gb Plattenbelegung auf einer 40 Gb Platte belegt nacher 3-4 Gb als Backup-Abbild und dauert ungefähr eine Stunde. Eine Festplattenverschlüsselung macht die Kompression allerdings vollkommen unwirksam und die Übertragungszeit und -Menge wird entsprechend gross und lange, aber es geht. Gerade mit Windowz sind ja die mitgelieferten Recovery-DVDs deshalb witzlos, weil damit ja nur das völlig nakte OS wieder hergestellt wird, also sämtlichen Anpassungen, Einstellungen und Zusatzinstallationen von Druckern und Software kaputt sind. Eine Image-Sicherung stellt in kurzer Zeit ein vollkommen benutzbares System her.