Instalando o macOS “Monterey” no Proxmox
Tutorial
Você pode ver todo este texto ou ver o vídeo, fique a vontade para escolher.
Fórum
Faça parte do fórum: Hackintosh
https://www.youtube.com/watch?v=HBAPscDD30M
Este tutorial para instalar o macOS 12 Monterey foi adaptado para o Proxmox a partir do projeto OSX-KVM da Kholia e da configuração OpenCore do Leoyzen para KVM. Você pode obter o código-fonte completo da minha versão do OpenCore no meu GitHub aqui.
.explanation::after {
font-family: “Roboto”, sans-serif;
content: “NOTA”;
text-transform: uppercase;
font-weight: 700;
top: -19px;
left: 1rem;
padding: 0 0.5rem;
font-size: 0.6rem;
position: absolute;
z-index: 1;
color: #000;
background: #fff;
}
Requisitos
Vou assumir que você já tem o Proxmox 7 instalado. Você também precisa de um Mac real disponível para buscar a tecla OSK.
A CPU do seu computador host Proxmox deve suportar SSE 4.2, portanto, para a Intel, sua CPU deve ser pelo menos tão nova quanto o Nehalem, que foi a primeira geração de CPU a ter a marca “Core” i5/i7. CPUs mais antigas causarão falhas de Instrução Ilegal quando aplicativos/extensões tentarem usar essas instruções ausentes.
As CPUs AMD modernas também suportam o SSE 4.2 e funcionarão com este guia.
Primeira etapa: Criar uma ISO de instalação
Baixe minha cópia do repositório OSX-KVM usando o botão de download e descompacte-a:
https://github.com/thenickdude/OSX-KVM
Primeiro, precisamos instalar alguns requisitos de compilação. Se você estiver criando o instalador ISO no macOS, abra o Terminal e execute este comando para instalar as ferramentas de linha de comando:
xcode-select --install
Se você estiver construindo o ISO no Linux, em vez disso, você precisa executar este comando (estes são os nomes de pacotes para o Ubuntu ou distribuições semelhantes, eles podem precisar de ajuste em outras distribuições):
sudo apt install qemu-utils make
Agora no Terminal, a partir da raiz do OSX-KVM, execute:
cd scripts/monterey
make Monterey-recovery.img
Isso fará o download do instalador Monterey dos servidores de distribuição de software da Apple e criará um arquivo para você. Carregue este arquivo no diretório de armazenamento ISO do seu Proxmox (normalmente). Embora estejamos colocando-o no diretório ISO para que possamos usá-lo com o seletor ISO da Proxmox mais tarde, esta é uma imagem de disco bruta em vez de uma ISO verdadeira.Monterey-recovery.img
/var/lib/vz/template/iso
Se você estiver criando o instalador no macOS, poderá criar um instalador completo em vez de apenas uma recuperação, o que significará que o macOS não precisará baixar arquivos Monterey durante a instalação e, portanto, não exigirá uma conexão com a Internet. Basta pedir-lhe para construir Monterey-full.img em vez disso:
cd scripts/monterey
make Monterey-full.img
Preparar uma imagem OpenCore
Baixe o arquivo OpenCore.iso.gz da versão mais recente no meu repositório (você deseja a v15 ou mais recente), clique duas vezes nele para descompactá-lo e envie-o para a loja ISO da Proxmox em . Embora tenha uma extensão de arquivo .iso, esta é realmente uma imagem de disco rígido./var/lib/vz/template/iso
Buscar a chave de autenticação OSK
O macOS verifica se ele está sendo executado em hardware Mac real e se recusa a inicializar em hardware de terceiros. Você pode contornar isso lendo uma chave de autenticação do seu hardware Mac real (a chave OSK). Salve o primeiro bloco de código C desta página como smc_read.c. Em um prompt de comando, mude para o mesmo diretório que esse arquivo e execute:
xcode-select --install # If you don't already have gcc
gcc -o smc_read smc_read.c -framework IOKit
./smc_read
Ele imprimirá o OSK de 64 caracteres para você. Anote isso.
Todo Mac usa o mesmo OSK, então não se surpreenda que ele não se pareça com uma string aleatória!
Criar a VM
Na interface do usuário da Web do Proxmox, crie uma nova máquina virtual, conforme mostrado abaixo.
Aparentemente, o Compartilhamento de Tela também é compatível com clientes VNC como o RealVNC, então você deve ser capaz de se conectar a ele a partir de consoles Linux ou Windows usando o RealVNC.
A verdadeira bala mágica para o desempenho de vídeo é passar por uma placa de vídeo compatível usando a passagem PCIe (embora note que o macOS agora suporta apenas um punhado de placas NVidia muito antigas). Isso oferece desempenho quase nativo. Você pode ler mais sobre como estou usando a passagem PCIe em minha própria instalação aqui.
Passagem USB
Como quero usar isso como meu computador principal, quero usar um teclado e mouse USB conectados diretamente ao Proxmox, em vez de enviar minha entrada pelo console VNC da Web.
Proxmox tem boa documentação para passagem USB. Basicamente, execute “qm monitor YOUR-VM-ID-HERE”, em seguida, “info usbhost” para obter uma lista dos dispositivos USB conectados ao Proxmox:
qm> info usbhost
Bus 3, Addr 12, Port 6, Speed 480 Mb/s
Class 00: USB device 8564:1000, Mass Storage Device
Bus 3, Addr 11, Port 5.4, Speed 12 Mb/s
Class 00: USB device 04d9:0141, USB Keyboard
Bus 3, Addr 10, Port 5.1.2, Speed 12 Mb/s
Class 00: USB device 046d:c52b, USB Receiver
Bus 3, Addr 9, Port 14.4, Speed 12 Mb/s
Class 00: USB device 046d:c227, G15 GamePanel LCD
Bus 3, Addr 8, Port 14.1, Speed 1.5 Mb/s
Class 00: USB device 046d:c226, G15 Gaming Keyboard
Neste caso, posso adicionar meu teclado e mouse à passagem USB saindo do qm e, em seguida, executando:
qm set YOUR-VM-ID-HERE -usb1 host=04d9:0141
qm set YOUR-VM-ID-HERE -usb2 host=046d:c52b
Isso salva os dispositivos na configuração da VM para você. Você precisa reiniciar para que as novas configurações sejam aplicadas.
Você também pode passar por dispositivos USB passando por um controlador USB inteiro usando o recurso de passagem PCIe do Proxmox, que oferece uma compatibilidade muito melhor.
Contagens de núcleos ímpares
Se a CPU do host for AMD, você pode ter uma contagem de núcleos divisível por 3, como 6 núcleos. O macOS não gosta se a contagem de núcleos não for uma potência de 2 (1, 2, 4, 8), mas não se importa com contagens de soquetes ímpares.
Então, para passar 6 núcleos totais, configure a VM para 3 soquetes e 2 núcleos por soquete.
Corrigindo “inicializações de convidado no shell UEFI”
Se o seu convidado acabar inicializando no shell UEFI em vez de mostrar o menu de inicialização do OpenCore, especialmente se você acabou de atualizar o OpenCore para uma nova versão, será necessário editar as entradas de inicialização UEFI do convidado para corrigir isso.
No início da inicialização do convidado, pressione F2 para inserir as configurações UEFI do convidado.
Primeiro, removeremos as entradas antigas. Escolha a opção Manutenção de Inicialização e, em seguida, Opções de Inicialização -> Opção de Exclusão de Inicialização. Use a barra de espaço para marcar todas as entradas antigas do Clover ou do OpenCore (evite marcar a opção EFI Internal Shell, você deseja manter isso!). Selecione “Confirmar alterações e sair”.
Agora vamos adicionar a entrada correta para o OpenCore de volta. Selecione Adicionar opção de inicialização. Navegue pela árvore de dispositivos até EFI/OC/OpenCore.efi e selecione-a, nomeie essa nova opção como “OpenCore” ou similar. Novamente confirme as alterações e saia.
Vá para a Ordem de Inicialização Alterar e mova o OpenCore para o topo. Confirmar alterações e sair.
Agora volte para o menu principal e escolha Redefinir, e você deve inicializar com sucesso no OpenCore desta vez.
Corrigindo o iMessage
O iCloud e a App Store já devem estar funcionando para você, mas para o suporte ao iMessage você deve seguir estas etapas para marcar seu adaptador de rede como integrado:
https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html#fixing-en0
Desabilitando o SIP (Proteção de Integridade do Sistema)
Você pode desativar o SIP selecionando a opção Recuperação no menu de inicialização do OpenCore e, em seguida, use o menu superior para abrir o Terminal e executar o . Em seguida, reinicie.csrutil disable --no-internal
Isso pode ser necessário para executar kexts não assinados ou executar outros hacks.
Atualizando o OpenCore
Às vezes, você precisa atualizar o OpenCore para uma nova versão para oferecer suporte a uma nova atualização do macOS. Suponho que você não tenha nenhuma personalização para config.plist que deseja salvar.
Primeiro tire uma foto! É ótimo poder reverter se algo der errado.
Se você ainda conseguir inicializar o macOS, poderá atualizá-lo de dentro do convidado. Siga as instruções na seção “Editando suas configurações de OpenCore/EFI” para montar sua partição EFI. Em seguida, você pode excluir a pasta EFI e substituí-la pela do arquivo OpenCoreEFIFolder.zip da minha versão OpenCore (você provavelmente precisará esvaziar a lixeira primeiro para abrir espaço para a nova pasta). Você terminou!
Se você não conseguir inicializar o macOS, descompacte e carregue o novo ISO do OpenCore na loja ISO da Proxmox. Adicione uma nova unidade de CD à VM que usa esse ISO. Em seguida, no terminal do Proxmox, edite a configuração da VM (em ) para substituir “media=cdrom” por “cache=unsafe” para a unidade OpenCore. Agora, na guia “Opções”, altere a ordem de inicialização para colocar a nova unidade OpenCore em primeiro lugar. /etc/pve/qemu-server
Inicie a VM e inicialize no macOS usando a nova unidade OpenCore. De dentro do macOS, agora você pode seguir as instruções da seção “Tornar a instalação do OpenCore permanente” para instalar a nova imagem do OpenCore no disco principal do macOS, após o que a unidade OpenCore pode ser desconectada da VM.
Atualizando do macOS Big Sur
Primeiro faça um backup ou instantâneo do seu sistema! Ser capaz de reverter quando a atualização dá errado é um verdadeiro salva-vidas.
Você precisará atualizar o OpenCore para a minha versão v15 antes da atualização. Você pode seguir as instruções na seção “Editando suas configurações do OpenCore” acima para montar seu disco EFI. Em seguida, você pode substituir os arquivos OpenCore no disco “EFI” montado com os do arquivo OpenCoreEFIFolder.zip na minha versão mais recente do OpenCore.
Reinicialize para se certificar de que você ainda pode inicializar o Big Sir.
Se você estiver usando qualquer dispositivo de passagem PCIe (particularmente placas de vídeo), você vai querer desativá-los e definir “vga: vmware” em vez disso, para que você possa instalar usando o console da web do Proxmox de uma máquina diferente durante a atualização. Isso evita problemas do instalador desencadeados pela passagem escamosa da placa de vídeo, especialmente travamentos de host causados pelo Bug de redefinição da AMD.
Agora você pode atualizar para Monterey usando a Atualização de Software ou da App Store como faria em um Mac real.
Se a atualização não aparecer, o modo SIP pode estar definido como “Apple Internal”. Você pode verificar isso executando “csrutil status” no Terminal.
Para corrigir isso, reinicie a VM e, no menu OpenCore, selecione Recuperação. Abra o Terminal e, lá dentro, execute “” (“” também está bem), em seguida, reinicie novamente no macOS e tente novamente.csrutil enable --no-internal
csrutil disable --no-internal
O credito vai para Nicolau Sherlock do site https://www.nicksherlock.com/
Isso é tudo!
Deixe seu feedback, é muito importante saber o que você está pensando sobre nosso trabalho.
Atenciosamente
UdayTC