macos-guest-virtualbox.sh es un script bash que crea una máquina virtual de macOS en VirtualBox con archivos de instalación de macOS no modificados descargados directamente de los servidores Apple.
Una instalación predeterminada solo requiere que el usuario se sienta pacientemente y, menos de diez veces, presione Entrar cuando el script le solicite, sin interactuar con la máquina virtual.
Probado en bash y zsh en Cygwin. Funciona en MacOS, CentOS 7 y Windows en CPU X86 con VT-X o AMD-V. Debería funcionar en la mayoría de las distribuciones de Linux modernas.
MacOS Catalina (10.15), Mojave (10.14) y High Sierra (10.13) actualmente compatibles.
Si desea convertirse en el mantenedor de este repositorio, consulte el problema #645 - Wanterer Wanted.
La documentación se puede ver ejecutando el comando ./macos-guest-virtualbox.sh documentation
La mayoría del script es la documentación, los comentarios o los mensajes de error procesables, lo que debería hacer que el script sea directo para inspeccionar y comprender.
iCloud, iMessage y otros servicios de Apple conectados requieren un nombre de dispositivo válido y un número de serie, ID de placa y número de serie, y otros parámetros de Apple genuinos (o genuinos). Estos se pueden establecer en EFI y NVRAM editando el script. Consulte el comando de documentación para obtener más información.
El script de forma predeterminada asigna un tamaño de almacenamiento de disco virtual de destino de 80 GB, que se pobla a aproximadamente 25 GB en el host en la instalación inicial. Después de completar la instalación, se puede aumentar el tamaño de almacenamiento. Consulte el comando de documentación para obtener más información.
Las siguientes resoluciones de visualización primaria son compatibles con MACOS en Virtualbox: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1440x900 1280x800 1024x768 640x480 . Consulte el comando de documentación para obtener más información.
El alcance del script es completar un proceso de instalación de macOS predeterminado en VirtualBox en hardware compatible. El orden de funcionamiento adicional de VirtualBox o MacOS está más allá del alcance de este script. Algunas características pueden comportarse inesperadamente, como el soporte del dispositivo USB, el soporte de audio, el soporte de contraseña de arranque de FileVault y otras características, incluida la funcionalidad crítica.
El script está diseñado para el hardware X86 CPU MAC. Los invitados de MacOS en Virtualbox son generalmente incompatibles con otros modelos de CPU. Si el proceso de arranque de MacOS de invitado se cuelga en "LoadkernelfromStream", "Endrandomseed" o "Exitbs", consulte el comando de documentación sobre los perfiles de la CPU virtualbox y la configuración de CPUID. Algunos modelos de CPU lanzados en 2020 y más tarde pueden no iniciar o completar el instalador, y pueden requerir ajustar manualmente la configuración de CPUID.
La máquina virtual se puede actualizar a las últimas versiones de MacOS Big Sur (11) y MacOS Monterey (12) a través de la actualización de software. Se puede instalar Big Sur en el lugar. Monterey puede requerir unir otro volumen a la máquina virtual y seleccionar el volumen como objetivo de instalación, de lo contrario, la actualización es propensa a fallar e ingresar un bucle de arranque.
Después de crear con éxito una máquina virtual de MacOS en funcionamiento, considere importarla en un software de virtualización más desempeñada o empaquetarla para plataformas de administración de configuración para la implementación automatizada. Estas aplicaciones de virtualización e implementación requieren una configuración adicional que esté más allá del alcance del script.
QEMU con KVM es capaz de proporcionar un paso de hardware de máquina virtual para un rendimiento casi nativo. QEMU admite el formato de almacenamiento de imagen de disco virtual VMDK , que puede ser configurado para ser creado por el script. Consulte el comando de documentación para obtener más información. QEMU y KVM requieren una configuración adicional que esté más allá del alcance del script.
El VirtualBox Native Execution Manager (NEM) es una característica experimental de VirtualBox. VirtualBox usa NEM cuando el acceso a VT-X y AMD-V está bloqueado por el software de virtualización o las características de protección de ejecución como Hyper-V, WSL2, WSLG, Windows Sandbox, Protección de integridad de memoria, protección de aplicaciones, protección de credenciales, protección de dispositivos y otras características y software. MACOS y el instalador de MacOS tienen problemas de corrupción de memoria bajo la virtualización NEM. El script verifica para NEM y sale con un mensaje de error si se detecta.
Virtualbox puede ejecutarse en WSL2 y WSLG con una compilación del módulo de kernel, aunque el rendimiento es extremadamente bajo. En el punto de que se requiere la compilación del módulo del kernel, puede ser preferible usar QEMU/KVM en WSL2 y WSLG, que es órdenes de magnitud más rápido que VirtualBox en WSL2 y WSLG. WSL2, WSLG, QEMU y KVM requieren una configuración adicional que esté más allá del alcance del script.
El MacOS VirtualBox Guest está cargado sin cargadores de arranque adicionales, pero es compatible con OpenCore. OpenCore requiere una configuración adicional que esté más allá del alcance del script.
MACOS puede no admitir ningún controlador de audio VirtualBox incorporado. El cargador de arranque OpenCore puede cargar controladores de audio de código abierto o incorporados en VirtualBox, proporcionando la configuración para STAC9221 (Intel HD Audio) o Sigmatel STAC9700,83,84 (ICH AC97) está disponible.
Virtualbox no suministra un EDID para su pantalla virtual, y MacOS no habilita la escala de pantalla (PPI alto) sin un EDID. El cargador de arranque opencore puede inyectar un EDID que habilita la escala de visualización.
La implementación de VirtualBox EFI no carga correctamente el indicador de contraseña de cifrado de disco completo de FileVault al arranque. El Bootloader OpenCore puede cargar la solicitud de contraseña con el parámetro ProvideConsoleGop establecido en true . Ver muestra config.plist
Las siguientes dependencias deben estar disponibles a través de un administrador de paquetes:
bash coreutils gzip unzip wget xxd dmg2img virtualbox
Los siguientes paquetes opcionales proporcionan un reconocimiento de caracteres ópticos que reduce la interacción requerida con el script:
tesseract-ocr tesseract-ocr-eng
Versiones compatibles:
Bash ≥ 4.3, en ventanas que se ejecutan a través de Cygwin o WSL "1", ver NEMcoreutils GNU ≥ 8.22, GNU gzip ≥ 1.5, Info-Zip unzip ≥ V6.0, GNU wget ≥ 1.14, xxd ≥ 1.11dmg2img ≥ 1.6.5, en cygwin el paquete no está disponible a través del administrador de paquetes, por lo que el script lo descarga automáticamente.tesseract-ocr ≥ 4