Alle Themen betreffend Virtualisierung in diesem Forum drehen sich darum, den VDR in einer VM laufen zu lassen. Ich wollte aber "den anderen Weg", und auf dem VDR eine VM haben. Ausschlaggend dafür ist eine Client/Server-Anwendung für Windows, welche bei mir 24/7 laufen muss, und für die es kein Linux-Pendant gibt. Und da der VDR ja sowieso immer läuft, brauchen wir also eine virtuelle Maschine mit Windows auf dem VDR!
Dass wir auf unseren VDRs oftmals keinen X Server und somit keine grafische Oberfläche haben (was das Einrichten einer VM zum Kinderspiel machen würde), hilft Anfängern wie mir nicht wirklich weiter.
Was wir brauchen: einen VDR (hier getestet mit yaVDR 0.5.0) , und einen weiteren PC (mit Desktop)
Ziel: Windows XP in einer virtuellen Maschine auf dem VDR laufen haben, zu der ausschließlich remote verbunden werden kann
Hilfsmittel: Oracle VirtualBox (von VMWare würde ich abraten, da nach einer Installation und Deinstallation bei mir /etc/init.d/vdr verschwand )
Zuerst benötigen wir eine fertig eingerichtete Windows XP-VM. Dazu installiert man sich VirtualBox (auf dem nicht-VDR), erstellt eine neue virtuelle Maschine, installiert in dieser das Windows XP und richtet es fertig ein. "Fertig" ist die VM, sobald man sicher ist, blind (headless) zu dieser connecten zu können. Am einfachsten erreicht man das per automatischer Anmeldung & z. B. UltraVNC oder Teamviewer.
Über Datei -> Appliance exportieren... die VM in eine *.ova-Datei exportieren und auf den VDR kopieren.
Auf dem VDR:
apt-get install virtualbox
apt-get install virtualbox-ose-dkms (ohne das kann keine VM headless gestartet werden)
VBoxManage import /pfad/zur/vm.ova --dry-run (Überprüfen ob die VM importiert werden kann)
VBoxManage import /pfad/zur/vm.ova (VM importieren)
VBoxManage list vms (Name aller importierten VMs anzeigen, für die Alzheimer-Patienten)
VBoxManage startvm NameDerVM -type headless (starten der VM)
Das Starten der VM dürfte mit einer Fehlermeldung zur Netzwerkkarte quittiert werden. Das liegt daran, das die VM für ihre imaginäre Netzwerkkarte den Treiber des (ursprünglichen) Host-Systems laden möchte, und dieser ist höchst wahrscheinlich nicht auf dem VDR vorhanden.
VBoxManage showvminfo NameDerVM (auslesen der Hardware-Konfig der VM, man beachte die Daten zur Netzwerkkarte unter "NIC 1")
VBoxManage modifyvm NameDerVM --bridgeadapter1 eth0 (NIC 1 soll die Netzwerkkarte des neuen Hosts, also des VDRs benutzen)
VBoxManage startvm NameDerVM -type headless (fertig!)
Die VM sollte nun ohne Fehlermeldung starten, und per Remote-Desktop/VNC/etc. erreichbar sein. Wer schon immer mal ein kleines Windows-Progrämmchen auf seinem VDR haben wollte, zu welchem Zweck auch immer, viel Spaß.
VMs verschieben
Für den Fall das die Root-Partition bei der Installation des VDR klein gehalten wurde, kann es sinnvoll sein, die VMs an einem anderen Ort aufzubewahren. Standardmässig werden diese nach dem Importieren der *.ova-Datei (die dann auch gelöscht werden kann) unter /root/Virtual VMs (wenn VirtualBox mit sudo su installiert wurde) bzw. unter /home/user/Virtual VMs gespeichert.
mv "/root/Virtual VMs" /wo/eben/genug/Platz/ist (Storage der VMs verschieben)
find / -name VirtualBox.xml (Konfigurationsdatei ausfindig machen)
vi VirtualBox.xml -> MachineEntry, sowie defaultMachineFolder auf den neuen Pfad abändern!
VBoxManage list vms (hat alles geklappt, sollten alle registrierten VMs wie gehabt aufgelistet werden)
VM automatisch starten, bei Start des VDR
vi /etc/rc.local
VBoxManage startvm XPVM -type headless (vor dem "exit 0" einfügen)
VM runterfahren, wenn VDR runterfährt
vi /etc/vdr/shutdown-hooks/S90.custom
VBoxManage controlvm NameDerVM acpipowerbutton (ToDo: sleep/pause einbauen damit die VM auch ein paar Sekunden Zeit hat, runterzufahren, aber wie?)