Howto Klonen eines Linuxsystems

Aus THM-Wiki
Wechseln zu: Navigation, Suche
Important.png
Die Seite wird überarbeitet oder erweitert.
Important.png

Dieser Artikel beschreibt die prinzipiell die Übernahme einer vollständigen Linux Installation auf einen anderen Computer. Als Beispiel wird die virtuelle Maschine aus dem Artikel Howto Virtual eStudy Development. Um das ganze speziell für Windows Benutzer zu vereinfachen, wird der Inhalt der VM bereits als Archiv bereitgestellt.


Vorausetzungen

Vorbereitungen

  • vor Arbeiten an Partitionen sollte man ein aktuelles Backup haben
  • ein Backup ist nur eins, wenn man auch ein zerstörtes System damit wiederherstellen kann, wie z.B. ghost4linux
  • neben den sichtbaren Partitionen gibts auch einen MBR der die Partitiontabelle enthält, der sollte ebenfalls kopiert werden.
  • genug Platz auf dem Zielsystem, für die VM reichen etwa 8GB aus, etwas mehr wird jedoch empfohlen (für z.B. Gnome,KDE,Spiele...). Wer dazu bestehende Partitionen verändern muss sollte sich einmal gparted livecd anschauen.
  • eine beliebige bootfähige Linux CD um die Basistools zur Hand zu haben.
  • ein Archiv des zu kopierenden Systems. TODO:Alternativ kann eins erstellt werden.

Grundkenntnisse

Tux.png
  • Unter *nix ist alles eine Datei, Gerätedateien finden sich unter /dev/
  • Massenspeicher werden in modernen Linux Systemen über /dev/sdX angesprochen

Bsp. 1 erste Platte /dev/sda

  • Einzelne Partionen werden durchnummeriert

Bsp. erste,primäre Partition auf der ersten Platte /dev/sda1


Info.png

Über den MBR (MasterBootRecord) einer Festplatte wird ein Bootloader gestartet mit dem die Betriebsysteme gestartet werden. Eine normale Windows Installation verbirgt diesen, unter Linux sind die Bootmanager grub und lilo verbreitet.

Archiv erstellen

Da wir ein Archiv der eStudy-dev Installation bereitstellen, hier nur grob wie man sowas aus einer VM machen kann.

  1. VM via Live CD booten (Image einbinden)
  2. auf dem Zielhost mit netcat einen Port öffnen und in eine Datei umleiten (nc -l -p 10000 > datei)
  3. in der LiveCD die Quellpartition mounten
  4. Packen/Kopieren ö.a. und die Ausgabe via Pipe zum Zielhost umleiten

Anleitungen zum kopieren gibts zu Hauf im Netz. Wer eine gute findet verlinke diese doch einfach in diesem Artikel unter Links

Installation

Info.png

Vorsicht! Dies ist nur ein Beispiel und setzt voraus das auf /dev/sda1 ein bestehendes System erhalten bleiben soll und 2 erweiterte Partitionen /dev/sda5 für das Basissystem mit mind. 8GB und /dev/sda6 als swap Partion mit ca. 512MB. Das Archiv mit dem zu kopierenden System liegt unter Windows auf C:\estudy-dev-2.0.1.tar.bz


Booten einer Linux Live CD und öffnen einer Shell

1.Prüfen ob man root ist

whoami

1.1 Falls nicht, wird man es mit

sudo su

Vorbereiten der Zielpartitionen

1. Formatieren der Zielpartion

mkfs.ext3 /dev/sda5

2. Swap Partition formatieren

mkswap /dev/sda6

3. Windows einhängen (mounten)

mkdir /mnt/win
mount /dev/sda1 /mnt/win

4. Zielpartition mounten

mkdir /mnt/dest
mount /dev/sda5 /mnt/dest


Tux.png

Mit dem Befehl df -hT können die gemounteten Dateisysteme zur Kontrolle angezeigt werden

Entpacken

5. Archiv mit Dateirechten entpacken

cd /mnt/dest/
tar xvpf /mnt/win/estudy-dev-2.0.1.tar.bz .

Bootloader installieren

1. Grub als Bootloader installieren

Info.png

Für den Fall das die Live CD grub nicht beinhaltet benutzen wir hier direkt die Version aus dem Archiv

mount -o bind /dev /mnt/dest/dev
mount -o bind /proc /mnt/dest/proc
chroot /mnt/dest /bin/bash
Info.png

Nach dem chroot wird bereits die Installation aus dem Archiv benutzt - ohne sie zu booten ;-)

2. Bootloader konfigurieren uuid von /dev/sda auslesen

blkid

das ergibt eine Ausgabe die eine Zeile der Form

/dev/sda5: UUID="e31c59a1-04e9-4c5c-96c6-40563213c5ff" TYPE="ext3"
Info.png

Die hier verwendenten UUIDS sind natürlich alle nur Beispiele

die Konfigurationsdatei von grub anpassen

nano /boot/grub/menu.lst

mittels STRG+W kann nach UUID gesucht werden. Folgende Zeilen sind zu ändern:

# kopt=root=UUID=8464f019-a730-48da-906d-b3ac9cdce78f ro

zu

kopt=root=UUID=e31c59a1-04e9-4c5c-96c6-40563213c5ff ro quiet splash

Damit wird bei einem Kernel Update sichergestellt das die richtige Partition zum booten genutzt wird. Am Ende der Datei befinden sich noch zwei Einträge die die eigentlichen Menü Eintrage im Bootloader definieren. Auch hier muss die UUID zwingend angepasst werden, so wird aus

kernel          /boot/vmlinuz-2.6.28-15-generic root=UUID=be36f1de-7483-4b3a-9fe2-9b11658e47af ro quiet splash

dann

kernel          /boot/vmlinuz-2.6.28-15-generic root=UUID=e31c59a1-04e9-4c5c-96c6-40563213c5ff ro quiet splash

Wer sein Windows ebenfalls noch starten will der muss am Ende der menu.lst noch folgendes ergänzen:

title         Windows 95/98/NT/2000
root          (hd0,0)
makeactive
chainloader   +1


mit STRG+o wird die Datei dann gespeichert.Zum Abschluss muss dann Grub in den MBR der Festplatte geschrieben werden.

grub-install --no-floppy --root-directory=/mnt/dest/ /dev/sda

fstab anpassen

Nachdem grub konfiguriert und installiert ist, muss nur noch eine Datei angepasst werden. Es mussen die UUIDs von /dev/sda5 und /dev/sda6 in die fstab eingetragen werden, zu ermitteln mit blkid

nano /etc/fstab
# Root des Dateisystems /dev/sda5
UUID=e31c59a1-04e9-4c5c-96c6-40563213c5ff /               ext3    relatime,errors=remount-ro 0       1
# Swap /dev/sda6
UUID=88b99a3c-b709-45dd-a5da-3ffd49eb215d none            swap    sw              0       0

Speichern, fertig. Mit STRG+D kann das chroot verlassen werden. Nach einem Neustart sollte jetzt das Menü von Grub erscheinen.

Bei Problemen

Falls nichts mehr geht, es gibt eine Diskussionsseite zu diesem Artikel und hoffentlich ein Backup.

Links