macos-guest-virtualbox.sh é um script bash que cria um convidado MacOS Virtual Machine no VirtualBox com arquivos de instalação do MacOS não modificados baixados diretamente dos servidores Apple.
Uma instalação padrão exige apenas que o usuário se sente pacientemente e, menos de dez vezes, pressione Enter quando solicitado pelo script, sem interagir com a máquina virtual.
Testado em bash e zsh em Cygwin. Funciona no MacOS, Centos 7 e Windows no X86 CPUS com VT-X ou AMD-V. Deve trabalhar na maioria dos distritos Linux modernos.
Macos Catalina (10.15), Mojave (10.14) e High Sierra (10.13) atualmente suportados.
Se você gostaria de se tornar o mantenedor deste repositório, consulte a edição #645 - o mantenedor procurado.
A documentação pode ser vista executando o comando ./macos-guest-virtualbox.sh documentation
A maioria do script é documentação, comentários ou mensagens de erro acionável, que devem tornar o script simples para inspecionar e entender.
O iCloud, o iMessage e outros serviços conectados da Apple exigem um nome de dispositivo válido e número de série, ID da placa e número de série e outros parâmetros de Apple genuínos (ou do tipo genuíno). Estes podem ser definidos em EFI e NVRAM editando o script. Consulte o comando de documentação para obter mais informações.
O script, por padrão, atribui um tamanho de armazenamento de disco virtual de destino de 80 GB, que é preenchido a cerca de 25 GB no host na instalação inicial. Após a conclusão da instalação, o tamanho do armazenamento pode ser aumentado. Consulte o comando de documentação para obter mais informações.
As seguintes resoluções de exibição primária são suportadas pelo MacOS no VirtualBox: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1440x900 1280x800 1024x768 640x480 . Consulte o comando de documentação para obter mais informações.
O escopo do script está preenchendo um processo de instalação do MacOS padrão no VirtualBox no hardware suportado. A ordem de funcionamento adicional do VirtualBox ou MacOS está além do escopo deste script. Alguns recursos podem se comportar inesperadamente, como suporte ao dispositivo USB, suporte a áudio, suporte ao prompt de senha de inicialização do FileVault e outros recursos, incluindo funcionalidade crítica.
O script foi projetado para o hardware X86 CPU MAC. Os hóspedes do MacOS no VirtualBox são geralmente incompatíveis com outros modelos da CPU. Se o processo de inicialização do MacOS convidado ficará em "LoadkernEngromStream", "Endrandomseed" ou "Exitbs", consulte o comando de documentação sobre perfis da CPU da VirtualBox e configurações de CPUID. Alguns modelos de CPU lançados em 2020 e posteriormente podem não iniciar ou concluir o instalador e podem exigir ajustar manualmente as configurações do CPUID.
A máquina virtual pode ser atualizada para as versões mais recentes do MacOS Big Sur (11) e MacOS Monterey (12) através da atualização do software. Big Sur pode ser instalado no local. Monterey pode exigir anexar outro volume à máquina virtual e selecionar o volume como alvo de instalação, caso contrário, a atualização será propensa a falhar e entrar em um loop de inicialização.
Depois de criar com sucesso uma máquina virtual do MacOS em funcionamento, considere importá -la para um software de virtualização mais com desempenho ou empacotá -lo para plataformas de gerenciamento de configuração para implantação automatizada. Esses aplicativos de virtualização e implantação requerem configuração adicional que está além do escopo do script.
O QEMU com KVM é capaz de fornecer a passagem de hardware da máquina virtual para o desempenho quase nativo. O QEMU suporta o formato de armazenamento de imagem de disco virtual VMDK , que pode ser configurado para ser criado pelo script. Consulte o comando de documentação para obter mais informações. Qemu e KVM requerem configuração adicional que está além do escopo do script.
O VirtualBox Native Execution Manager (NEM) é um recurso experimental do VirtualBox. O VirtualBox usa o NEM quando o acesso a VT-X e AMD-V é bloqueado por software de virtualização ou recursos de proteção de execução, como Hyper-V, WSL2, WSLG, Windows Sandbox, proteção de integridade de memória, guarda de aplicativos, guarda de credenciais, guarda de dispositivos e outros recursos e software. MacOS e o instalador do MacOS têm problemas de corrupção de memória sob a virtualização do NEM. O script verifica o NEM e sai com uma mensagem de erro, se for detectada.
O VirtualBox pode ser executado no WSL2 e WSLG com alguma compilação do módulo do kernel, embora o desempenho seja extremamente baixo. No momento em que a compilação do módulo do kernel é necessária, pode ser preferível usar qemu/kvm no WSL2 e WSLG, que são ordens de magnitude mais rápida que o VirtualBox no WSL2 e WSLG. WSL2, WSLG, QEMU e KVM requerem configuração adicional que está além do escopo do script.
O MacOS VirtualBox Guest é carregado sem carregadores de inicialização extras, mas é compatível com o OpenCore. O OpenCore requer configuração adicional que esteja além do escopo do script.
O MacOS pode não suportar nenhum controlador de áudio do VirtualBox integrado. O OpenBore de bootloader pode carregar motoristas de áudio de código aberto ou embutido no VirtualBox, fornecendo a configuração para STAC9221 (Intel HD Audio) ou Sigmatel STAC9700,83,84 (ICH AC97) está disponível.
O VirtualBox não fornece um EDID para sua exibição virtual, e o MacOS não permite a escala de exibição (alta PPI) sem um EDID. O OpenBore de bootloader pode injetar um EDID que permita a escala de exibição.
A implementação do VirtualBox EFI não carrega corretamente o prompt FileVault Full Disk Cryption Senha na inicialização. O bootloader OpenCore pode carregar o prompt de senha com o parâmetro ProvideConsoleGop definido como true . Consulte Sample Config.plist
As seguintes dependências devem estar disponíveis através de um gerenciador de pacotes:
bash coreutils gzip unzip wget xxd dmg2img virtualbox
Os pacotes opcionais a seguir fornecem reconhecimento óptico de caracteres que reduz a interação necessária com o script:
tesseract-ocr tesseract-ocr-eng
Versões suportadas:
Bash ≥ 4,3, nas janelas executadas através de Cygwin ou WSL "1", veja NEMcoreutils ≥ 8,22, GNU gzip ≥ 1,5, info-zip unzip ≥ v6.0, gnu wget ≥ 1,14, xxd ≥ 1,11dmg2img ≥ 1,6,5, no Cygwin O pacote não está disponível através do gerenciador de pacotes, para que o script faça o download automaticamente.tesseract-ocr ≥ 4