Installing macOS 12 “Monterey” on Proxmox 7

A new version of this tutorial is now available for the release of macOS 13 Ventura, you can see that here

This tutorial for installing macOS 12 Monterey has been adapted for Proxmox from Kholia’s OSX-KVM project and Leoyzen’s OpenCore configuration for KVM. You can get the full sourcecode of my OpenCore release on my GitHub here.

Requirements

I’ll assume you already have Proxmox 7 installed. You also need a real Mac available in order to fetch the OSK key.

Your Proxmox host computer’s CPU must support SSE 4.2, so for Intel your CPU must be at least as new as Nehalem, which was the first CPU generation to bear the “Core” i5/i7 branding. Older CPUs will cause Illegal Instruction crashes when apps/extensions attempt to use these missing instructions.

Modern AMD CPUs also support SSE 4.2 and will work with this guide.

First step: Create an installation ISO

Download my copy of the OSX-KVM repository using the download button, and unzip it:

https://github.com/thenickdude/OSX-KVM

First we need to install some build requirements. If you will be building the installer ISO on macOS, open up the Terminal and run this command to install the commandline tools:

xcode-select --install

If you’re building the ISO on Linux, you instead need to run this command (these are the package names for Ubuntu or similar distributions, they may need adjustment on other distributions):

sudo apt install qemu-utils make

Now in the Terminal, from the root of OSX-KVM, run:

cd scripts/monterey
make Monterey-recovery.img

This will download the Monterey installer from Apple’s software distribution servers and build a Monterey-recovery.img file for you. Upload this file to your Proxmox’s ISO store directory (typically /var/lib/vz/template/iso). Although we’re putting it in the ISO directory so that we can use it with Proxmox’s ISO picker later, this a raw disk image rather than a true ISO.

If you’re building the installer on macOS, you can build a full installer instead of just a recovery, which will mean that macOS won’t have to download Monterey files during installation, and so won’t require an Internet connection. Simply ask it to build Monterey-full.img instead:

cd scripts/monterey
make Monterey-full.img

This option is not available when building the installer on Linux.

Prepare an OpenCore image

Download the OpenCore.iso.gz file from the newest release in my repository (you want v15 or newer), double click it to unpack it, and upload it to Proxmox’s ISO store at /var/lib/vz/template/iso. Although it has a .iso file extension, this is actually a hard disk image.

Fetch the OSK authentication key

macOS checks that it is running on real Mac hardware, and refuses to boot on third-party hardware. You can get around this by reading an authentication key out of your real Mac hardware (the OSK key). Save the first block of C code from this page as smc_read.c. In a command prompt, change into the same directory as that file and run:

xcode-select --install # If you don't already have gcc
gcc -o smc_read smc_read.c -framework IOKit
./smc_read

It’ll print out the 64 character OSK for you. Make a note of it.

Every Mac uses the same OSK, so don’t be surprised that it doesn’t look like a random string!

Create the VM

From the Proxmox web UI, create a new virtual machine as shown below.

In the Options page for the VM, ensure that “use tablet for pointer” is set to “Yes” (this is the default).

In the Hardware page for the VM, add a second DVD drive at IDE0, set it to use your Monterey-full.img or Monterey-recovery.img.

Don’t try to start the VM just yet. First, SSH into your Proxmox server so we can make some edits to the configuration files.

Edit /etc/pve/qemu-server/YOUR-VM-ID-HERE.conf (e.g. with nano or vim). Add this line, being sure to substitute the OSK you extracted earlier into the right place:

args: -device isa-applesmc,osk="THE-OSK-YOU-EXTRACTED-GOES-HERE" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off

A USB keyboard is added here because macOS doesn’t support QEMU’s default PS/2 keyboard.

MSI has been disabled for the USB controller to fix QEMU panics when USB 3 devices are passed through.

ACPI PCIe hotplug support needs to be disabled for VMs with passthrough devices since QEMU Q35 machine model 6.1, which is what that final argument does. (You could instead choose Q35 6.0 for your Machine type on the Hardware tab). If you haven’t updated your QEMU to version 6.1 yet then remove this argument from the args. (Proxmox 7 ships with 6.0 and updated to 6.1 later on)

Ensure the args are all on a single line!

We also need to add a -cpu argument. If your host CPU is Intel, add this to the end of the “args” line:

-cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc

This will pass through all of the features that your CPU supports. OpenCore’s config will pretend to macOS that the CPU’s model name is Penryn for compatibility.

If your host CPU is AMD, or the above argument doesn’t work for you, use this more-compatible alternative:

-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,+rdrand,check

This pretends that your CPU is Penryn, which will keep macOS happy even if your host CPU is AMD, and adds a bunch of newer required and optional CPU features on top. Features that your host CPU doesn’t support will be ignored (a warning will be printed to the console during launch with qm start 1xx), but note that macOS won’t work without SSE4.2 support.

You can remove the “+invtsc” feature from the list if your CPU doesn’t support it, or if you want to be able to migrate a running VM between Proxmox nodes.

Now find the lines that define the two “ISOs” (ide0 and ide2), and remove the “,media=cdrom” part from them. Add “,cache=unsafe” in its place. This will treat these as hard disks rather than DVD drives.

Save your changes, return to the Options tab, and change the boot order to put IDE2 (the OpenCore image) first. Your final VM configuration file should resemble this:

args: -device isa-applesmc,osk="..." -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 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
agent: 1
balloon: 0
bios: ovmf
boot: order=ide2
cores: 4
cpu: Penryn
efidisk0: vms-ssd-enc:vm-171-disk-1,efitype=4m,size=1M
ide0: isos:iso/Monterey-full.img,cache=unsafe,size=14G
ide2: isos:iso/OpenCore-v15.img,cache=unsafe,size=150M
machine: q35
memory: 4096
name: macos-monterey
net0: virtio=...,bridge=vmbr0,firewall=1
numa: 1
ostype: other
virtio0: vms:vm-171-disk-0,cache=unsafe,discard=on,size=64G
scsihw: virtio-scsi-pci
smbios1: uuid=...
sockets: 1
vga: vmware

Configure Proxmox

On Proxmox, run “echo 1 > /sys/module/kvm/parameters/ignore_msrs” to avoid a bootloop during macOS boot. To make this change persist across Proxmox reboots, run:

echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u

Install Monterey

Now start up your VM, it should boot to the OpenCore boot picker:

Press enter to boot the “Install macOS Monterey” entry and the installer should appear. (If your keyboard isn’t working, leave the Proxmox Console page and re-enter it)

