macOS Mojave in VirtualBox

macOS in einer VM zu installieren ist eine Geschichte voller Missverständnisse. Zumindest auf meiner Seite 🙃

So wäre ich bspw. davon ausgegangen, dass die Hardware – also die “Machine” in “Virtual Machine” – nun ja, “virtuell” sei. Jein, zum Beispiel muss die verwendete Hardware Virtualisierung unterstützen. Geht bei Dir nicht? Pech gehabt. Und der Prozessor muss (!) von Intel sein. Klar, Apple hatte nie AMD-Prozessoren, warum sollte OS X die unterstützen. Mein Missverständnis an der Stelle: Der reale Prozessor wird nicht zu 100% weg-emuliert. Man kann für VirtualBox-VMs zwar ein wenig die CPU spezifizieren, aber trotzdem keine Chance (Stichwort “Stuck at End RandomSeed”).

Also kein VirtualBox. Es gibt eine Anleitung bei heise+ für macOS unter Windows mittels Qemu – die Idee: Windows 10 kann Linux, Linux kann KVM, und dafür gibt’s Skripte um macOS laufen zu lassen (siehe auch). It’s VMs all the way down, und das ist das nächste Problem: Windows 10 kann keine “Nested Virtualization” – für AMD. Also nächstes Missverständnis: Nur, weil Deine Hardware und Deine Software grundsätzlich Virtualisierung können, heißt das noch lange nichts, auch Dein OS muss das können.

Deshalb war ich zwischenzeitlich auf ein MacBook umgestiegen, um dort macOS Mojave (aka 10.14) als VM in Catalina (aka 10.15) zu hosten. Einschub: Warum eigentlich Mojave? Weil das das letzte macOS ist, das 32-Bit-Anwendungen erlaubt, und mein Photoshop CS6 ist eine solche. Einschub Ende. Und auf explizit Apple-Hardware sollte das ja alles gehen, richtig? Nein, und das ist das nächste Missverständnis. Dieselben Probleme, “End RandomSeed”. Ausprobiert mit einem aktuellen VirtualBox 7.

Dieser Artikel hier nun nennt explizit Mojave und VirtualBox 6.1.26, ok, probieren wir das auch noch mal aus. Und siehe da: Es geht!

Nächstes Missverständnis also offenbar: Was mit VirtualBox 6.1.26 geht/ging, geht auch mit VirtualBox 7.x. Bzw. wo für Windows zu viel Hardware an die VM durchgereicht wurde, war es hier zu wenig, denn die Hardware ist halt von Apple 🙂

Aber nun wollte ich es wissen; Gegenprobe: VirtualBox 6.1.26 auf Windows 11. Startet erst gar nicht:

Das soll mit 6.1.28 wohl behoben sein, aber da kommt dieselbe Meldung. Offenbar kann sich das mit anderer installierter Software ins Gehege kommen, bspw. besagtem Subsystem für Linux, was vom Versuch weiter oben noch installiert ist 🙂 Aber auch ohne das geht es nicht, keine Ahnung. Windows halt. Die “Weiteren Informationen” sagen, man solle die Speicherintegritätsprüfung deaktivieren, aber das klingt mir zu kritisch.

Naja, als nächstes probiere ich Big Sur (aka 11, aka 10.16) als Host, denn das ist das letzte macOS, das auf dem Host-MacBook noch läuft.

Update: Apropos “Emulieren”, es gibt hier einen Artikel, wie man x86 auf den aktuellen ARM-Prozessoren von Apple emuliert – habe ich noch nicht ausprobiert.

Vagrant Invalid value VBOXSVGA

VBoxManage.exe: error: Error in (line 120) — Invalid value ‘VBOXSVGA’ in Display/@controller attribute.

Kann offenbar passieren, wenn eine VM unter Linux erstellt und dann unter Windows gestartet wird. Lösung: Die .ovf-Datei der VM öffnen, und

in

ändern. Beides von hier.

Vagrant: Timeout mit apt-get

Der Fehler

aus einem Puppet, hier der bemängelte Teil:

kann mit mehr RAM behoben werden. Folgendes in’s Vagrantfile:

Quelle indirekt.

Windows Phone 8 Emulator in Parallels

Wenn man endlich den Windows Phone Emulator (in Parallels) starten darf, wird man von dieser Meldung empfangen:

The Windows Phone Emulator wasn’t able to create the virtual machine: Generic failure*

*Die Deutsche Version lautet genauso, nur der “Generic failure” ist ein “Allgemeiner Fehler”

