Running a MacOS Monterey VM in ProxMox VE 🌱

  1. Download a MacOS Monterey .iso Download
  2. Download KVM OpenCore bootloader Download
  3. Extract the downloaded KVM OpenCore bootloader .gz file
  4. Upload the Monterey and KVM OpenCore .iso files to the Proxmox ISO library
  5. Log into the ProxMox web UI
  6. Right click the ProxMox node name > Create VM
  7. Type MacOS12 in the name field, set the VM ID to 1200 (unless 1200 is in use) > Next
  8. On the OS tab, set the Type field to Other and select the KVM OpenCore .iso in the ISO Image field > Next
  9. On the System tab, set the Graphic card field to VMware compatible, BIOS field to OVMF (UEFI), Uncheck the Pre-Enroll Keys checkbox, Check the Add EFI Disk checkbox, Machine field to q35 and the SCSI Controller to VirtIO SCSI > Next
  10. On the Hard Disk tab, set the Bus/Device field to VirtIO Block, Disk size field to 64, Cache field to Write back (unsafe) > Next
  11. On the CPU tab, set Cores field to 4, Type field to Penryn > Next
  12. On the Memory tab, set the Memory to 4096 > Next
  13. On the Network tab, set the Model field to VMware vmxnet3 > Next
  14. Verify the summary and click Finish
  15. Click the MacOS12 VM > Select Hardware from the left sub-navigation menu
  16. Click Add > CD/DVD Drive
  17. Select the MacOS Monterey .iso downloaded earlier > Click Create
  18. Select the MacOS12 VM > Options > Boot Order
  19. Set the KVM OpenCore disk as the first boot option > Click OK
  20. Right click the ProxMox node name > Console
  21. Run the following commands in the terminal
    # edit the VM conf file, change 1200 to the VM ID for the MacOS12 VM
    nano /etc/pve/qemu-server/1200.conf
  22. If running on an Intel CPU, add the following line to the bottom of the .conf file:

    args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc

  23. If running on an AMD CPU, add the following line to the bottom of the .conf file:

    args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,check

  24. Press CTRL+W and search for ,media=cdrom
  25. Delete the ,media=cdrom from the two attached .iso files (KVM OpenCore and Monterey) and add cache=unsafe
  26. Press CTRL+O, Enter, CTRL+X to write the changes to the conf file
  27. Back in the Proxmox web UI, right click the MacOS12 VM in the left navigation pane > Start
  28. Click console in the left sub-navigation menu
  29. At the OpenCore menu, select UEFI Shell > Press Enter
  30. Type the following in the UEFI shell:
    # change to the Monterey .iso, the disk number may be different for you
    fs0:
    # launch the MacOS installer
    System\Library\CoreServices\boot.efi
  31. After a long initialization sequence the MAC OS Setup should start
  32. Select Disk Utility
  33. Select the VIRTIO Block Media > Click Erase
  34. Name the drive OS12 > Set the Format to APFS > Click Erase
  35. Click Done > Close Disk Utility
  36. Click Install macOS Monterey
  37. Click Continue > Click Agree > Click Agree again
  38. Select the OS12 disk > Click Install
  39. Wait while Mac OS installs files, the VM will reboot several times
  40. Select your Country > Click Continue
  41. Confirm your languages and keyboard layout > Click Continue
  42. Click Not Now on the Accessibility screen
  43. Click Continue on the Data & Privacy screen
  44. Select Not Now on the Migration Assistant screen
  45. Select Set Up Later and then Skip on the Apple ID screen
  46. Click Agree > Agree again
  47. Enter a name, user name, password > Click Continue
  48. Click Continue > Select Use or Don't Use for Location Services
  49. Pick a timezone > Click Continue
  50. Uncheck Share Mac Analytics with Apple > Click Continue
  51. Click Set Up Later on the Screen Time screen
  52. Uncheck the Enable Ask Siri box > Click Continue
  53. Pick a theme > Click Continue
  54. Welcome to MacOS 12 Monterey

Configuring Booting Without OpenCore Mounted

  1. Log into the MacOS12 VM
  2. Launch a web browser and download the KVM OpenCore EFI folder Download
  3. Start LaunchPad from the dock
  4. Search terminal > Click Terminal to launch it
  5. Run the following commands in the terminal window
    git clone https://github.com/corpnewt/MountEFI
    cd MountEFI
    chmod +x MountEFI.command
    ./MountEFI.command
  6. Enter the number that corresponds to the OS12 drive created during the installation > Press Enter
  7. Open a Finder window
  8. Navigate to the mounted EFI location
  9. If an existing EFI folder exists, rename the it to EFI.orig
  10. Copy the KVM OpenCoreEFI folder downloaded earlier to the mounted EFI partition
  11. Once the EFI folder is copied, shutdown the VM
  12. Click the MacOS12 VM > Select Hardware from the left sub-navigation menu
  13. Click the OpenCore Hard Disk to select it > Click Detach
  14. Click the detached OpenCore Hard Disk to select it again > Click Remove
  15. Right click the MacOS12 VM in the left navigation pane > Start
  16. Click console in the left sub-navigation menu to verify the VM still boots into Monterey without the OpenCore disc image mounted