OpenCore’s “OpenCanopy” boot picker

If you built a recovery installer, the icon will instead be an image of a hard disk and be labelled “MacOS Base System”.

Our virtual hard drive needs to be erased/formatted before we can install to it, so select the Disk Utility option. Follow the steps below to format the disk:

Now you can quit Disk Utility from the top menu (Disk Utility > Quit Disk Utility), and we’re ready to begin installation!

After the first stage of installation, the VM will reboot 2 or 3 times in quick succession, and each time you must manually pick the “macOS Installer” entry (the second one here, with the hard disk icon) to continue installation. It will not be selected for you automatically:

If your keyboard isn’t responding on this screen, exit the Console tab in Proxmox and re-enter it. If you get a “prohibited” sign like this appearing, hit the Reset button on the VM to try again:

Now the installation is nearly complete and the macOS Installer entry disappears, so pick the name of your main disk to boot (mine’s called Main).

There’s just one more reboot to come. Afterwards pick the “Main” entry again and this time you’ll finally boot into Monterey!

Answer the initial install questions, and you’ll be logged on! Note that you will want to hold off on logging into your Apple ID until you’ve configured your Mac’s serial number in OpenCore (because otherwise a Mac with the default shared serial number in my OpenCore image will be added to your Apple ID).

It works!

Note that it will be really sluggish for a few minutes after the first boot while the system performs housekeeping tasks.

Make the OpenCore install permanent

We’re currently booting using OpenCore from the attached OpenCore ISO. Let’s install that to the hard drive instead. Pop open Terminal and run “diskutil list” to see what drives we have available.

Use “sudo dd if=<source> of=<dest>” to copy the “EFI” partition from the OpenCore CD and overwrite the EFI partition on the hard disk. The OpenCore CD is the small disk (~150MB) that only has an EFI partition on it, and the main hard disk is the one with the large (>30GB) Apple_APFS “Container” partition on it.

In my case these EFI partitions ended up being called disk1s1 and disk0s1 respectively, so I ran “sudo dd if=/dev/disk1s1 of=/dev/disk0s1” (note that if you get these names wrong, you will overwrite the wrong disk and you’ll have to start the installation over again!).

Now shut down the VM, and remove both the OpenCore and the Monterey installer drives from the Hardware tab. On the Options tab, edit the boot order to place your virtio0 disk as the first disk. Boot up. If everything went well, you should see the OpenCore boot menu, and you can select your “Main” disk to boot Monterey:

Sleep management

I found that I was unable to wake Monterey from sleep using my mouse or keyboard. If you encounter the same problem, you can either disable system sleep in Monterey’s Energy Saver settings to avoid the issue, or you can manually wake the VM up from sleep from Proxmox by running:

qm monitor YOUR-VM-ID-HERE 
system_wakeup
quit

Editing your OpenCore/EFI settings

The Configuration.pdf that explains the OpenCore config.plist file can be found along with the OpenCore release on my GitHub.

To mount your EFI partition in macOS so you can edit your config.plist, first check the “identifier” of your EFI partition in the terminal:

~$ diskutil list
/dev/disk0 (external, physical):
   #:                   TYPE NAME              SIZE       IDENTIFIER
   0:  GUID_partition_scheme                  *512.1 GB   disk0
   1:                    EFI EFI               209.7 MB   disk0s1
   2:             Apple_APFS Container disk1   511.9 GB   disk0s2

Then you can mount it like so:

sudo mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI

Now you can edit /Volumes/EFI/OC/config.plist with your favourite text editor to make your changes. (TextEdit is not a great choice because it likes to insert curly quotes into the file and otherwise break things, there are some dedicated plist editors available such as XCode).

If you’re unable to boot macOS, you can edit the config.plist using the “UEFI Shell” option in the OpenCore boot menu instead.

Enter “FS0:” and press enter to open up the first available filesystem, then run “edit EFI\OC\config.plist” (if the file isn’t found, try switching to another filesystem like fs1:). When you’re done editing, press control+Q to exit, “Y” to save, then run “exit” to return to the OpenCore menu. You need to reboot for your changes to take effect.

If you prefer, you can edit config.plist from the comfort of your Proxmox host instead. If you’re booting from an attached OpenCore.img file, you can mount that file as a disk on the host. If you’re booting from the VM’s disk instead, it must be in raw format in order to be mounted (e.g. typical LVM or ZFS usage) rather than qcow2.

# Mount an OpenCore image:
losetup --partscan /dev/loop0 /var/lib/vz/template/iso/OpenCore-v15.img
# or a VM boot disk:
losetup --partscan /dev/loop0 /dev/zvol/tank/vms/vm-100-disk-1

mount /dev/loop0p1 /mnt

Now the contents of that first partition are available in /mnt, so you can edit /mnt/EFI/OC/config.plist in your favourite editor. When you’re done, do this to unmount the disk:

umount /mnt
losetup --detach /dev/loop0

Automatic boot

In config.plist, you can set Misc/Boot/Timeout to a non-zero value to allow the default boot option be chosen automatically after that delay in seconds. I’ve disabled this by default because it causes the installer ISO to re-enter its main menu instead of continuing the second stage of installation.

You can set the default boot option by pressing control+enter on it.

Verbose boot

To boot macOS in Verbose mode to diagnose boot problems, at the OpenCore boot menu press Cmd+V before pressing enter to boot macOS (you don’t need to hold it down).

If there is a kernel panic during boot and it reboots too quickly to be read, edit config.plist to add “debug=0x100” to the kernel arguments.

Changing screen resolution

To change macOS’ screen resolution, you need to edit the UEFI/Output/Resolution setting in config.plist, the default is 1920×1080@32.

You should be able to change this to any of the modes that the system OVMF menu offers (hit F2 at the start of guest boot and choose “Device Manager/OVMF Platform Configuration” to see which resolutions are available).

Video performance

Because there is no guest video acceleration available for macOS, video performance is poor.

In Google Chrome in the guest you will need to toggle off the setting to “use hardware acceleration when available” to improve issues with elements not being drawn or flickering (especially video). Safari may be a better choice.

macOS’s built in “Screen Sharing” feature offers dramatically better framerates and latency than Proxmox’s browser-based VNC console, so if you have a real Mac to act as a viewing console, you can enable that in the VM’s “Sharing” settings and connect to the VM using the Screen Sharing app from your Mac instead:

