Teil 2 – Xen kompilieren
Hier nun der zweite Teil des Minihowtos. Dieses mal wollen wir zu dem in Teil 1 gebauten Kernel noch das passende Xen obendrauf packen. Vorweg, ich setze hier voraus, dass ein Internetzugang besteht. Ich hatte leider in manchen Umgebungen das Pech, offline den Spaß bauen zu dürfen. Das gestaltet sich schwierig, weil während des Make prozesses noch versucht wird ein git-pull anzustellen – ich frage mich, für was ich dann ein Source-tar-gz runterlade… aber mit Internet ist das alles halb so wild, daher nun gleich an den Text. Es gilt mal wieder „works for me“ – Anregungen und Korrekturen sind stets willkommen.
Zuerst einmal enstprechende Pakete installieren, die wir für das Bauen von Xen benötigen
yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk \ mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel \ gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial glibc-devel dnsmasq \ python-devel yajl texinfo yajl-devel
Danach laden wir die entsprechend aktuellen Xen-Sourcen herunter und packen sie aus:
cd Downloads/ wget http://bits.xensource.com/oss-xen/release/4.2.0/xen-4.2.0.tar.gz tar -xzvf xen-4.2.0.tar.gz cd xen-4.2.0
Da wir auf einem 64bit System unterwegs sind und evtl. die Firewall (z.B. in Firmen) Probleme bereiten könnte, sagen wir beim Configure, dass Xen seinen git pull über http durchführen soll und die Libraries in „/usr/lib64“ liegen. Mit
./configure --enable-githttp --libdir=/usr/lib64 make -j9 xen (die 9 durch 'Anzahl der Kerne im System +1' ersetzen)
…lassen wir Xen bauen.
... make[5]: Entering directory `/root/Downloads/xen-4.2.0/xen/tools' make[5]: `symbols' is up to date. make[5]: Leaving directory `/root/Downloads/xen-4.2.0/xen/tools' make[4]: Leaving directory `/root/Downloads/xen-4.2.0/xen/tools' __ __ _ _ ____ ___ \ \/ /___ _ __ | || | |___ \ / _ \ \ // _ \ '_ \ | || |_ __) || | | | / \ __/ | | | |__ _| / __/ | |_| | /_/\_\___|_| |_| |_|(_)_____(_)___/ make[3]: Leaving directory `/root/Downloads/xen-4.2.0/xen' [ -e include/asm ] || ln -sf asm-x86 include/asm make -f /root/Downloads/xen-4.2.0/xen/Rules.mk -C include make[3]: Entering directory `/root/Downloads/xen-4.2.0/xen/include' ...
Danach bauen wir die Tools und installieren Xen entsprechend:
make -j9 tools make stubdom make install-xen make install-tools make install-stubdom
Wenn alles durchgelaufen ist, müssen wir noch den Bootloader anpassen. In diesem Fall ist das Grub. Man kann den Menüeintrag, den der Kernel aus dem ersten Teil des Howtos angelegt hat, kopieren und anschließend anpassen. Als Kernel wird nun das Xen.gz angegeben. Wichtig: der alte Kernel wird fortan hinter „module“ geführt. Der neue Menüeintrag kann dann z.B. so aussehen:
title Xen 4.2.0 Test root (hd0,0) kernel /xen4.2.gz dom0_mem=512M loglvl=all guest_loglvl=all module /boot/vmlinuz-3.6.5 root=/dev/sda1 ro nomodeset console=tty0 module /boot/initramfs-3.6.5.img
Bei einem Reboot sollte nun ein Xen booten, dass auf dem von uns gebauten Kernel aufsetzt. Um das ganze zu testen, kann man erstmal mit
/etc/init.d/xencommons start
und
xl info
schauen, ob alles läuft. Später dann die entsprechenden Daemons automatisch starten lassen. Wenn man das alte „xm“ Kommandoschema nutzen möchte, muss man noch Xend starten.
Sollte einem die Konsole abhanden kommen, kann man einfach per „tcsh -l“ eine neue Shell starten, oder man loggt sich einfach neu ein.
Cooler Blog.. und gute Anleitung .. 😉 gruss.. CP
Also getestet.. funzt super.. aber nur OHNE X Server.. also nur mit CLI.. gruss CP