Der Hauptgrund für die Anschaffung des neuen PC war, mich intensiv mit Linux zu beschäftigen und die Virtualisierungstechniken auszuprobieren. Beim Kauf habe ich darauf geachtet, dass der Prozessor 64 Bit-fähig ist und Hardwarevirtualisierung unterstützt. Beides ist beim Intel Core 2 Duo E6400 der Fall.

Bei der Virtualisierung geht es vereinfacht gesagt darum, innerhalb eines Betriebssystems weitere Betriebssysteme auszuführen. So kann beispielsweise Linux in einem Fenster auf dem Windows-Desktop laufen oder umgekehrt.

Intel implementierte die Virtualisierungstechnik unter dem Namen Intel VT (auch Vanderpool) und AMD unter dem Namen AMD-V (auch Pacifica).

Als Host wird das Basisbetriebssystem bezeichnet. Virtualisierte Systeme nennt man Gäste. Ein Gastsystem kann entweder para- oder hardwarevirtualisiert laufen:

Ich konzentriere mich bei meinen Tests auf HVM, da ich so praktisch beliebige Betriebssysteme von Grund auf, unmodifiziert, installieren kann.

Siehe auch: Vergleich der verschiedenen Virtualisierungslösungen.

Installation Basissystem

Ubuntu-Linux 6.10 (Edgy Eft) Server 64 bit liess sich problemlos installieren. X-Server und Gnome installierte ich nach, da ich auf eine grafische Oberfläche nicht verzichtet will.

Den Treiber für die Grafikkarte lud ich von nvidia.com herunter. Nach dem leider für jeden Kernel unumgänglichen Kompiliervorgang (solange Nvidia den Quellcode nicht freigibt) lässt sich mit nvidia-settings der Konfigurationsdialog aufrufen, wo auch mehrere Bildschirme konfiguriert und die Temperatur der Karte angezeigt werden können. Um den Grafikkartentreiber zu ändern, muss übrigens nur eine einzige Zeile in /etc/X11/xorg.conf angepasst werden. Nach der Zeile 'Device' einfach bei 'Driver' den Wert 'vesa' (läuft immer, sehr langsam), 'nv' (Open Source-Treiber für Nvidia-Grafikkarten) oder 'nvidia' eingeben. Nur letzterer bietet 3D-Beschleunigung.

Die Unterstützung für Virtualisierung musste ich im BIOS erst aktivieren. Wichtig: Computer danach aus- und wieder einschalten. Ein Warmstart des PC genügt nicht.

XEN 3.0.3

XEN ist in aller Munde, umfassend, aber leider auch sehr komplex. XEN benötigt einen speziellen Kernel für den Host, unter dessen Regie die Gastsysteme laufen. Dieser Kernel lässt sich unter Ubuntu schnell installieren, muss dann aber manuell ins Grub-Bootmenü eingetragen werden. Der Computer kann dann wahlweise mit dem normalen oder dem XEN-Kernel starten. Unglücklicherweise führte der von Ubuntu angebotene XEN-Kernel 2.6.17 auf meinem System zu einem Kernel-Panic und der ältere XEN-Kernel mit Version 2.6.16-11 machte auf meiner brandneuen Hardware Probleme: Den Netzwerkkartentreiber musste ich selber kompilieren, ausserdem erkennt der XEN-Kernel die beiden CD-Laufwerke nicht.

Die beschriebenen Probleme kosteten mich einige Stunden Arbeit und trotzdem waren noch nicht alle Vorbereitungen erledigt. Ich fand, dass es auch einfacher gehen müsste, verliess die XEN-Baustelle und wandte mich KVM zu, siehe nächster Abschnitt.

KVM Version 13

Diese Virtualisierungslösung basiert auf QEMU und benötigt einen Prozessor mit Hardwarevirtualisierungsfunktionen. Im Gegensatz zu XEN kann KVM unter dem Ubuntu-Standardkernel kompiliert werden und lässt sich dann als Modul laden, ohne dass der Host zu irgend einem Zeitpunkt neu gestartet werden müsste.

Es dauerte nicht einmal einen Abend, um KVM zu übersetzen und Windows XP als Gast zu installieren.

Die erstaunlich kurze Beschreibung zur Installation vom KVM befindet sich hier: http://kvm.qumranet.com/kvmwiki/HOWTO.

Ergänzungen zum Howto: Es ist etwas ungenau beschreiben, was zu installieren ist: gcc-3.4, libsdl1.2debian, libsdl1.2-dev, zlib1g, zlib1g-dev, alsa-base, alsa-utils, libuuid1, uuid-dev.

Punkt 1 (KVM übersetzen und Modul laden):

Punkt 2 (Datei generieren, welche als virtuelle Festplatte dient):

Punkt 3 (Windows als Gast installieren):

Punkt 4 (Gast starten):

Damit das virtuelle Windows automatisch via DHCP eine IP-Adresse von meinem ADSL-Router beziehen kann, muss vorgängig auf dem Linux-Host eine Bridge gemäss Anleitung auf http://kidsquid.com/cgi-bin/moin.cgi/bridge eingerichtet werden:

#!/bin/sh
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
sudo /usr/sbin/brctl addif br0 $1

Der Gast muss danach mit zusätzlichen Parametern gestartet werden: -net nic,vlan=0 -net tap,vlan=0

Kategorien:  Linux   |   Software

Kommentar von qwertz   02.03.2007 14:46:14
--with patched-kernel kannst du nicht weglassen, weil der ubuntu kern auch gepatcht ist ;-) zum image erstellenb von irgendwelchen physichen laufwerken nimmt man dd und nicht cp. ich danke für dein posting und werde es nach dem xen versuch mal probieren.

Kommentar von Rolf   03.03.2007 09:50:05
--with-patched-kernel klappt erst mit Kernel 2.6.20, welcher KVM-Funktionen integriert hat. Ubuntu Edgy verwendet aber noch den 2.6.17.

Ich habe bewusst das Kommando cp verwendet, weil es einfacher zu schreiben ist als dd und zum gleichen Resultat führt.

Kommentar von mark   30.04.2007 18:27:50
--with-pachted-kernel funktionierte mit dem 2.6.20-15 auch nicht, wenn beim Compilieren asoundlib.h fehlen sollte muss das Paket libasound-dev nach installiert werden, sudo make install funktionierte in meinem Fall ( Version kvm-12.tar.gz, Feisty, 2.6.20-15 ), und danke, die Anleitung erspart lange Suche im Netz



Ueber 1000 Zeichen lange Kommentare werden gekürzt, HTML ist nicht erlaubt.
Themafremde Kommentare werden gelöscht.

Kommentar:

Name oder Pseudonym:

Nutzungsbedingungen annehmen