Kategorien
unbezahlte IT-Spielereien

Windows als Gastsystem in Debian-Xen

Nachdem dieser Artikel doch häufiger mal besucht wird möchte ich dann doch mal eine vollständigere Anleitung zur Verfügung stellen, wie man erfolgreich ein Windows zum laufen kriegt.

Das ganze ist so ungefähr step by step, mit dem Ansatz jeweils noch ein paar erläuternde Worte zu finden.

  • in /boot/grub/menu.lst den Kernel-Eintrag sinngemäß folgendermaßen ergänzen:

    kernel /boot/xen-3.0.3-1-amd64.gz dom0_mem=[Speicher in MB]M

    Anscheindend funktioniert die automatische Speicherverwaltung von Xen in Verbindung mit QEMU nicht zuverlässig, mit der Option dom0_mem wird dem Xen-Hypervisor Speicher zugewiesen, der nicht überschritten wird, so kann gesteuert werden, wieviel RAM von den Gästen immer nutzbar ist. Wird der Boot-Eintrg nicht gesetzt, werden Debian-Gäste zuverlässig gestartet und der Speicherbereich vom Hypervisor verringert, Windows-Gäste crashen jedoch, wenn der vorgesehene Speicherplatz nicht vorher bereits frei war.

  • Das erstellen der virtuellen Festplatte geht am schnellsten mit dd, mit

    dd if=/dev/zero of=“/pfad/zum/image“ bs=1M count=1 seek=[Größe in MB]

    wird eine leere Datei der gewünschten Größe erstellt, sinnvollerweise erstellt man von der Windows-CD auch ein Image und kopiert es auf die Festplatte des Xen-Hosts, das durchreichen des CD-Laufwerks ist nicht wirklich schnell.

  • Anschließend wird die Konfigurationsdatei für den Gast gebastelt, funktioniert hat bei mir folgender Aufbau, gespeichert wird die Datei in /etc/xen mit einem Symlink in /etc/xen/auto, damit nach einem Host-Reboot auch der Gast mitgestartet wird:

    kernel = ‚/usr/lib/xen-3.0.3-1/boot/hvmloader‘
    builder = ‚hvm‘
    memory = ‚[Speicher in MB]‘
    device_model=’/usr/lib/xen-3.0.3-1/bin/qemu-dm‘
    vcpus = 1

    disk = [ ‚file:/pfad/zum/disk/image,ioemu:hda,w‘,’file:/pfad/zum/windows/cd/image,ioemu:hdc:cdrom,r‘ ]

    name = ‚[Rechnername]‘

    vif = [ ‚type=ioemu, bridge=xen-br0′ ]

    # Behaviour
    boot=’c‘ [für die Installation stattdessen ‚d‘ verwenden]
    vnc=1
    vncviewer=0
    sdl=0
    shadow_memory = 8
    usb = 1
    usbdevice = ‚tablet‘
    keymap = ‚de‘

    shadow_memory ist hierbei sehr wichtig (warum auch immer…), bei den USB-Geräten ist zu beachten, dass immer nur _eins_ funktioniert – wenn das HID-Device „tablet“ genutzt wird, funktioniert VNC ohne springenden Cursor, mein Windows-Gast ist ein Terminalserver, weshalb ich glücklicherweise nach der Installation komplett auf VNC verzichten konnte – und habe mich daher nicht um das komplett verrupfte Tastaturlayout gekümmert…

  • Normalerweise ist der VNC-Zugriff nur von localhost (=Xen-Host) aus erlaubt, bei einem headless server eher langweilig, um da nicht Lücken in das Sicherheitskonzept zu schlagen, tunnel ich mich immer per ssh auf den Server, was dann ungefähr so aussieht:

    ssh [Benutzer]@[Xen-Host] -L 5900:localhost:5900

    Der erste Gast mit VNC hat den Port 5900, der zweite 5901, … – ihr seid im Bilde.

  • Ab jetzt fängt dann die Microsoft-Welt mit der Installation an, anschließend noch in der Config die Boot-Platte auf ‚c‘ ändern und loslegen – viel Vergnügen!

Ach ja, ich habe mir jetzt die gesamte Basiskonfiguration gespart, wie das Einrichten einer Netzwerk-Bridge, wie man mit xm umgeht, was Xen überhaupt ist, … – dazu gibt es ja glücklicherweise viele funktionierende Anleitungen im Netz, wie diese hier.

Von renke

IT-Ratte (oder Systemadministrator), hat nen neues Spielzeug gekriegt und wird die "Genese" des Servers hier bebloggen.

21 ist nur die halbe Wahrheit.