Running a MacOS Catalina 10.15 VM in ProxMox VE 🌱

  1. Download a MacOS Catalina .iso Download
  2. Download KVM OpenCore bootloader Download
  3. Extract the downloaded KVM OpenCore bootloader .gz file
  4. Upload the Catalina 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 MacOSCatalina in the name field, set the VM ID to 1000 (unless 1000 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), Check the Add EFI Disk checkbox, Uncheck the Pre-Enroll Keys 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 MacOSCatalina VM > Select Hardware from the left sub-navigation menu
  16. Click Add > CD/DVD Drive
  17. Select the MacOS Catalina .iso downloaded earlier > Click Create
  18. Select the MacOSCatalina 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 1000 to the VM ID for the Catalina VM
    nano /etc/pve/qemu-server/1000.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 -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 -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 Catalina) 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 MacOSCatalina 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 Catalina .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 MacOS > Set the Format to APFS > Click Erase
  35. Click Done > Close Disk Utility
  36. Click Install macOS
  37. Click Continue > Click Agree > Click Agree again
  38. Select the MacOS 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 Continue on the Data & Privacy screen
  43. Select Don't transfer any information now > Click Continue
  44. Select Set Up Later > Click Continue > Click Skip
  45. Click Agree > Agree again
  46. Enter a name, user name, password > Click Continue
  47. Click Customize Settings
  48. Click Continue > Select Use or Don't Use for Location Services
  49. Pick a timezone > Click Continue
  50. Uncheck the Send Mac Analytics box > 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 10.15 Catalina

Configuring Booting Without OpenCore Mounted

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