weidner/archives/2012/11/

Eine Ubuntu 12.04 Xen DomU aufsetzen

Dieses Jahr ist die LTS Version 12.04 von Ubuntu erschienen, mit der ich Xen-Hostserver eingerichtet habe. In diesem Artikel beschreibe ich kurz wie ich darauf Ubuntu 12.04 DomUs aufsetze. Zwar hatte ich genug Anleitungen dafür im Internet gefunden, aber da ich den Prozess etwas angepasst habe, schreibe ich hier noch einmal die einzelnen Schritte nieder.

Ubuntu Netboot-Image besorgen

Als erstes habe ich mir ein Netboot-Image besorgt, mit dem ich das Betriebssystem in der DomU installiere. Dieses liegt an zentraler Stelle, damit ich es bei anderen Installationen wiederverwenden kann.

$ sudo mkdir -p /var/lib/xen/images/ubuntu-netboot-12.04
$ cd /var/lib/xen/images/ubuntu-netboot-12.04
$ ARCHIV="http://archive.ubuntu.com/ubuntu/dists/precise"
$ sudo wget $ARCHIVE/main/installer-amd64/current/images/netboot/xen/vmlinuz
$ sudo wget $ARCHIVE/main/installer-amd64/current/images/netboot/xen/initrd.gz

Das waren auch schon die Vorbereitungen für alle Ubuntu 12.04 DomUs. Was folgt, ist für jede Einzelne zu erledigen.

Betriebssystem auf der DomU installieren

Zunächst schaffe ich Platz für die DomU. Ich verwende LVM2 für die Partitionen der DomU und benutze daher lvcreate, um den Platz zu reservieren. Dann lege ich eine provisorische Konfigurationsdatei an, die ich so nur zum Installieren des Betriebssystems verwende.

$ sudo lvcreate -L 4G -n ubuntutest /dev/xendomu
$ sudo vim /etc/xen/ubuntutest.cfg

Die Konfigurationsdatei sieht für dieses Testsystem nun so aus.

name = "ubuntutest"
memory = 256
disk = ['phy:/dev/xendomu/ubuntutest,xvda,w']
vif = [' ']
kernel = "/var/lib/xen/images/ubuntu-netboot-12.04/vmlinuz"
ramdisk = "/var/lib/xen/images/ubuntu-netboot-12.04/initrd.gz"
extra = "debian-installer/exit/always_halt=true -- console=hvc0"

Die DomU startet zunächst mit dem Kernel und der InitRD des Netboot-Images, die ich vorher geholt habe. Das Netzwerkinterface habe ich nicht gesondert spezifiziert, so dass es entsprechend den Default-Einstellungen in einem separaten virtuellen LAN mit DHCP und NAT auf dem Host landet. Diese Installations-DomU starte ich nun und hole mir dabei gleich die Konsole.

$ sudo xm create -c ubuntutest.cfg

Nun kann ich das System mit dem Ubuntu-Installer installieren und die benötigte Software (auf jeden Fall SSH-Server) einrichten.

Einrichtung abschließen

Wenn die Installation des Betriebssystems fertig ist, beendet der Installer die Maschine und ich kann die Xen-Konfiguration anpassen.

$ sudo vim /etc/xen/ubuntutest.cfg

Dort trage ich nun das folgende ein:

name = "ubuntutest"
memory = 256
disk = ['phy:/dev/xendomu/ubuntutest,xvda,w']
vif = ['bridge=xenbr0']
bootloader = "pygrub"

Da die Maschine direkten Kontakt zum umgebenden Netzwerk haben soll, verwende ich jetzt eine Bridge als virtuelles Netzwerkinterface. Anstelle von Kernel-, Ramdisk- und Extra-Parametern verwende ich jetzt pygrub zum Starten der Maschine, der sich um alles andere kümmert.

Ich starte die Maschine wieder, diesmal allerdings brauche ich die Konsole nicht.

$ sudo xm create ubuntutest.cfg

Schlussbemerkungen

Da ich in der ursprünglichen Konfiguration keine Bridge verwendet habe, nimmt Xend die Standardkonfiguration, ein virtuelles LAN mit NAT. Da zu dieser Zeit sowieso nur der Installer läuft, ist das auch nicht weiter tragisch. Will ich das Netz gleich von Anfang an wie im späteren Einsatz haben, dann kann ich das natürlich auch gleich am Anfang so in die Konfigurationsdatei schreiben.

Updates

2015-7-29

Es gibt auch einen Artikel für die Installation von Ubuntu 14.04 als Xen-DomU.

Posted 2012-11-23
Tags: