Push-button installer of macOS on VirtualBox
macos-guest-virtualbox.sh
is a Bash script that creates a macOS virtual machine guest on VirtualBox with unmodified macOS installation files downloaded directly from Apple servers.,
Bei einer Standardinstallation muss der Benutzer nur geduldig sitzen und weniger als zehnmal die Eingabetaste drücken, wenn er vom Skript aufgefordert wird, ohne mit der virtuellen Maschine zu interagieren.
Getestet auf bash
und zsh
auf Cygwin. Funktioniert unter macOS, CentOS 7 und Windows. Sollte auf den meisten modernen Linux-Distributionen.,
Dokumentation
Die Dokumentation kann durch Ausführen des Befehls ./macos-guest-virtualbox.sh documentation
Der Großteil des Skripts besteht entweder aus Dokumentation, Kommentaren oder umsetzbaren Fehlermeldungen, die die Überprüfung und das Verständnis des Skripts vereinfachen sollten.
iCloud-und iMessage-Konnektivität und NVRAM
iCloud -, iMessage-und andere verbundene Apple-Dienste erfordern einen gültigen Gerätenamen und eine gültige Seriennummer, Board-ID und Seriennummer sowie andere echte (oder echte) Apple-Parameter. Diese können in NVRAM durch Bearbeiten des Skripts eingestellt werden., Weitere Informationen finden Sie im Dokumentationsbefehl.
Speichergröße
Das Skript weist standardmäßig eine virtuelle Zielspeichergröße von 80 GB zu, die bei der Erstinstallation auf dem Host auf etwa 25 GB aufgefüllt wird. Nach Abschluss der Installation kann die Speichergröße erhöht werden. Weitere Informationen finden Sie im Dokumentationsbefehl.,
Primary display resolution
The following primary display resolutions are supported by macOS on VirtualBox: 5120x2880
2880x1800
2560x1600
2560x1440
1920x1200
1600x1200
1680x1050
1440x900
1280x800
1024x768
640x480
. See the documentation command for further information.,
Nicht unterstützte Funktionen
Die Entwicklung und Pflege von VirtualBox-oder macOS-Funktionen geht über den Rahmen dieses Skripts hinaus. Einige Funktionen verhalten sich möglicherweise unerwartet, z. B. Unterstützung für USB-Geräte, Audiounterstützung, Unterstützung für die Eingabeaufforderung für FileVault-Startkennwörter und andere Funktionen.
CPU-Kompatibilität
macOS-Gäste auf VirtualBox sind mit einigen CPU-Modellen nicht kompatibel. Wenn der Gast-macOS-Bootprozess an „LoadKernelFromStream“, „EndRandomSeed“ oder „EXITBS“ hängt, lesen Sie den Befehl Dokumentation zu VirtualBox-CPU-Profilen und CPUID-Einstellungen., Bei einigen CPU-Modellen, die 2020 und höher veröffentlicht wurden, muss der Gast möglicherweise auf „Mac OS X (64-Bit)“ anstelle von „macOS 10.13 High Sierra (64-Bit)“konfiguriert werden.
Leistung und Bereitstellung
Nachdem Sie eine funktionierende virtuelle macOS-Maschine erfolgreich erstellt haben, sollten Sie sie in eine leistungsfähigere Virtualisierungssoftware importieren oder für Konfigurationsmanagementplattformen für die automatisierte Bereitstellung verpacken. Diese Virtualisierungs-und Bereitstellungsanwendungen erfordern eine zusätzliche Konfiguration, die über den Umfang des Skripts hinausgeht.,
QEMU mit KVM ist in der Lage, Hardware-Passthrough virtueller Maschinen für nahezu native Leistung bereitzustellen. QEMU unterstützt das virtuelle Disk-Image-Speicherformat VMDK
, das so konfiguriert werden kann, dass es vom Skript erstellt wird. Weitere Informationen finden Sie im Dokumentationsbefehl. QEMU und KVM erfordern eine zusätzliche Konfiguration, die über den Umfang des Skripts hinausgeht.
VirtualBox Native Execution Manager (NEM)
Der VirtualBox Native Execution Manager (NEM) ist eine experimentelle VirtualBox-Funktion., VirtualBox verwendet NEM, wenn der Zugriff auf VT-x und AMD-V durch Virtualisierungssoftware oder Ausführungsschutzfunktionen wie Hyper-V, Windows Sandbox, WSL2, Speicherintegritätsschutz, Geräteschutz und andere Software blockiert wird. macOS und das macOS-Installationsprogramm haben Probleme mit der Speicherbeschädigung unter NEM-Virtualisierung. Das Skript sucht nach NEM und beendet es mit einer Fehlermeldung, wenn es erkannt wird.
Bootloader
Der macOS VirtualBox-Gast wird ohne zusätzliche Bootloader geladen, ist jedoch mit OpenCore kompatibel. OpenCore erfordert eine zusätzliche Konfiguration, die über den Umfang des Skripts hinausgeht.,
Audio
macOS unterstützt möglicherweise keine integrierten VirtualBox-Audiocontroller. Der Bootloader OpenCore kann Open-Source-oder integrierte Audiotreiber in VirtualBox laden,wobei die Konfiguration für STAC9221 (Intel HD Audio) oder SigmaTel STAC9700,83, 84 (ICH AC97) verfügbar ist.
Display scaling
VirtualBox liefert keine EDID für die virtuelle Anzeige und macOS aktiviert keine Display Scaling (High PPI) ohne EDID. Der Bootloader OpenCore kann eine EDID einfügen, die die Skalierung der Anzeige ermöglicht.,
FileVault
Die VirtualBox EFI-Implementierung lädt die Eingabeaufforderung FileVault full disk encryption password beim Booten nicht ordnungsgemäß. Der Bootloader OpenCore kann die Kennwortaufforderung mit dem Parameter ProvideConsoleGop
auf true
laden. Siehe Beispielkonfiguration.plist.,
Dependencies
The following dependencies should be available through a package manager:bash
coreutils
gzip
unzip
wget
xxd
dmg2img
virtualbox
The following optional packages provide optical character recognition that reduces the required interaction with the script:tesseract-ocr
tesseract-ocr-eng
Supported versions:
- VirtualBox ≥ 6.1.,6, obwohl Versionen so niedrig wie 5.2 funktionieren können.
- GNU
Bash
≥ 4.3, unter Windows über Cygwin oder WSL laufen – siehe NEM - GNU
coreutils
≥ 8.22, GNUgzip
≥ 1.5, Info-ZIPunzip
≥ v6.0, GNU ≥ 1.14,xxd
≥ 1.11 -
dmg2img
≥ 1.6.5, bei Cygwin ist das Paket nicht über den Paketmanager verfügbar, sodass das Skript es automatisch herunterlädt. -
tesseract-ocr
≥ 4