Der Grund ist im Wesentlichen, dass der Emulator eine virtuelle Machine ist – die man in einer virtuellen Maschine starten will. Das geht nicht zwingend; das Buzzword lautet “Nested Virtualization” (“Verschachtelte Virtualisierung”). Ein entsprechender Eintrag in der Parallels Knowledgebase (gefunden hier und hier) empfiehlt Folgendes:

  • Mindestens 4, besser 8GB RAM auf dem Mac
  • Parallels 8, möglichst aktuell – Richtig: Parallels 6 scheitert an verschachtelter Virtualiserung!
  • Windows 8 Pro x64
  • Die VM sollte auf 1 CPU laufen:

  • “Nested VT” muss aktiviert sein. Achtung:
    • wird nur angezeigt, wenn die CPU das unterstützt
    • kann man nur aktivieren, wenn die VM aus ist
    • UPDATE: wenn Parallels aktualisiert wurde, muss die VM evt neu installiert werden, damit die Option angezeigt wird. Das geht so weit, dass sogar das Intel Tool behauptet, dass die CPU das nicht unterstützt. Ein Blick in deren Datenbank schafft Klarheit

  • Windows’ “Hyper-V-Manager” starten, links den PC auswählen, unter “Virtuelle Computer” den Emulator auswählen (wenn er nicht erscheint: Visual Studio starten, Emulator starten), rechts auf “Einstellungen”, Prozessor, “Anzahl virtueller Prozessoren” (kann man nur ändern, wenn der Emulator aus ist): “1” einstellen:

  • Emulator starten 🙂

PS: Um herauszufinden, ob der Prozessor Nested VT unterstützt, kann man entweder entsprechende Tools (zum Beispiel das “Intel Processor Identification Utility”) nutzen, oder in die “Windows-Features” gehen: “Hyper-V” muss aktivierbar und aktiviert sein.

Windows 8 Update als Clean Install in Parallels 6 [UPDATE]

Ausgangssituation: Ein Parallels 6 mit Windows XP. Wunsch: Ein möglichst günstiges Windows 8 Pro 🙂 PS: Bootcamp kann offiziell noch nicht mit Windows 8 umgehen.

Ab inklusive XP bietet Microsoft noch bis Ende des Monats ein Upgrade für 29,99 € an – allerdings unterliegt das einigen Einschränkungen, und es stellen sich die folgenden Fragen:

  1. Es handelt sich um eine reine Download-Version (die DVD kostet 10 Euro plus Versand extra), die als Dateiordner abgelegt wird – man benötigt zum Download also ein Windows. Schöner wäre ein bootfähiges ISO.
  2. Parallels 6 ist alt (aktuell ist Version 8), und nirgendwo ist offiziell dokumentiert, ob Win 8 unterstützt wird… aber ein neues Parallels wäre teurer als Windows 8 selbst 🙂
  3. Es muss ein aktiviertes Windows XP (oder höher) installiert sein, nicht nur zum Download, sondern vor allem auch zum Ausführen des Upgrades – schöner wäre eine “cleane” Installation auf ein frisches System

Die Lösung für Punkt 1 findet sich auf heise.de (ein erfolgter Download des Upgrades vorausgesetzt)

  • imgburn runterladen
  • C:ESDWindows als Quelle auswählen (Achtung, der Ordner ist versteckt)
  • Unter Advanced/Bootable Disc/”Boot Image” die Datei C:ESDWindowsbootetfsboot.com auswählen
  • “Sectors To Load” von 4 auf 8 ändern
  • Brennvorgang starten; im Dialog mit “Ja” antworten, um statt des Ordners seinen Inhalt zu brennen

Zu Punkt 2: Die gebrannte Disc/das erstellte Image funktioniert in Parallels 6. Das erkennt das zu installierende System zwar nicht automatisch, aber die manuelle Wahl von “Windows 7” funktioniert völlig. Win 8 wird installiert, auch ohne, dass eine Windows-Installation vorhanden ist. Es gibt eine Anleitung dazu, aber alles ist ziemlich straight forward. UPDATE: Wichtig ist der Hinweis (der in der Parallels-Hilfe unfairerweise entfernt wurde), dass man im Menü unter Virtual Machine/Configure/Hardware/Boot flags das Folgende einträgt:

devices.video.pci_device_id=0×5005

Andernfalls bekommt man nach Installation der Parallels Tools einen schwarzen Bildschirm. Ich konnte das auch nachträglich noch eingeben.

Aber, und das ist quasi auch Punkt 3: Man muss ein wenig Hand anlegen, um das auf diese Art installierte Win 8 auch aktivieren zu können (auf heise gibt’s eine Kurzanleitung, die längere ist hier):

  • Metro-Ansicht öffnen (dazu auf dem Desktop nach unten rechts fahren, “Start” wählen)
  • regedit suchen (einfach lostippen, das öffnet automatisch die Suche)
  • Folgenden Schlüssel ändern: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupOOBEMediaBootInstall auf 0
  • Eingabeaufforderung suchen
  • Rechtsklick, als Admin ausführen
  • “slmgr /rearm” eingeben
  • neu starten

Den Aktivierungsstatus kann man dann in der Systemsteuerung einsehen: Metro-Ansicht, “Systemsteuerung” eingeben, Punkt “System” öffnen, unten unter “Windows-Aktivierung”

Next step: Windows Apps UPDATE: Leider läuft der Windows Phone Emulator nicht in Parallels 6