macos-guest-virtualbox.sh ist ein Bash-Skript, das einen MacOS-Gastgast für Virtual Machine auf VirtualBox mit nicht modifizierten MacOS-Installationsdateien erstellt, die direkt von Apple-Servern heruntergeladen werden.
Eine Standardinstallation erfordert nur, dass der Benutzer geduldig sitzt und weniger als zehn Mal die Eingabetaste drücken muss, wenn sie vom Skript aufgefordert werden, ohne mit der virtuellen Maschine zu interagieren.
Getestet an bash und zsh auf Cygwin. Arbeitet auf MacOS, Centos 7 und Windows auf X86-CPUs mit VT-X oder AMD-V. Sollte an den meisten modernen Linux -Distributionen arbeiten.
Derzeit unterstützten MacOS Catalina (10.15), Mojave (10.14) und High Sierra (10.13).
Wenn Sie der Betreuer dieses Repositorys werden möchten, finden Sie in Ausgabe Nr. 645 - Wartung.
Die Dokumentation kann durch Ausführen des Befehls ./macos-guest-virtualbox.sh documentation angezeigt werden
Der Großteil des Skripts ist entweder Dokumentation, Kommentare oder umsetzbare Fehlermeldungen, die das Skript einfach machen sollten, um zu inspizieren und zu verstehen.
iCloud, iMessage und andere verbundene Apple-Dienste erfordern einen gültigen Gerätenamen und eine Seriennummer, die Board-ID und eine Seriennummer sowie andere echte (oder echte) Apple-Parameter. Diese können in EFI und NVRAM durch Bearbeiten des Skripts festgelegt werden. Weitere Informationen finden Sie im Dokumentationsbefehl.
Das Skript weist standardmäßig eine virtuelle Zielspeichergröße von 80 GB zu, die bei der ersten Installation auf etwa 25 GB auf dem Host besiedelt ist. Nach Abschluss der Installation kann die Speichergröße erhöht werden. Weitere Informationen finden Sie im Dokumentationsbefehl.
Die folgenden Primäranzeigeauflösungen werden von macOS auf VirtualBox unterstützt: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1440x900 1280x800 1024x768 640x480 . Weitere Informationen finden Sie im Dokumentationsbefehl.
Der Umfang des Skripts vervollständigt einen Standard -MacOS -Installationsprozess in VirtualBox auf unterstützter Hardware. Eine weitere funktionierende Reihenfolge von VirtualBox oder MacOS liegt außerhalb des Rahmens dieses Skripts. Einige Funktionen können sich unerwartet verhalten, wie beispielsweise USB -Geräteunterstützung, Audiounterstützung, Support -Support und andere Funktionen, einschließlich kritischer Funktionen.
Das Skript ist für X86 -CPU -Mac -Hardware ausgelegt. MacOS -Gäste auf Virtualbox sind im Allgemeinen mit anderen CPU -Modellen nicht kompatibel. Wenn der Gäste -MacOS -Boot -Prozess an "LoadkernelMstream", "Endrandomseed" oder "Exitbs" hängt, siehe Dokumentationsbefehl zu VirtualBox -CPU -Profilen und CPUID -Einstellungen. Einige CPU -Modelle, die 2020 veröffentlicht wurden und später das Installationsprogramm nicht starten oder vervollständigen, müssen möglicherweise die CPUID -Einstellungen manuell angepasst werden.
Die virtuelle Maschine kann durch Software -Update auf die neuesten Versionen von MacOS Big Sur (11) und MacOS Monterey (12) aktualisiert werden. Big Sur kann an Platz installiert werden. Monterey muss möglicherweise ein anderes Volumen an der virtuellen Maschine anbringen und das Volumen als Installationsziel auswählen. Andernfalls ist das Upgrade anfällig für Fehler und Eingeben einer Startschleife.
Nach erfolgreicher Erstellung einer funktionsfähigen macOS -virtuellen Maschine in Betracht, sie in eine leistungsfähigere Virtualisierungssoftware zu importieren oder sie für Konfigurationsmanagementplattformen für die automatisierte Bereitstellung zu verpacken. Diese Virtualisierungs- und Bereitstellungsanwendungen erfordern eine zusätzliche Konfiguration, die über den Umfang des Skripts hinausgeht.
QEMU mit KVM ist in der Lage, virtuelle Maschinenhardware-Passhrough für nahezu native Leistung bereitzustellen. QEMU unterstützt das VMDK Virtual Disk Image Speicherformat, das vom Skript erstellt werden kann. Weitere Informationen finden Sie im Dokumentationsbefehl. QEMU und KVM erfordern eine zusätzliche Konfiguration, die über den Umfang des Skripts hinausgeht.
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, WSL2, WSLG, Windows Sandbox, Speicherintegritätsschutz, Anwendungsschutz, Anmeldeinformationen, Geräteschutz und andere Funktionen und Software blockiert wird. MacOS und das MacOS -Installationsprogramm haben unter NEM -Virtualisierung Probleme mit Speicherbeschäftigung. Das Skript überprüft NEM und beendet eine Fehlermeldung, wenn es erkannt wird.
VirtualBox kann auf WSL2 und WSLG mit einer Kernel -Modulkompilierung ausgeführt werden, obwohl die Leistung extrem niedrig ist. An dem Punkt, an dem die Kernel -Modulkompilierung erforderlich ist, kann es vorzuziehen sein, QEMU/KVM auf WSL2 und WSLG zu verwenden, was Größenordnungen schneller als Virtualbox auf WSL2 und WSLG ist. WSL2, WSLG, QEMU und KVM erfordern eine zusätzliche Konfiguration, die über den Umfang des Skripts hinausgeht.
Der MacOS VirtualBox -Gast ist ohne zusätzliche Bootloader geladen, ist jedoch mit OpenCore kompatibel. OpenCore erfordert eine zusätzliche Konfiguration, die über den Umfang des Skripts hinausgeht.
MacOS unterstützt möglicherweise keine integrierten VirtualBox-Audiocontroller. Der Bootloader OpenCore kann möglicherweise Open-Source- oder eingebaute Audio-Treiber in VirtualBox laden und die Konfiguration für STAC9221 (Intel HD Audio) oder Sigmatel STAC9700,83,84 (ICH AC97) bereitstellen.
VirtualBox liefert keine EDID für seine virtuelle Anzeige, und MacOS aktiviert keine Anzeige Skalierung (hohes PPI) ohne EDID. Der Bootloader OpenCore kann eine EDID injizieren, die die Anzeigeskalierung ermöglicht.
Die VirtualBox EFI -Implementierung lädt die Eingabeaufforderung für Dateivault -Verschlüsselungskennwort für die vollständige Festplattenverschlüsselung beim BOOT nicht ordnungsgemäß. Der Bootloader OpenCore kann die Kennwortaufforderung mit dem auf true eingestellten Parameter ProvideConsoleGop laden. Siehe Beispiel config.plist
Die folgenden Abhängigkeiten sollten über einen Paketmanager verfügbar sein:
bash coreutils gzip unzip wget xxd dmg2img virtualbox
Die folgenden optionalen Pakete bieten eine optische Charaktererkennung, die die erforderliche Interaktion mit dem Skript verringert:
tesseract-ocr tesseract-ocr-eng
Unterstützte Versionen:
Bash ≥ 4,3, an Fenstern laufen Cygwin oder WSL "1", siehe NEMcoreutils ≥ 8,22, Gnu gzip ≥ 1,5, Info-Zip unzip ≥ v6.0, GNU wget ≥ 1,14, xxd ≥ 1,11dmg2img ≥ 1,6,5, auf Cygwin Das Paket ist nicht über den Paketmanager verfügbar, sodass das Skript es automatisch herunterlädt.tesseract-ocr ≥ 4