Apparently Screen Sharing is also compatible with VNC clients like RealVNC, so you should be able to connect to it from Linux or Windows consoles using RealVNC.

The real magic bullet for video performance is to pass through a compatible video card using PCIe passthrough (though note that macOS now only supports a handful of very old NVidia cards). This offers near-native performance. You can read more about how I’m using PCIe passthrough on my own installation here.

USB passthrough

Since I want to use this as my primary computer, I want to use a USB keyboard and mouse plugged directly into Proxmox, rather than sending my input through the web VNC console.

Proxmox has good documentation for USB passthrough. Basically, run “qm monitor YOUR-VM-ID-HERE”, then “info usbhost” to get a list of the USB devices connected to 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

In this case I can add my keyboard and mouse to USB passthrough by quitting qm, then running:

qm set YOUR-VM-ID-HERE -usb1 host=04d9:0141
qm set YOUR-VM-ID-HERE -usb2 host=046d:c52b

This saves the devices to the VM configuration for you. You need to reboot to have the new settings apply.

You can also pass through USB devices by passing through an entire USB controller using Proxmox’s PCIe passthrough feature, which gives much better compatibility.

Odd core counts

If your host CPU is AMD, you might have a core count which is divisible by 3, like 6 cores. macOS doesn’t like it if the core count isn’t a power of 2 (1, 2, 4, 8), but it doesn’t mind odd socket counts.

So in order to pass 6 total cores, configure the VM for 3 sockets and 2 cores per socket.

Fixing “guest boots to UEFI shell”

If your guest ends up booting to the UEFI shell instead of showing the OpenCore boot menu, especially if you’ve just updated OpenCore to a new version, you’ll need to edit the guest’s UEFI boot entries to fix this.

At the very start of guest boot, hit F2 to enter guest UEFI settings.

First we’ll remove the old entries. Choose the Boot Maintenance option, then Boot Options -> Delete Boot Option. Use the spacebar to tick any old Clover or OpenCore entries (avoid ticking the EFI Internal Shell option, you want to keep that!). Select “Commit Changes and Exit”.

Now we’ll add the correct entry for OpenCore back in. Select Add Boot Option. Navigate through the device tree to EFI/OC/OpenCore.efi and select it, name this new option “OpenCore” or similar. Again Commit Changes and Exit.

Go to the Change Boot Order and move OpenCore to the top. Commit Changes and Exit.

Now back out to the main menu and choose Reset, and you should successfully boot into OpenCore this time.

Fixing iMessage

iCloud and the App Store should already be working for you, but for iMessage support you must follow these steps to mark your network adapter as built-in:

https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html#fixing-en0

Disabling SIP (System Integrity Protection)

You can disable SIP by selecting the Recovery option from the OpenCore boot menu, then use the top menu to open the Terminal and run csrutil disable --no-internal. Then reboot.

This may be needed to run unsigned kexts or perform other hacks.

Upgrading OpenCore

Sometimes you need to update OpenCore to a new release in order to support a new macOS update. I’ll assume you don’t have any customisations to config.plist you want to save.

First take a snapshot! It’s great to be able to roll back if something goes wrong.

If you’re still able to boot macOS, you can update it from within the guest. Follow the instructions in the “Editing your OpenCore/EFI settings” section to mount your EFI partition. Then you can delete the EFI folder in there and replace it with the one from the OpenCoreEFIFolder.zip file from my OpenCore release (you’ll probably need to empty the trash first to make room for the new folder). You’re done!

If you aren’t able to boot macOS, unpack and upload the new OpenCore ISO to Proxmox’s ISO store instead. Add a new CD drive to the VM that uses that ISO. Then in Proxmox’s terminal edit the VM’s config (in /etc/pve/qemu-server) to replace “media=cdrom” with “cache=unsafe” for the OpenCore drive. Now on the “Options” tab, change the boot order to put the new OpenCore drive first.

Start the VM and boot into macOS using the new OpenCore drive. From within macOS you can now follow the instructions from the “Make the OpenCore install permanent” section to install the new OpenCore image to your main macOS disk, after which the OpenCore drive can be detached from the VM.

Upgrading from macOS Big Sur

First make a backup or snapshot of your system! Being able to roll back when the upgrade goes wrong is a real lifesaver.

You’ll need to update OpenCore to my v15 release before the upgrade. You can follow the instructions in the “Editing your OpenCore settings” section above to mount your EFI disk. Then you can replace the OpenCore files in the mounted “EFI” disk with the ones from the OpenCoreEFIFolder.zip file in my newest OpenCore release.

Reboot to make sure that you can still boot Big Sir.

If you’re using any PCIe passthrough devices (particularly video cards) you’ll want to disable those and set “vga: vmware” instead, so you can install using Proxmox’s web console from a different machine during the upgrade. This avoids installer problems triggered by flaky video card passthrough, especially host lockups caused by the AMD Reset Bug.

Now you can upgrade to Monterey using Software Update or from the App Store like you would on a real Mac.

If the update fails to appear, your SIP mode might be set to “Apple Internal”. You can check this by running “csrutil status” in the Terminal.

To fix this, reboot your VM and at the OpenCore menu select Recovery. Open up the Terminal, and in there run “csrutil enable --no-internal” (“csrutil disable --no-internal” is fine too), then reboot back into macOS and try again.

