Ich habe es schon unter VirtualBox am laufen und im Artikel “Ein echtes OS unter VirtualBox?” beschrieben. Mich hat es aber genervt, dass es unter qemu nicht funktionieren wollte. Also habe ich angefangen zu lesen und zu testen und siehe da, es bewegt sich doch! Tja, sogar teilweise viel einfacher, als unter VirtualBox, aber drauf kommen muss man da erst einmal!
Ich habe mit Absicht einen anderen Titel als in dem VirtualBox Artikel gewählt, da ich hier einfach noch ganz anderes Potential sehe! Aber dazu gleich mehr.
Nutzen
Ja, die Frage hinter so ziemlich allem. Warum soll man das eigentlich machen?
Ganz einfach. Wie schon in dem verlinkten Artikel geschrieben, ging es mir in erster Linie um das auf einer extern installierten Festplatte Windows 10. Ich benutze es ausschliesslich zum spielen und von daher, wenn ich da ein Spiel installiere, oder alleine Windows mal wieder ein Update machen will, musste ich erst Windows booten und dann war mein Rechner für das, was ich normalerweise so mache, blockiert. Das gefiel mit nicht!
Deshalb der Gedanke, warum denn nicht ein nativ installiertes OS in einer virtuellen Umgebung booten? Spielen funktioniert da zwar nicht so toll, aber die Updates und Installationen kann man doch machen, ohne den ganzen Rechner durch ein ansonsten für mich nutzloses OS zu blockieren!
Leider fand ich ja zuerst nur Informationen, wie man eine physische Festplatte unter VirtualBox betriebsbereit machen kann. Ich benutze aber in der Regel qemu, um etwas zu virtualisieren. Von daher wollte ich natürlich auch eine Lösung für qemu.
Gut, die habe ich ja nun gefunden und ich muss sagen, ich sehe da recht grosses Potential drin! Zum Beispiel kann man theoretisch (ich habe es noch nicht versucht!) eine leere Festplatte einbinden, ein OS drauf installieren und die Platte dann in einen anderen Rechner bauen. Das hätte den Vorteil, man könnte beispielsweise ein Gentoo, was ja ewig zum installieren braucht, da alles compiliert wird, auf einem schnellen Rechner installieren und dann in einen anderen Rechner einbauen. Klar, da müssten dann noch ein paar Anpassungen vorgenommen werden, aber wahrscheinlich geht es dennoch schneller.
Man kann es aber auch benutzen, um ein OS zu prüfen, würde ich mal sagen. Obwohl da die Frage ist, ob der Einsatz eines Live-OS nicht effizienter wäre. Eine Möglichkeit wäre es dennoch.
Aber alleine schon, dass man beide OS gleichzeitig benutzen kann, halte ich persönlich für einen grossen Vorteil!
Die richtigen Parameter
Wie immer bei qemu, kommt es schlussendlich nur auf die Wahl der richtigen Startparameter an. Ich nehme einfach meine Konfiguration als Beispiel. Da ist Windows auf einer externen Festplatte, welche bei mir unter
/dev/sdf
zu finden ist.
Nach einigen Experimenten habe ich die Lösung, wie man ein solches Laufwerk einbindet, quasi durch Zufall gefunden. Denn, unter Linux ist ja alles eine Datei, inklusive einer physischen Festplatte! Also, warum denn für -hda nicht /dev/sdf4 angeben?
Na, weil es nicht funktioniert! Ich dachte, als -hda gebe ich einfach sdf4 an, weil dort alles notwendige zum booten drauf ist und als -hdb dann sdf2, da dort Windows installiert ist und alles ist toll. Na, falsch gedacht! Korrekt ist tatsächlich so:
-hda /dev/sdf
Der Rest kriegt dann qemu geregelt.
Hier jetzt meine Konfiguration! Virtualisiert wird ein 64-Bit Rechner mit 4 Prozessoren, 4 GB Arbeitsspeicher und einer hda Soundkarte. Ich benutze immer VNC zum anzeigen, da ich dann auch von anderen Rechnern aus darauf zugreifen kann!
qemu-system-x86_64 -m 4096 -enable-kvm -smp 4 -net nic -net user,hostname=realwin10 -vga std -hda /dev/sdf -device virtio-serial -display vnc=:10 -usb -device usb-tablet -soundhw hda
So. Was passiert denn nun, wenn ich es starte? Da ich ein Skript dafür verwende, starte ich es so:
./startwin10.sh
Es passiert folgendes:
Ja, was ist denn da passiert? Ganz einfach! Der normale Benutzer des Systems darf nicht mal eben auf die Laufwerke zugreifen! Wäre ja noch schöner. Ergo:
sudo ./startwin10.sh
Dann sieht das so aus:
Ach ja, UEFI. Ich habe es nie gebraucht, aber jetzt ist es da und irgendwie will Windows nichts mehr anderes! Unter VirtualBox war das ja noch leicht zu regeln, da muss man einfach nur ein Hacken setzen. Bei qemu ist es ein wenig komplizierter!
OVMF
Man muss, wenn man es nicht schon getan hat, OVMF installieren. Wie das für die jeweilige Distribution geht weiss ich nicht, da müsst ihr euch belesen. Sollte ja aber nicht zu schwierig sein.
Nach der Installation besitzt man folgende Datei:
/usr/share/ovmf/x64/OVMF.fd
oder auch
/usr/share/ovmf/OVMF.fd
Das ist ein BIOS, mit der qemu auch UEFI laden kann. In einigen Foren habe ich zwar gelesen, man müsse nur
-boot uefi
beim starten mit angeben, funktioniert hat es bei mir aber nicht. Nur mit OVMF!
Der richtige Parameter für qemu lautet:
-bios /usr/share/ovmf/x64/OVMF.fd
qemu mit UEFI
So. Nachdem das soweit geklärt ist, kann man ja mal alles zusammenbauen und dann erneut testen!
qemu-system-x86_64 -m 4096 -enable-kvm -smp 4 -net nic -net user,hostname=realwin10 -vga std -bios /usr/share/ovmf/x64/OVMF.fd -hda /dev/sdf -device virtio-serial -display vnc=:10 -usb -device usb-tablet -soundhw hda
Ja! Von der Theorie her könnt ihr das so kopieren, in einem Terminal einfügen, sudo davor schreiben und das Laufwerk anpassen und schon läuft die Kiste. Wenn denn der Pfad zu OVMF passt!
Tada! Läuft!
Es fällt aber direkt etwas auf, besonders wenn man es vergleicht!
Links Windows unter qemu, Rechts unter VirtualBox. Die Auflösung ist unter qemu niedriger! Gerade einmal 800×600!
Es lässt sich aber auch nicht ändern! Unter VirtualBox übrigens auch nicht!
Gut, die Auflösung reicht, um Updates zu machen, oder ein Spiel zu installieren. Trotzdem wäre es doch schön, wenn man es grösser machen könnte, oder?
Grund dafür dürfte wohl dieser Treiber sein, den Windows in qemu automatisch lädt. Nebenbei, boote ich Windows, wird automatisch der Nvidia-Treiber geladen. Also der von Nvidia, nicht der den Windows mitbringt!
So. Warum akzeptiert Windows 10, wenn man es direkt unter qemu installiert, eine höhere Auflösung? Das werde ich mir mal anschauen und testen. Wenn ich mehr weiss, dann gibt es einen neuen Artikel!
Fazit
Ich meine, Windows läuft unter qemu etwas weicher, als unter VirtualBox. Das mag an den Einstellungen liegen, oder weil Windows unter qemu nur eine Auflösung von 800×600 hat, oder vielleicht ist es rein subjektiv.
Für mich ist es auf jeden Fall ein Erfolg, da ich nach wie vor qemu bevorzuge! Davon aber abgesehen ist es wohl ziemlich egal, welches Tool man benutzt. Sie funktionieren beide!
Guter Artikel!
Wäre toll, wenn du jetzt noch das mit der GraKa erklären könntest/würdest. Vermutlich gehts da ums Stichwort “passthrough” und “hide virtualos”, oder so iwie … 😉
Was genau meinst du?