Hallo zusammen,
UEFI hat so einige Vorteile (allen voran der Boot von GPT Formatierten Partitionen, sprich mehr als 2 TB), auf die ich hier nun aber nicht eingehen möchte. Das hier soll nur eine sehr kurze "Information" sein, für die, die genau das versuchen. Was genau ist "das"? Windows oder Linux per UEFI/OVMF zu starten.
Vor einiger Zeit habe ich auf einem TS-877XU-RP zwei Virtuelle Windows 2012 R2 installiert. Aus verschiedenen Gründen "mussten" diese UEFI haben. QNAP bietet das in den Einstellungen nicht an, da das System aber auf QEMU/KVM basiert und QNAP im Prinzip die fertigen Pakete genommen hat, kann man z.B. eine mit UEFI in VirtualBox gebaute Virtuelle Maschine relativ problemlos importieren.
Probleme gibt's aber wenn man z.B. etwas an der Maschine ändert. Festplatte vergrößert, mehr Arbeitsspeicher oder ähnliches. Denn QNAP hält sich da nicht so ganz an das, was das QEMU/KVM Manual vorgibt und schreibt die XML-Konfigurationen "zweimal".
QNAP schmeißt dann den Befehl, dass die Virtuelle Maschine per UEFI bootet einfach aus der Konfiguration und man bekommt von SeaBios die schöne Meldung "No bootable devices found". Logisch, UEFI bootet per GPT und nicht per MBR.
Hier kurz die Schritte, um das ganze wieder gerade zu ziehen (oder aber um direkt auf dem NAS eine Maschine mit UEFI-Boot einzurichten - oder sogar "ordentliches" PCIe-Passthrough zu machen, wofür i440FX nicht benutzt werden sollte)
- Per SSH auf das NAS Verbinden
-
export LD_LIBRARY_PATH=/QVS/usr/lib:/QVS/usr/lib64/ export PATH=$PATH:/QVS/usr/bin/:/QVS/usr/sbin/ eintippen/einfügen, damit die virsh befehle erkannt werden
- mit virsh list -all herausfinden, welche Virtuelle Maschine man überhaupt bearbeiten möchte. QVS benutzt dafür nicht die eigentlichen Namen der VMs, sondern die UUIDs. Die stehen auch im Intereface der Virtualization Station
- mit virsh edit VMName/UUID öffnet sich VIM und man kann die XML-Datei die QEMU benutzt direkt editieren. Aus mir unerfindlichen Gründen werden die Änderungen an der XML-Datei im Ordner der VM auf der Festplatte ignoriert.
- In VIM scrollt man dann zur Zeile mit <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>. Das ist übrigens auch die Zeile, in der man den Maschinen Typ ändern kann - also ob i440FX oder Q35. Die Zeile müsste dann <type arch='x86_64' machine='pc-q35-2.3'>hvm</type>" heißen. Dadurch möchte aber z.B. ein schon laufendes Windows noch mal aktiviert werden. Das reale äquivalent wäre ein Wechsel des Mainboards. Daher hab ich das bis jetzt noch nicht auf dem QNAP ausprobiert (auf Proxmox und anderen Hypervisors aber sehr wohl, das funktioniert dort)
- Nun fügt man unter diese Zeile noch <loader type='rom'>/QVS/usr/share/qemu/OVMF.fd</loader> ein. Diese Zeile fliegt bei jeder Änderung der VM einfach raus.
- VIM Befehle sind "i" um etwas direkt an die Cursorposition zu schreiben, ESC um aus dem Edit-Modus wieder heraus zu kommen und ":x" um die geänderte Datei zu speichern.
Damit lässt sich die Maschine wieder starten und man bekommt statt SeaBios, TianoCore zu sehen. Dazu muss man aber auch noch erwähnen, dass die LibVirt Version die QNAP benutzt steinalt ist und das ganze inzwischen anders funktioniert bzw. deutlich einfacher ist.
Nexusband