844 thoughts on “Installing macOS 12 “Monterey” on Proxmox 7”

  1. In case anyone was wondering, I successfully updated my daily-driver from 12.1 to 12.2 using both Software Update and a fresh new full-installer and both methods worked smoothly.

    1. I don’t see the update option right now. I have the Kepler patch installed so I know I will have to reapply that. Supposedly you have to have SecureBootModel set to Default if you want Software Update to work?

      I’m using your v16 EFI. Every time I change that SecureBootModel, the VM boots into the recovery console. Should I just boot into recovery, run csrutil, and then boot back into macos without the video adapter?

      1. Whatever SecureBootModel I supply already works, I can’t remember what I set it to, but you don’t need to change it.

        csrutil only has to have “–no-internal” set to work, you can do “csrutil disable –no-internal” and you will get updates and your custom kext should load too.

    2. Hey brother.. again.. great guide. I have Monterey set up and works great via vpn on another computer. I was successful in adding IOMMU and passing through my RX580 Sapphire 8gb to the host. I get to the opencore boot selector. Select the OS and the apple logo comes up — but the status bar never progresses. Again.. full boot to OS no problem via VNC on display. I have Hardware<Display set to Off now. So there is no console view.. but the OS won't boot.. or doesn't show boot to me on the host. Any thoughts or direction? Thank you!!

    3. Hey Nick — great tutorial.. and got the 5700xt to pass through by adding boot args. Really dumb that I have to restart the actual computer every time I shut down the OS. I hope they fix that bug at some point. Okay.. I have a 1TB HD in the computer.. but am just using 64gigs after the installation. How do I get usage of the rest of the HD? Add a HD in Proxmox and just make it 800gigs? Will it show up?

  2. Thank you so much for your guides.

    I’m still running Proxmox 6.4-13 – can you foresee any issues with updating Proxmox to the latest v7?

      1. Hey Nicholas — this is a great tutorial. Have it up and running great. One problem.. I can only access Big Sur on the console. Sorry if this is really a dumb question, but how do I get the actual computer on which I did the install to show me the OS? It boots into Proxmox VE — and then I access it from another puter on the network. Thank you!

        1. This would require you to PCIe passthrough a compatible GPU to the guest, I don’t have a tutorial for that one.

          1. Hey brother.. again.. great guide. I have Monterey set up and works great via vpn on another computer. I was successful in adding IOMMU and passing through my RX580 Sapphire 8gb to the host. I get to the opencore boot selector. Select the OS and the apple logo comes up — but the status bar never progresses. Again.. full boot to OS no problem via VNC on display. I have Hardware<Display set to Off now. So there is no console view.. but the OS won't boot.. or doesn't show boot to me on the host. Any thoughts or direction? Thank you!!

            1. This is a card affected by the AMD Reset Bug. It can only be used a single time per host power cycle, so you have to ensure the host never initialises the card itself before the guest starts. A different card will need to be set as your primary display in your host UEFI settings.

              1. okay.. good news. Got the PCI Pass Through to work with the card. And the OS sees it as Radeon RX580 8gb. Perfect. The only way it worked is to uncheck everything except RomBar. Crazy but true. Thanks for the amazing tutorial my man.

              2. That sounds like you’re missing the required “-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off” parameter from your args for PCIe passthrough support to work.

  3. Regarding passthru / ‘hostpci#’ entries. I would note that in proxmox 7.1 i have found that shortened designators for a pci bus in the xxx.conf file such as ’00:0c’ without the four pre-pending digits like ‘0000:0c’ (which is what is put in when you add a device via the GUI) will cause the backups to fail with an error stating that the device could not be found. The shortening of the trailing parts of the address to allow pass-thru of sub-devices like audio on a video card does not seem to prevent the backup from working normally, however.

    1. Has anyone used spice instead of VNC as a client for VMs in Proxmox? I am assuming the audio will be possible in spice.
      Ay thought?

  4. Proxmox 7.1 and Monterey : A small addendum to my last note. Running passthru of my 5700XT with independent hostpci# lines in the config was preventing the integrated HDMI audio device from being automatically picked up automatically by macos. 0000:0c:00:0 and 0000:0c:00:1 had to be passed thru together as 0000:0c:00, respectively.

  5. Hi nick,

    Thanks for the very detailed guide.
    There’s one issue that I face, which is the audio. There’s no available audio device in the Settings. Could you help me with that

  6. i have hit a wall, in the configure proxmox step, this is what i get, (No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.), my host is an amd ryzen 5900,

    do you know exactly what im doing wrong?

  7. I can not get it to boot the opencore.iso. Proxmox just drops me into the UEFI shell. I went through the instructions twice just to make sure I did not miss a step. Even tried opencore15 and 16. Any tips are appreciated.

    1. Remove and delete the EFI disk from the hardware tab, then re-add it and be sure to un-tick the “pre-enroll keys” tickbox this time

  8. Hi!

    I’m having this error durring installation: “an error occurred loading the update”.

    At first I thought it was no internet access, but I can go to google.com in safari.

    Any idea what it can be? Thanks

    1. Sorry, I’ve never seen that fault here so it’s hard to guess what’s wrong. What size is your VM’s disk, maybe it’s too small? Otherwise I’d suspect the download is being interrupted for whatever reason.

      1. I increased it to 96GB and still get the same error… Maybe I’ll ask a friend for the full img and see if it works. Thanks anyway

  9. On a clean install of Proxmox 7, fully updated, I followed this. When booting, I don’t have an install option, just the UEFI shell, and the “reset NVRAM” option.

    Thoughts?

    1. You either didn’t edit the CD config to replace media=cdrom with cache=unsafe, or you followed somebody else’s tutorial to build the installer instead of mine.

  10. I certainly missed something (checked everything already) but I’m getting the following error:

    ERROR: start failed: QEMU exited with code 1

    1. I think that’d have to be a syntax error in your args line. Try starting the VM from the command line like “qm start 1xx” and you may get a more useful error message.

  11. hey Nicolas nice Blog!

    i have a problem with the Command which make Monterey-recovery.img on Linux. Its says by me make Monterey-recovery.img
    ../../fetch-macOS-v2.py –action download –board-id Mac-7BA5B2D9E42DDD94 –os latest
    /usr/bin/env: ‘python3’: No such file or directory
    make: *** [Makefile:56: BaseSystem.dmg] Error 127

    what can i do?

    Thanks

  12. hello nicolas i get but when i set up the VM on prox at the command

    echo “options kvm ignore_msrs=Y” >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u

    i get a failure it says

    echo “options kvm ignore_msrs=Y” >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u
    update-initramfs: Generating /boot/initrd.img-5.13.19-2-pve
    Running hook script ‘zz-proxmox-boot’..
    Re-executing ‘/etc/kernel/postinst.d/zz-proxmox-boot’ in new private mount namespace..
    No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.

    i have a ryzen 9 3900x and edit the cpu but it fails

    greets

      1. When i Start the vm and want to install macOS Monterey it says „ an error occurred loading the update„

        What can i do?

        Is the Server of apple Borken?

        1. Sorry, I don’t know what causes that error and it has never happened to me. I wonder if there are any logs available somewhere.

              1. Just SVM, the other options are for device passthrough. You can just enable them all though, no harm done.

  13. I thought because of that is Not gonna be installing the macos monterey.

    What can i do?

    I habe setup 6x everytime the same error.

  14. Hello Nick,

    Thanks for the useful guide, I have successfully installed macos Monterey on my proxmox 7 with iGPU passthrough working with display output.

    Everything was smooth even iServices are working. I just have some issues that I want to ask for help:
    1. I can’t boot with vga set to “none” – VM is booted but it after time of waiting, macOS is not really booting — confirmed by trying to login via VNC and the display output cable
    2. I have “Error code -36” while extracting big apps from dmg — Example: viber. exact error “The Finder can’t complete the operation because some data in “Viber.dmg” can’t be read or written. (Error code -36)
    3. Stutters on some app loading. I have a native hackintosh laptop that I used for years but the loading was smooth and I am using the same SSD as before. can this be caused by the overhead on proxmox? SSD is mounted to proxmox and was passed as virtIO device

    Thanks again

    1. Hello Nick,

      Just an update. I have fixed my issue #1 – I compiled myself the i915ovmf.rom and passed as parameter for my IGPU together with “x-igd-opregion=on” and now my kvm mac boots headless and with display output using only IGPU.

      issue #3 – I have somehow fixed this issue. Been tinkering with OpenCore ACPI and configs and I somehow found the solution but just forgot to backup my OC, I will consider this as a config issue only

      issue #2 – still an issue and I can’t find any fix for this. The way I extract apps from dmg now is via terminal

      1. Hi John,

        I am curious how you got the i915ovmf.rom compiled and working for Proxmox? Did you follow a set of instructions?

  15. Hello, thank you for the guide!

    I am running a coffelake Z390 setup, with ProxMox 7.1 installed. Running through the directions, my installation “freezes” at like 12% and just becomes unresponsive. I had thought this might be because I was using the recovery image, so I built a full install from a Mac, and alas it does the same thing. I cant use the mouse and keyboard to view the log in hopes of finding anything important.

    I have only used your recommended “Intel” arguments. Should I try to remove those and go with the “safe” option? I thought for sure Coffee lake would have no issues, but this is odd.

  16. And Just like that I think I solved my own problem. I noticed that you had mentioned issues with Sleep, and it would seem the installer likely has some weird issue with it as well.

    As soon as I kept the session alive properly, mouse wiggling and all, it went through without a hitch. Odd.

  17. Thanks for the very detailed guide! It all worked fine for me until I booted the VM. I was able to choose “Install Monterey”, but then it only provided me with one locked HDD to install (I assume the boot disk). No other was available, although I created the HDD as in the instructions (on an NVME drive). Any suggestions on what I might try?

  18. Hi
    Thanks for you guide. I am having a problem with getting the OSK authentication key. I have copied the first block of code from the page as mentioned and created the file in a folder on my mbp and when I execute the command:
    xcode-select –install # If you don’t already have gcc
    gcc -o smc_read smc_read.c -framework IOKit
    ./smc_read
    I get this prompt:
    quote>
    What am I doing wrong please?

    1. Your shell must not understand that the # character begins a comment, so remove that comment from the end of the line for it.

  19. I’ve tried your guide a few different times and I’ve even tried a project to automate VM creation of MacOS VM’s. I keep running into the same point though of failing to boot. OpenCore loads up just fine but whether I attempt to boot the recovery image or the full image it will show the apple logo, start to load and either hang or reboot and start the process over. I never actually get to boot into an installer, any tips?

  20. Hello,
    “Answer the initial install questions, and you’ll be logged on! Note that you will want to hold off on logging into your Apple ID until you’ve configured your Mac’s serial number in OpenCore (because otherwise a Mac with the default shared serial number in my OpenCore image will be added to your Apple ID).”

    How can I configure my Mac’s serial number in OpenCore?
    I did’t found anything about it yet.
    Could you help me out?

      1. oh Thank you,

        One question, there is a note about the serial,, What if I use a not valid yet numbers, but its will be activated? How will I know that? I have iphone and icloud acc I would like to use on the OS but I dont want to get banned..

  21. Hi Nick, I am your fan.
    I have been successfully built Hackintosh on my proxmox from Catalina, Bigsur with your guide. I really appreciate your great article.
    I have an issue with this Monterey. I have finished installing it but after setting language, etc. On the final reboot, it do a boot loop and cannot get into the login screen.
    I have used the command in the proxmox system and it shows: options kvm ignore_msrs=Y in the kvm.conf.

    I have no idea about this. Which part or settings I need to double check?

    Thank you

    Dhani

    1. Try pressing Win/Cmd + V once before selecting the boot option to enable Verbose mode, and see if there are any clues there.

      1. Hi Nick

        The error was “AppleKeyStore…. Operation Failed” something like that..Its looping.

        Thanks for your help

        Dhani

          1. Hi Nick

            I have fixed this issue. Its because I still uses the Beta version of Monterey. After using the latest Monterey, it works.

            But I have one more question. I have added the PCI device which is my (RX 570), but I think my macOS wont boot if I set to none for the display.
            If I use the VMware compatible display, it won’t show mirroring monitor. I did success when using BigSur with your tutorial before. But now, it is blank….

            Thanks

            Dhani

  22. Hello,

    thanks – it works nearly perfect – I also use an RX 580 with PCI Passthrough without problems.
    Only hotplugging of USB keyboard and mouse is not working. (also with other devices like external harddisc or usb stick)

    I use a KVM switch and when I change to another PC and back again the Mac lost the keyboard and the mouse.

    When I use a Win10 VM instead of the OSX VM with the same usb ports via the KVM the switching between the PC and the Proxmox Win10 VM works.

    Do you any idea how to fix this in OSX?

    Thank you
    Frank

  23. Hello, thanks for the guide. I have an old machine with an i7-3820 Sandy Bridge cpu. I’m able to get to the install screen where I choose to install macos monterey, but it gets about 15% in the loading screen before it reboots. My guess is this cpu must not be supported?

    Thanks,
    Sean

      1. agent: 1
        args: -device isa-applesmc,osk=”…” -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
        balloon: 0
        bios: ovmf
        boot: order=ide2;virtio0;net0;ide0
        cores: 4
        cpu: SandyBridge
        efidisk0: local-lvm:vm-100-disk-1,size=4M
        ide0: local:iso/Monterey-full.img,cache=unsafe,size=14G
        ide2: local:iso/OpenCore-v16.iso,cache=unsafe
        machine: q35
        memory: 4096
        name: macos-monterey
        net0: virtio=6E:73:68:C6:95:04,bridge=vmbr0,firewall=1
        numa: 1
        onboot: 1
        ostype: other
        scsihw: virtio-scsi-pci
        smbios1: uuid=73b5e852-034f-41b7-b46a-0310ac857610
        sockets: 1
        vga: vmware
        virtio0: local-lvm:vm-100-disk-0,cache=unsafe,discard=on,size=64G
        vmgenid: 1a7bcf0b-2024-4885-84b5-456b1a461134

            1. Run this on your Proxmox host and see if it complains that your TSC counters are drifting between cores and are being abandoned as a clocksource:

              grep -i -e tsc -e clocksource /var/log/kern.log /var/log/kern.log.1

              If so, that’s your problem, macOS panics when it sees the TSC going backwards.

              1. Looks like you may be right. Can anything be done?

                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.000000] tsc: Fast TSC calibration using PIT
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.000000] tsc: Detected 3599.994 MHz processor
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.187265] TSC deadline timer available
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.187347] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.499491] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.519509] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x33e44d1104f, max_idle_ns: 440795213615 ns
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.531514] TSC synchronization [CPU#0 -> CPU#1]:
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.531514] Measured 3358870891203288 cycles TSC warp between CPUs, turning off TSC clock.
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.531514] tsc: Marking TSC unstable due to check_tsc_sync_source failed
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.541938] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.844544] clocksource: Switched to clocksource hpet
                /var/log/kern.log:Feb 14 10:37:03 pve kernel: [ 0.858828] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
                /var/log/kern.log:Feb 14 14:39:48 pve kernel: [14584.106032] kvm: SMP vm created on host with unstable TSC; guest TSC will not be reliable

  24. Any idea what could be causing my inability to use modifier keys? I can’t type symbols, capital letters, etc.

    Thanks!

  25. thx a lot for your blog post!!

    when i start the VM PROXMOX doesnt get to OpenCore.
    I get an error that it cannot find UEFI QEMU DVD-ROM QM00003
    and in the UEFI MANAGER i cannot find OpenCore neither :/

    1. There are a number of ways to mess up the VM config that can cause that. Post your VM config and I’ll be able to tell you what to fix

      1. my old system:
        i5-3570 with 16GB Ram

        Thx for looking at it:

        agent: 1
        args: -device isa-applesmc,osk=” … ” -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
        bios: ovmf
        boot: order=ide2;virtio0;net0;ide0
        cores: 4
        cpu: Penryn
        efidisk0: local-lvm:vm-100-disk-2,efitype=4m,size=4M
        ide0: local:iso/Monterey-recovery.img,cache=unsafe,size=3141236K
        ide2: local:iso/OpenCore-v16.iso,media=cdrom
        machine: q35
        memory: 16024
        meta: creation-qemu=6.1.0,ctime=1644954742
        name: monterey
        net0: virtio=56:2D:D9:04:E3:3E,bridge=vmbr0,firewall=1
        numa: 1
        ostype: other
        scsihw: virtio-scsi-pci
        smbios1: uuid=b769fd7b-3d11-4352-aaf1-8dcf77b09d36
        sockets: 1
        unused0: local-lvm:vm-100-disk-1
        vga: vmware
        virtio0: local-lvm:vm-100-disk-0,cache=unsafe,discard=on,size=100G
        vmgenid: 79f99950-0fea-40ed-8484-a7df010291e4

    2. I have the same issue and this is my config:

      args: -device isa-applesmc,osk=”OSK KEY WITHOUT QUOTATION MARKS” -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 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
      agent: 1
      balloon: 0
      bios: ovmf
      boot: order=ide2;ide0;net0;virtio0
      cores: 4
      cpu: Penryn
      efidisk0: local-lvm:vm-301-disk-1,efitype=4m,size=4M
      ide0: DS416play:iso/Monterey-full.img,media=cdrom,size=14G
      ide2: DS416play:iso/OpenCore-v16.iso,media=cdrom,size=150M
      machine: pc-q35-6.0
      memory: 4096
      meta: creation-qemu=6.1.1,ctime=1645225056
      name: CL01MacOS
      net0: virtio=BE:79:2C:AD:78:C6,bridge=vmbr0,firewall=1
      numa: 1
      onboot: 1
      ostype: other
      scsihw: virtio-scsi-pci
      smbios1: uuid=e44387ae-f6fe-402d-93b4-3cd8ee584879
      sockets: 1
      vga: vmware
      virtio0: local-lvm:vm-301-disk-0,cache=unsafe,discard=on,size=64G
      vmgenid: 88660ff6-3c72-410a-b867-6698181d4d52

      Even with machine: pc-q35 (newest) it does not work.

      Do you have any ideas? It’s Proxmox 7.1-10

  26. Hi Nick, thanks for the amazing tutorial!

    Is there any advantage having the EFI on local disk instead of using your opencore.img as the boot drive?

    Regards
    Marcos

    1. Proxmox will refuse to snapshot the VM if you have the OpenCore.img attached as a separate disk (because it doesn’t know how to snapshot a file). Apart from that it doesn’t really matter either way.

  27. Hi Nick, Thanks for the tutorial.
    I’m having an error when launching the VM for the first time. Any help would be appreciated.

    kvm: -device ide-hd,bus=ide.0,unit=1,drive=drive-ide1,id=ide1,bootindex=101: Can’t create IDE unit 1, bus supports only 1 units
    TASK ERROR: start failed: QEMU exited with code 1

    1. If you are using IDE disks they must have indexes 0 and 2, you can’t have IDE0 and IDE1 because this places two disks on a single controller, which QEMU doesn’t support. (0 and 1 are on one controller and 2 and 3 on the other)

  28. Hi,

    thanks for this extensive explanation.
    I am still stuck at the EFI shell and have already followed the procedure from the “Fixing “guest boots to UEFI shell”” paragraph.
    Any idea?

    1. Most likely you didn’t untick the option “pre-enroll keys” when you added your EFI disk. On your hardware tab, remove and delete the EFI disk, then re-add it and be sure to untick that option.

  29. Read before asking … 😉
    This did the trick “Remove and delete the EFI disk from the hardware tab, then re-add it and be sure to un-tick the “pre-enroll keys” tickbox this time”

  30. I got this error message like MacOS crash upon choosing the monterey install boot after OpenCore up and running. Then it will be on a loop trying to run macOS installer.

    I’m getting my monterey using the new Macbook Pro M1Max will that be the cause of the problem? Should I try to redownload and making a new img using intel version MacBook?

  31. Hey Nick,

    I have managed to get Monterey running (confirmed in a browser) on Proxmox 7.

    Whilst I have been able to successfully passthrough my 5700XT GPU to a Windows VM, I can’t seem to get it to work properly with Monterey. I either get a black screen or black with pink artefacts on screen.

    I have only seen this type of output with a conventional Hackintosh, which needed sorting out in the config.plist and installing the appropriate kexts for the hardware.

    Do you think this could be the same kind of problem?

  32. Hi Nick, this is a great tutorial that allowed me to install Monterey on Proxmox 7. I need a second virtual machine on my ProxMox-server with Mac OS El Captian for an old program. I read in GitHub that your OpenCore.iso should in principle also be suitable for El Capitan.However, I am not able to install it together with an installation.iso of El Capitan (7.67 GByte). I always end up in the EFI shell. The installation does not start. I have already rebuilt the VM from scratch several times. Unfortunately without success. I would be very grateful for any advice that leads to the goal.

  33. I have tried several methods to install Monterey on proxmox but always ends up with the install apple logo frezzed or in a boot loop even doing the msr coding. I’m on a i9 10850k, 32gb ram, nothing special think.

  34. I’m trying my very best to find an answer to this, but my research capability sure ain’t good enough. Is it at all possible to run MacOS locally on the Proxmox computer, or is this a remote solution only? Please (with sugar on top) provide a write up on how to boot directly into MacOS and not only Proxmox CLI. If it’s not possible, please just tell me straight. Thank you!

    1. I think yes but it’ll need passthrough of compatible WiFi and Bluetooth and perfectly working iServices. I’ve never attempted it.

  35. Hi Nick,

    I’m having issues trying to apply an OSX update. I’m currently on 12.0.1 but trying to apply the update to 12.2.1.

    I wait the 20mins to download, it reboots and as normal I have a new volume show up ‘Macintosh HD’. If I boot from that it looks like it tries to update (still in the verbose text section i.e. it haven’t gone into graphics mode yet) then reboots (sometimes it’ll get stuck at smcreset and I’ll have to stop the VM). It doesn’t matter how many times I repeat this. If I select my normal boot volume it just returns me to 12.0.1 as if nothing has happened.

    How do you suggest I fault-find this?

    1. You can side-step this problem by building a new full installer for 12.2.1 and booting from that to run the upgrade. Take a snapshot first.

      1. Hi Nick,

        Thanks for the response. So if I download the full image and create a boot usb with it, do I just add that to the Proxmox VM as a USB device? Will it show up on the opencore device list?

        1. You can just use the same procedure I describe in this post for creating and using a full installer for the VM.

          1. Hi Nick,

            Sorry for being so dense…I wasn’t aware that ‘upgrade’ was an option from the full installer. Are you suggesting a fresh install and then ‘migrate’ to the new build?

            1. The full installer can do an upgrade happily, it looks the same as performing a regular full install except you just don’t erase the disk to start with (IIRC the installer doesn’t mention “upgrade” in its verbiage, it uses the same “click here to install macOS” text).

              This feature is brought to us by macOS’s read-only system volume, which contains the whole OS and is the bit that is erased and replaced during a Full Install, and is otherwise only modified during system updates. Our user data stays untouched and safe on the Data volume.

              1. Followed your recommendation and all done.

                Initially it didn’t work but after upgrading Opencore and the kexts, sailed through.

                Thanks

  36. For some reason assigning Monterey more than 1 core gets it stuck in a bootloop (rebooting once the loading bar gets about 1/3 of the way)
    I had no problem with Big sur and multiple cores, but even when updating it from big sur, the moment the update is applied it throws a fuss

  37. Thanks so much for this guide. Got iMessage and GPU passthrough on my vega 64 which i’m happy to I mostly don’t need to reboot the

    I noticed that when you do a ‘csrutil status’ (via the Recovery -> Terminal Menu) that the SIP status of the different configuration is varied.

    I tried enabling SIP – however this lead to a stalled boot hanging at the loading bar screen (~40%).

    I then re-disabled SIP and booting works again.

    Is there a requirement for SIP to be (mostly) disabled for this method to work?

        1. Think I’ve managed to get it sorted so far.
          what worked for me:
          #totally disable sip
          csrutil disable
          # shutdown vm and reboot host
          #enabled sip
          csrutil enable –no-internal
          # shutdown the vm and reboot the host, I fear this is to do with the reset bug on the amd vegas, as I was simply restarting the guest.

          again – amazing writeup 😀 love your work.

  38. Hi Nicholas

    Thanks for your time in putting together this guide.

    I’m planning on installing Monterey on my current Hackintosh which is running a working installation of Mojave using Clover (I didn’t set it up myself but I need to upgrade soon). I also have a MacBook Pro which I can use for getting the OSK key (unless I can get it from my current installation). I’m pretty much a novice here so please be forgiving!

    I had a brief read through the guide but got confused about a few things, first off do I have to build the installer on the machine I intend to run it from, I’m assuming yes? or can I build the installer from my MacBook? Also do I need to have Xcode installed on the machine I get the OSK key from as the command you ran mentioned it.

    Thanks

    1. >do I have to build the installer on the machine I intend to run it from

      No, it can be built anywhere, the recovery installer can even be built from Linux (but since you have access to a Mac you can use it to build a full installer, which is better since it avoids having to download macOS during the install process, which is slow especially if you have to do it more than once).

      You can actually just Google for the OSK key instead, since it’s the same on every Mac.

  39. Hi Nicholas
    Thanks for your guide.
    I have successfully installed it, but when I open the app “QQ” crash, it can download in app store, can you test it on your pc?
    this is crash report.

    Time Awake Since Boot: 22000 seconds
    System Integrity Protection: disabled
    Crashed Thread: 0 Dispatch queue: com.apple.main-thread
    Exception Type: EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
    Exception Note: EXC_CORPSE_NOTIFY
    Termination Signal: Segmentation fault: 11
    Termination Reason: Namespace SIGNAL, Code 0xb
    Terminating Process: exc handler [4549]

    By the way, I used install macos in unraid, they’re all based on KVM. But the unraid’s mac doesn’t crash. Can you give me some advice?

    1. That’s likely to be due to a difference in SIP setting (I see you have it disabled on this VM) or CPU feature flags (make sure they match between VMs). I’ll check it here tomorrow.

    2. It crashes for me too. Looks like it posts a system notification and then crashes while processing that same notification, I’ll do some quick reverse-engineering and see if the stack trace reveals any further details.

  40. Hey Nick!

    I can’t install macOS Monterey anymore after the 12.3 update… are you facing this issue too? Previous versions of Monterey and other systems continue to function normally…

  41. Hello Nicholas,

    1st of all – thanks for your graet write up.

    I want to ask – what is you recommendation for the macserial – what kind of machine should I choose?
    I want to use at least 16 cores and 16-32 GB of RAM and passthorugh my W6600 to the VM and use 4 Monitors.
    I tried MacPro7,1 which seems to work fine for me up to Monterey 12.2.1 – can’t install 12.3 on it.
    While I can do a fresh install using your OpenCore-ISO.
    As you said 12.3 doesn’t seem like a good idea right now – but it would be nice to be able to do future updates.

    What would be your recommendation?

    Best regards,
    Michael

    1. It’s impossible to guess what will be good going forwards. I use iMac14,2 personally and that works nicely for my setup. Pretty much only the GPU differs from VM to VM, so the model need only be chosen to support a discrete GPU.

      1. iMac14,2 means iMac Late 2013 with up to 4 core.
        Would this work if I drive it with 16 cores?
        As I understand your setup you passthrough 8 cores with SMT!?
        Would this support my Radeon Pro W6600?

        I could give it a try, when I am home tonight.

        The only Mac that might support my GPU (Radeon Pro W6600) somewhat “directly” – AFAIK – would be a MacPro 7,1 – should I use this and try to downgrade to some other modell for my Updates? Like before going to version beyond 12.2.1?

        Thanks and best regards,
        Michael

        1. I don’t think macOS really cares that much about verifying model details. I pass 32 threads in two sockets which obviously the iMac never had, and it definitely didn’t have an RX 580 either. Just try it and see.

          1. Didn’t have time to test GPU-passthorugh – but upping core to 16 worked – I just wonder why it didn’t work before – I used a different iMac Modell(somthing like more current iMac Pro), but that booted with 8 cores and stopped booting with 16…

            But thanks again – works fine.

            Fun fact: with 8 cores MacOS reports i5 8-core with 16 it reports unknown…:-)

  42. At the step where the virtual hard drive needs to be erased/formatted this virtual hard drive does not show up in my disk utility. I can only see the macOS Base System there.
    But in the Hardware list of Proxmox there is the “Hard Disk (virtio0)” local-lvm:vm-171-disk-0,cache=unsafe,discard=on,size=500G

    Could you give me a hint whats the problem here?

    1. That is unusual, you may need to tick the “show all devices” menu in Disk Utility for it to appear.

      1. thanks for your quick answer!
        Unfortunately this just made the qemu HARDDISK MEDIA show up, where only this “macOS Base System” is inside. Could it have something to do with the fact that I’m doing all of this with an external ssd drive or the fact that I also got this error message “No /etc/kernel/proxmox-boot-uuids found” in the step before?

        1. No, that message is just informative and not an error.

          Can you share a screenshot of Disk Utility? And maybe your VM config too

            1. No, I mean the whole text content of your VM’s config file.

              It not showing up is really bizarre, you can try changing virtio0 into sata1 in your config file to try SATA instead.

              1. oh damn it, that brought me to the solution. There was a ” missing after the osk. Stupid mistake. Now its also booting a hundred times faster into the recovery mode. Thanks for your help!

  43. Hi Nick,
    When I’m trying to install qemu-utils I receive the following error:

    $ sudo apt install qemu-utils
    Reading package lists… Done
    Building dependency tree… Done
    Reading state information… Done
    The following packages were automatically installed and are no longer required:
    gstreamer1.0-alsa libcrypto++8 libgpod-common libgpod4 liblastfm5-1 libmygpo-qt5-1 libsgutils2-2
    Use ‘sudo apt autoremove’ to remove them.
    Suggested packages:
    debootstrap qemu-block-extra
    The following packages will be REMOVED:
    proxmox-ve pve-container pve-ha-manager pve-manager pve-qemu-kvm qemu-server spiceterm
    The following NEW packages will be installed:
    qemu-utils
    0 upgraded, 1 newly installed, 7 to remove and 0 not upgraded.
    Need to get 0 B/1,204 kB of archives.
    After this operation, 291 MB disk space will be freed.
    Do you want to continue? [Y/n]

    Specifically, Why do I receive this message about removing Proxmox components? How do I get around it? The system is up to date.

    1. pve-qemu-kvm already provides the qemu-img command, you don’t need to install any additional packages

  44. Man, how much do you take to remote on my system and do all this ? 😀

    I thought the ProxMox thinkgy was walk in the park, well, it’s not 🙂

  45. I managed to install monterey and then overwrote this EFI partition.
    When I tried to remove the OpenCore and the Monterey installer drives from the Hardware tab, because there was no other remove button available I went to “More”-> Remove. And accidentally deleted my virtual machine instead…
    I did make an update right before though.
    After restoring the backup I couldnt start the machine anymore: “storage ‘local’ does not support content-type ‘images’.”
    Is this something I can save or do I have to start from scratch? I thought this backup would work easily like shown in some youtube videos.. hmm

    1. The one that makes you type in the ID of your VM to confirm you really really want to delete it? Lol

      Probably the backup got confused by the attached Monterey and OpenCore disk images and has mangled the config lines for those, remove them from the config file.

      1. never claimed that it was not completely stupid ^^

        I deleted those lines now. When starting the virtual machine I end up in the UEFI Interactive Shell.
        When trying to shutdown I get
        “VM quit/powerdown failed – got timeout”
        and
        “can’t lock file ‘/var/lock/qemu-server/lock-171.conf’ – got timeout”

        this is how my conf file looks like now:
        args: -device isa-applesmc,osk=”…” -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
        bios: ovmf
        boot: order=ide2
        cores: 2
        cpu: Penryn
        efidisk0: local-lvm:vm-171-disk-0,efitype=4m,size=4M
        machine: q35
        memory: 28000
        meta: creation-qemu=6.1.1,ctime=1647983576
        name: macos-monterey
        net0: virtio=42:E2:7E:2B:B9:13,bridge=vmbr0,firewall=1
        numa: 0
        ostype: other
        scsihw: virtio-scsi-pci
        smbios1: uuid=fe51abea-b185-4717-8013-03ffb5fd84da
        sockets: 4
        vga: vmware
        virtio0: local-lvm:vm-171-disk-1,cache=unsafe,discard=on,size=500G
        vmgenid: e8e80c3e-fce2-43ef-bcde-3c9e4022ad69

        Thanks so much for your help!

  46. If you had already installed OpenCore on your hard drive at this point, update your boot order to boot from the virtio disk.

    Otherwise re-add the OpenCore iso as normal and set it to boot from that.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.