Hi,

sicherlich ist es für die meisten Leser nichts neues, dennoch möchte ich kurz auf das einigermaßen schnelle kopieren einer kompletten Festplatte eingehen.

Der klassische Weg über „dd“ funktioniert zwar gut, jedoch muss euer Ziellaufwerk immer mindestens so groß sein wie eure Quelle, zudem wird das Abbild blockweise erstellt. Dementsprechend wird stets die sämtliche Festplatte gelesen, auch wenn der Speicherplatz nicht vollständig benötigt wird. Manchmal ist der Einsatz aber durchaus sinnvoll. Mit folgendem Beispiel wird die gesamte Platte gespiegelt:

dd if=/dev/sda of=/dev/sdb

Mit „rsync“ kann die Spiegelung nicht nur lokal durchführen, sondern auch an entfernten Rechnern, z.B. per ssh

rsync -ax --progress --numeric-ids -e ssh root@192.168.1.1:/ zieldir

Mal ein komplettes Szenario…


Am entfernten PC mit der IP 192.168.1.1 soll die komplette Festplatte auf eine lokale kopiert werden.
Zunächst natürlich muss die Zielfestplatte eingerichtet werden. Die Partitionierung kann dabei mit fdisk erfolgen, die Formatierung z.B. mit mkfs.ext3. Diese Schritte werden vorrausgesetzt.

Die Zielpartition muss eingemountet werden, am Beispiel wird /dev/sdb1 nach /mnt gemountet:

mount /dev/sdb1 /mnt

Die Festplatte des entfernten PCs muss nun kopiert werden:

rsync -ax --progress --numeric-ids -e ssh root@192.168.1.1:/ /mnt/

Wofür steht welche Option:

  • -a steht für Archiv… es impliziert die Weitergabe von Dateiattributen, dem rekursiven Arbeiten und weiteres…
  • -x Verzeichniss wie /proc oder /dev werden ausgelassen, da sie systemspezifisch sind
  • –progress … selbstklärend (optional)
  • –numeric-ids Benutzer-IDs werden numerisch übernommen, andernfalls versucht rsync die beiden PCs abzugleichen, Fehler könnten entstehen
  • -e muss das Protokoll folgen, über welches die Verbindung zum entfernten PC hergestellt wird
  • root@192.167.1.1:/ Wir melden uns an 192.168.1.1 als root an und kopieren das gesamte RootFS /
  • /mnt/ ist unser Zielverzeichnis (hier ist /dev/sdb1 gemountet)

Nachdem das Dateisystem kopiert ist, muss die Installation des Bootloaders erfolgen (am Beispiel mit Grub):

Die im Transferrechner vorhandenen Laufwerke /proc und /dev müssen für unsere Zielfestplatte in /mnt verfügbar sein, dafür werden sie zusätzlich gemountet:

cd /mnt
mount -o bind /proc proc
mount -o bind /dev dev

Mittels chroot beschränken wir unser Vorgehen auf das System in /mnt. Dabei müssen beide aktive Systeme die selbe Architektur nutzen!! (also beide 64Bit, oder beide 32Bit) Nach dem chroot folgt die Installation von Grub in den Bootloader

chroot /mnt
grub-install /dev/sdb

Nun könnt ihr /dev/sdb in einen neuen PC stecken und das System ist doppelt vorhanden!