KVM

Aus Vosp.info
Wechseln zu: Navigation, Suche

Headless Windows mit KVM

libvirt

Basic commands

KVM-Maschine auf der lokalen Maschine steuern

starten

virsh --connect qemu:///system  start win-10-2-ISO

Herunter fahren per ACPI

virsh --connect qemu:///system  shutdown win-10-2-ISO

Maschine abschalten (Stecker ziehen)

virsh --connect qemu:///system  destroy win-10-2-ISO


VM erstellen

http://bart.vanhauwaert.org/hints/installing-win10-on-KVM.html

Vorher herunter laden https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso Die Seite bietet auch nützliche Infos https://docs.fedoraproject.org/quick-docs/en-US/creating-windows-virtual-machines-using-virtio-drivers.html
Bei der Installation muss im Partitionsprogramm des Installers der virtio-Treiber von der virtio-win.iso geladen werden.(Siehe bart.vanhauwaert.org)

Das Beispiel nutzt eine logial volume. (Erstellen mit lvcreate -L75GB <VG-name> -n <LV-name>)

virt-install \
    --name=win-10-1
    --ram=8192 \
    --cpu=host
    --vcpus=4 \
    --os-type=windows \
    --os-variant=win8.1 \
    --disk /dev/mapper/vms-win10,bus=virtio \
    --disk /var/virtualbox/VirtualBoxISOs/Win10_1803_German_x64.iso,device=cdrom,bus=ide \
    --disk /var/virtualbox/VirtualBoxISOs/virtio-win.iso,device=cdrom,bus=ide \
    --network bridge=lxc-out \
    --graphics spice,listen=0.0.0.0

Als bridge nutzen wir die "out"-bridge.
Hostsystem erkunden mit

ip link

Edit config

Nachbearbeitungen am erzeugten XML-File:

virsh edit <vmname>

spice

Verbindungen per VPN sind zu langsam und nicht benutzbar.
Das mag mit den Leitungen zu tun haben, aber es hat mal funktioniert, jetzt nicht mehr,

  • Zugriff auf den Windows-Host mit Spice
  • Ein Linux-User, der direkt und Fullscreen in das Windows einloggt.

virsh edit <vmname>

<graphics type='spice'/>
               
<video>
    <model type='qxl'>
</video>

$vmname-config ertellen

  • ToDo
remote-viewer $vmname-config

spice-guest-tools

  • Install "spice-guest-tools" von

https://spice-space.org/download.html

  • Bringt den "qxl-Treiber" für die Grafik mit
  • "spice-agent" für copy-and-paste sowie resolution switching

Clients

spice-viewer-gtk

Nur als proof-of-concept gedacht, funktioniert er momentan besser (auch lokal) als der remote-viewer.

spicy -h 192.168.2.40 -p 5900

remote-viewer

Verbindungsaufbauten dauern im Vergleich zu spicy eine gefühlte Ewigkeit.

remote-viewer  spice://<Host-IP>:<Port>
Linux-Spice User
  • Slim umstellen, dass beim Login die .xinitrc ausgeführt wird.
  • remote-viewer config

~/$vmname-config

[virt-viewer]
type=spice
host=<your-host>
port=<your-port>
fullscreen=1
password=<your-password>

~/.xinitrc

#!/bin/sh
remote-viewer $vmname-config

VNC

Ist als Tool im lokalen Netz eine brauchbare Alternative.
Achtung: Sicherheitsbedenken!

Keymap

Das deutsche Tastaturlayout
virsh edit <vmname>

  • In die Zeile
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>

"keymap='de'" hinzu fügen.

KVM mit LVM

Zwei LVs mit virtio

Im folgenden Beispiel wurden zwei Logical Volumes vom Host der Maschine zur Verfügung gestellt.
Für gute I/O-Performance.
Wichtig ist, das im Gast folgende Treiber geladen sind.

virtio, virtio-blk, virtio-pci
Wichtig: ohne boot=on startet der Gast nicht, wenn if=virtio als Option mitgegeben wurde.
kvm -m 1000 -boot c -drive file=/dev/debpc/kvm1,if=virtio,boot=on,cache=none -drive file=/dev/debpc/kvm1-swap,if=virtio,cache=none

LV im Host mounten

Das vom der VM genutzte LV enthält eine Partitionstabelle.
Um das LV dennoch im Host einbinden zu können, muss die Partitionstabelle des LVs erst dem Host bekannt gemacht werden

kpartx -a -v /dev/<vg>/<lg>
-a => active
-d => deactivate
-v => verbose

Danach sind mehr /dev/dm-<123> im System wie vor dem Aufruf. Welcher der Richtige ist, muss letztlich ausprobiert werden.
Am besten mit dem /dev/dm-<123> mit der höchsten Benennung anfangen.

Links

Meine Tests wurden durch folgende Seite inspiriert.

http://www.carfax.org.uk/docs/qemu-virtio