Installing macOS High Sierra on Proxmox 5

This tutorial for installing macOS Sierra has been adapted for Proxmox 5 from Kholia’s GitHub project for installing into vanilla KVM. There is more documentation there which will help out with enabling extra features and diagnosing problems!


I’ll assume you already have Proxmox 5.1 installed. You also need a real Mac available in order to download High Sierra from the App Store and build the installation ISO. Your Proxmox host computer must have an Intel CPU at least as new as Penryn (I believe you would need a a custom Mac kernel in order to use an AMD CPU).

First step: Create an installation ISO

On a Mac machine, download the macOS High Sierra installer from the App Store (this will download it into your Applications folder).

Check the size of the completed download. Some people will end up with a 16MB installer, and some will receive the full 5GB installer (nobody knows why yet). If you received the 16MB version, follow the instructions here to get the full 5GB version instead.

Now run this script in order to create HighSierra.iso from the installer. The ISO should get saved to your desktop. Upload the ISO to your Proxmox server’s ISO store (typically /var/lib/vz/template/iso).

Prepare a Clover image

We’ll be using Clover as a bootloader for High Sierra.

Download this Clover disk image (that I built using kholia’s build script from Clover r4243), 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. (I do it this way because Proxmox has nicer tools for storing and picking .iso files for us)

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). Run the first bit of C code from this page (you’ll need XCode installed) and 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 if 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, make sure “use tablet for pointer” is set to “Yes”. Change “BIOS” to “OVMF (UEFI)”.

In the Hardware page for the VM, change the the Display to Standard VGA (std). Add a second DVD drive at IDE0, set it to use your HighSierra.iso. Add an “EFI Disk” too.

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 (with nano or vim). Add these two lines, being sure to subtitute the OSK you extracted earlier into the right place:

machine: pc-q35-2.9
args: -device isa-applesmc,osk="THE-OSK-YOU-EXTRACTED-GOES-HERE" -smbios type=2 -cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on

Find the two lines that define the CDROM drives (ide0 and ide2), and remove the “,media=cdrom” part from both lines. Add “,cache=unsafe” in its place. If the Sierra boot option doesn’t appear in Clover later, try adding “,media=cdrom” back to the line for the Sierra ISO.

On the net0 line, change “e1000” to “e1000-82545em”. This variant is supported by OS X.

High Sierra doesn’t support QEMU’s PS2 keyboard and mouse, but it does support the USB tablet we’ve selected on the Options page (thanks to Jack H for the tip about the tablet!) Edit /usr/share/qemu-server/pve-q35.cfg and add a USB keyboard to the bottom of the file to replace the PS2 one it would provide by default:

[device "keyboard1"]
 driver = "usb-kbd"
 bus = "ehci.0"
 port = "2"

(Port 1 is occupied by the USB tablet that Proxmox will provide for us)

We’ve added this to the config file instead of to the VM’s args directly. If we were to add it to the VM’s args, then when Proxmox constructs its call to KVM to launch the VM, the device definition would appear before the pve-q35.cfg file is included, which defines the USB busses. However, the device definition must appear after the definition of the USB bus that it refers to.

Note that this file is whitespace-sensitive, make you you don’t add any blank lines that have extraneous spaces on them.

Return to the Options tab and change the boot order to put IDE2 (the Clover image) first.

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

You must now install a patched version of Proxmox’s QEMU in order to be able to boot High Sierra, until this patch is merged by the upstream.

Install High Sierra

Now start up your VM.

Go to the Console tab, quickly hit Escape at the Proxmox logo to enter the OVMF configuration. If your keyboard doesn’t work, leave the Console tab, stop the VM, start the VM, then re-enter the console tab.

Follow the steps above to set the screen resolution to 1024×768 and “reset” to apply the new settings (not “continue”). This step is required to avoid scrambled graphics (Clover resolution must match OVMF resolution). It should now boot into Clover.

Clover boot screen

Press enter to boot the “Boot OS X Install from Install macOS High Sierra” entry and the installer should appear. Choose your language.

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 we’re ready to begin installation!

After the first stage of installation, the VM should reboot itself and continue installation by booting from the hard drive. Answer the initial install questions, and you’ll be logged on! (Note that you’ll probably want to hold off on logging into your iCloud account until you’ve configured your SMBIOS to your liking in Clover Configurator)

Make the Clover install permanent

We’re currently booting using Clover from the attached CD image. 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 Clover CD and overwrite the EFI partition on the hard disk. The Clover CD is the one with the “linux filesystem” on it, and the main hard disk is the one with the large Apple_APFS container partition on it.

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

Now shut down the VM, and remove both the Clover and the Sierra CDROM drives from the Hardware tab. On the Options tab, edit the boot order to place SATA0 as the first disk. Boot up. If everything went well, you should see a Clover boot menu, and you can select “boot macOS from *disk*” to boot High Sierra.

Sleep management

I found that I was unable to wake High Sierra from sleep using my mouse or keyboard. You can either disable system sleep in High Sierra’s Energy Saver settings to avoid this, or you can manually wake the VM up from sleep from Proxmox by running:

qm monitor YOUR-VM-ID-HERE

Editing your Clover/EFI settings

You can use the Clover Configurator tool to edit your Clover configuration, which is stored in the hard drive’s EFI partition. This tool should mount the EFI partition for you. If you want to mount it without using Clover Configurator, first check the device name of the EFI partition in the terminal:

~$ diskutil list
/dev/disk0 (external):
   #:             TYPE   NAME           SIZE       IDENTIFIER
   0: GUID_partition_scheme             512.1 GB   disk0
   1:              EFI   EFI            209.7 MB   disk0s1
   2:        Apple_HFS   Main           511.8 GB   disk0s2

Then you can mount it like so:

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

Passing through advanced CPU features

You can pass through CPU features like AVX and AES-NI for increased guest performance, see here for details.

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
 Bus 3, Addr 6, Port 11, Speed 12 Mb/s
 Class e0: USB device 0b05:17d0,
 Bus 3, Addr 2, Port 1, Speed 1.5 Mb/s
 Class 00: USB device 068e:00f2, CH PRO PEDALS USB

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. It’s possible to hot-add USB devices, but I just rebooted my VM 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.

PCIe GPU passthrough

For near-native graphics performance you can pass through a video card. There are details in the Proxmox manual. You should also check out Hackintosh tutorials for more details on installing the drivers correctly (and configuring Clover correctly) for the card you want to install.

If you don’t want to pass through a video card, but want to bump the screen resolution up to 1920×1080, use Clover Configurator to set Clover’s screen resolution to match that, then enter the OVMF settings at boot time by pressing escape, and set the new resolution there as well.

117 thoughts on “Installing macOS High Sierra on Proxmox 5”

  1. hi !
    i have not tested yet, but does it work whit filevault ?
    even with sierra ? (i have one working but i’m looked out when i have activated filevault, i can’t type anything at the pre-login screen)
    even on a remote proxmox ?

    1. It encrypted my disk for me, but the FileVault preboot option doesn’t work properly. It seems like the keyboard and mouse both stop working, so I’m unable to enter the password, and the screen doesn’t paint correctly:

      I was able to use the Recovery environment to unlock the drive.

      It might be that some combination of input device kexts could fix this.

    2. I don’t know what version of OVMF promox uses but there is a problem with Clover + recent OVMF’s that make certain pages readonly.

      1. The Clover revision noted in this post and the very newest OVMF from Proxmox 5.1 definitely works, as this is the combination I use as my daily-driver. Proxmox supply a customised version of OVMF.

        It might be possible that the High Sierra installer has issues with it though?

        1. I would probably guess that it is the APFS.efi UEFI driver that is the problem. So it might be only if you are running APFS. Anyhow, debugging OVMF+Clover will take a lot of time at the moment.

          I was able to reproduce this problem this using kraxels latest build. I then git bisected this and found that the problem occurs since commt 2ac1730bf2a51d6d0483347a.

          If anyone needs to build clover again, I used linux, and checked out edk2 the added Clover as a submodule. I didn’t bother with any of the patches for edk2 in clover. I then built the tools in edk2 (make -C BuildTools), sourced the setup in the and the “build -p Clover/Clover.dsc -a X64 -b RELEASE -t GCC5”

          I just needed 3 files in the ESP parition, clover.efi into EFI/BOOT/BOOTX64 and DataHubDxe.efi and OsxAptioFix2Fdx.efi into the driversUEFI directory.

          The crash happens when the OsxAptio module tries to load the mach kernel.

  2. Love these tutorials, Nick! Never noticed the comments section on your site. Half way through this High Sierra tutorial now – will report back shortly. 😀

    1. Had an issue with getting the High Sierra installer to appear in Clover. This was fixed by leaving `media=cdrom` in the HighSierra.iso line. Installer seems to be working fine with this setting.

        1. No problem! I’ve got a few more issues which I’m still trying to iron out. Hoping to fix them over the next week

  3. Another update! I found that my mouse had an irritating offset when using Proxmox’s console. Fixed by using this in the pve-q35.cfg file in place of your mouse1 device….

    [device “mouse1”]
    driver = “usb-tablet”
    bus = “ehci.0”
    port = “1”

    Working perfectly in the installer!

    1. Huh. How did you get this working? If I add it in, my vms become unbootable and it throws an error message about it being an invalid arg.

  4. Hi, first, thanks for the tutorial.
    I am not sure what is wrong, but I am not able to boot clover. There is just a hang, and the UEFI shell is opening. So no boot in the clover. :-<
    Thanks for any idea,

    1. Hm, maybe try the suggestion in the other comment to add back the media=cdrom part on the High Sierra CD drive in the VM configuration.

  5. Question – can you enable the caching service with this? System preferences, sharing, caching.

    Or terminal, sudo assetcachemanagerutil activate (I think)

    I can’t get those working on any vm yet

  6. First of all I want to thank you for this great tutorial!

    I encountered a strange behavior of the SATA disk I attached to Promox. It did not show up. When hot plugging an IDE drive, the SATA drive did show up in the disk util. Any idea?

    I would really like to see a tutorial, that includes GPU redirection, as this would be an way of setting up powerful VR-ready setups.

    1. Proxmox is a hypervisor, so it acts as an operating system itself. You install it as an OS on a bare computer. If you’re currently running Debian Linux then it’s also possible to just install it into your current OS as a package.

      1. Thanks for your reply! So I install it on a clean computer, afterwards I can configure the VM through the WebUI on a different machine, is that correct?

          1. Awesome! Seems clear to me now. Last question (I promise) Do you boot into the VM directly when booting up your machine? Or do you need to run an additional command through Proxmox first?

  7. You can set a “start on boot” flag on a VM which will cause it to start automatically after Proxmox boots with no user interaction required (just hit the power button and wait).

      1. There’s actually a wrinkle with Proxmox and WiFi. The problem is that Proxmox sets up a network bridge to connect itself and the guests to the network, and this bridge is supposed to be responsible for choosing the Proxmox host IP address. However, it seems that a lot of WiFi systems don’t allow this, they want to manage one single address for the interface themselves.

        The net result was that I just couldn’t figure out how to achieve it with my hardware. Maybe turning on WDS on the hotspot could fix it?

        If you search for “vmbr0 WiFi” you’ll find other people’s efforts to solve it. (vmbr0 is the name of the default bridge). For example:

        “Don’t bother. Most wireless cards, including Broadcom cards, cannot see traffic for more than one MAC address. So even if you find 64-bit Windows XP drivers for the card that actually work with ndiswrapper, you won’t be able to use it usefully with Proxmox VE. (You won’t be able to successfully bridge your VMs virtual adapters over the wireless network.)”

  8. Hi Nick!

    Just wondering if you’re getting any CPU stuttering on your setup?
    I’m getting random lag spikes for a split second – wondering if it’s anything to do with the emulated frequency?

    1. Mine’s pretty smooth. MacOS can read the actual CPU frequency using the vmware-cpuid-freq option in the VM args, so it should see the correct frequency. The invtsc option should allow macOS to perform accurate timekeeping for smooth animations.

      I do sometimes get lag spikes when there is disk IO on the host, but I assumed that was just down to my hardware. Since I pass through an NVMe SSD for macOS, there’s no good reason for it to stall when the host is doing disk IO on other drives…

      1. Thanks Nick! I’ll pick up an NVMe drive when I get the chance and give that a go – worst case scenario I can just use it as a cache or a new boot drive on another machine.

        1. A regular SSD presented as a virtual SATA drive, or a regular SSD attached to a passthrough SATA controller, should both be an improvement too, if you have a spare SSD to try that with.

          NVMe is so perfect for passthrough since each drive is its own PCIe device.

  9. I’m having some weird display issues. The display is all teared up, although it does boot fine into the installer. Any idea how to fix this or what could have caused it?

    1. This will happen if the screen resolution set in the guest UEFI options doesn’t match the resolution configured in Clover’s options.

      1. I’m absolutely sure I configured it correctly, but after setting the resolution in the bios again, the display is now working. Maybe I did make a mistake… Thanks for the tip and the great guide!

        1. I had to set it to a different resolution, reset, boot, more tearing, reset, change resolution to 1024×768 again, reset, boot.

          The giveaway is that the Apple icon whilst booting is not centered.

  10. I’m having great difficulty in getting the OSK authentication key. When I run the code with Xcode, the only output I seem to be able to get is a message along the lines of “our hard-work…”.
    Could you please inform me how I can get this key.

  11. Hi,

    thank’s for your tutorial.
    I have a little problem, I can’t see HighSierra.iso in clover.
    I can see it on the console tab, in boot manager (named UEFI QEMU HARDDISK QM00003), but not in clover.
    My clover.iso is saw as UEFI QEMU HARDDISK QM00001) in boot manager.
    I make a lot of tests, inspired by your 2 tutorials.
    For example, I can’t start with vmware-cpuid-freq=on option
    -> kvm: can’t apply global Penryn-x86_64-cpu.vmware-cpuid-freq=on: Property ‘.vmware-cpuid-freq’ not found
    So I start without it.
    I tried to start using enoch, not better.

    Any ideas ?

    proxmox 4.4.13
    kernel 4.4.59-1-pve


    1. This tutorial requires Proxmox 5 for those new QEMU features like the frequency one.

      If the ISO does not appear then try removing or adding media=cdrom to the line for that ISO in the VM configuration

  12. Sorry, another what is probably another silly question. When trying to set boot order, I don’t get the option for ide2. Just sata0, CD rom, network.
    Would it start off with Cd rom first?

  13. Very nice step by step tutorial, but I am running into the same problem a few above have brought up. I am not seeing the mounted CDROM iso in clover.

    proxmox-ve: 5.1-26 (running kernel: 4.13.4-1-pve)
    pve-manager: 5.1-36 (running version: 5.1-36/131401db)
    pve-kernel-4.13.4-1-pve: 4.13.4-26

    I have the following disks:
    Hard Disk (ide0): local:iso/MacOS_High_Sierra_13.1.05.iso,cache=unsafe,size=5510527K
    Hard Disk (ide2): local:iso/clover-r4243-amd64.iso,cache=unsafe
    Hard Disk (sata0): local-vm:vm-103-disk-1,cache=unsafe,size=32G

    Boot Order: Disk ‘ide2’, CD-ROM, Network

    I’ve tried toggling media=cdrom and a few other things, but not seeing any install option in Clover. Any ideas?



    1. Gee, I hope this isn’t an incompatibility with Proxmox 5.1 (I’m still on 5.0)! I’ll have to upgrade here and see what happens.

      Try rebuilding the Sierra ISO just in case. I can’t think of anything else that would modulate this behaviour… is the VM set for UEFI/OVMF boot?

      1. No I don’t think so, I just upgraded to 5.1 today since I was running into the same issue on 5.0 and ran out of easy troubleshooting and thought I would give it a try. The VM is set for UEFI and clover comes up fine, just no mounted cdroms. I’ll try rebuilding the iso and try some other isos and then dive into more detail if that doesn’t work.


  14. Looks like it was a bad ISO; rebuilding it fixed the issue. Now I seem to have a problem with the display. Clover looks fine, but when going to install I get a mac logo shifted up and left. During the loading step the screen is totally scrambled. Making the display 1024×768 didn’t help (and have been trying other resolutions).


    1. That’s definitely a screen resolution issue. Are you picking the option in the UEFI to save and reboot correctly?

      You can probably confirm what resolution Clover is set for within its configuration menus.

  15. Install went fine, but after reboot when going through the initial options it reboots after the networking section. If I set it up without a network connection it finishes correctly. But the Networking section in preferences does not open. Any ideas?

    1. That’s weird, I’ve not seen that before! Does the dialog open if you remove the emulated network card? If so, maybe you can pass through a real network card instead so it’ll use a different driver.

  16. Thank you so much for this site, which helps a lot!

    Unfortunately I’ve got a problem.

    When booting into Clover for the first time, I can see a device, named “optical”. When I choose that one and pressing Enter, nothing happens. If I press Space on the keyboard, everything freezes.

    Also, when marking the “optical”-device, it’s name is:

    Boot Legacy OS from APPLE INC., TYPE: 002

    It should look as in your screenshot.

    What is wrong?

  17. Thanks for your answer. Yes, I’ve tried removing that, but then Clover doesn’t recognize any OS at all.

    Yes, the VM is set up for UEFI/OVMF. Have also tried to rebuild the High Sierra ISO two times (even downloaded High Sierra from AppStore each time).

    I’m running Proxmox 5.1.

    1. I tried with an old Lion ISO, and it started – I got to the installation and doing a testinstallation now! So it has to be my High Sierra ISO that has some issues. Strange…

  18. Nick your blog has been priceless for setting up macOS guests in proxmox for me. Thanks.

    I have a couple questions if you can spare some time.

    In your experience when using an UEFI compatible GPU and OVMF/EFI BIOS guest in Proxmox does the system shutdown/reset properly AND allow you to start up the guest VM without restarting the HOST?

    I have used your blog to build a guest VM with SeaBIOS using my GTX 580. My GPU will only properly reset in Windows. Linux and OSX systems cause my host to require a restart when shutting down the VM. If using UEFI doesn’t resolve this than I hope to avoid spending the money to upgrade my GPU. Your answer would be valuable to me. Thanks in advance.

    Furthermore, are you doing any USB controller passthrough? I have read many success stories at insanelymac. But I am having the hardest time. I can USB Passhthrough my host keyboard and mouse. But known native working USB devices will not USB Passthrough (USB Webcam works perfectly on hardware Mac – wont USB Passthrough without error) and when I PCI Passthrough a USB Controller I get mild success — Hard/flash disks work fine. That same webcam will not work. And even an Apple mouse and host mouse when moved to passed-through port will not work.

    If you have PCI passthrough working with a USB Controller can you share your PCI device details?

    Thanks again for sharing your research and guides.

    God bless.

    1. >UEFI compatible GPU and OVMF/EFI BIOS guest, system shutdown/reset properly without restarting the HOST?

      I used to have troubles with my Radeon R9 280X hanging the host when trying to move it between OS X and Windows guests, but I don’t recall if the host or guest was using UEFI at that time, sorry!

      My host and my Windows, Linux and High Sierra guests currently boot UEFI. (Note that Proxmox can’t use a ZFS root volume when booting UEFI). My eVga GTX 750 Ti and eVga GTX 1060 both passthrough great in this configuration, and don’t need a host restart between guest boots. I’m switching the GTX 1060 between macOS and Windows guests, and the GTX 750 Ti between macOS, Linux and Windows guests. Another thing that I think helps this configuration is that my host has a VGA adapter onboard which is set as the primary video adapter in its UEFI setup, which I believe avoids initialising the discrete video cards during host boot.

      >Furthermore, are you doing any USB controller passthrough?

      I used to pass through individual USB devices, but it was a pain having to change my configuration for each new USB device I wanted to attach. So now I just use PCIe (not PCI) passthrough to pass 3 USB controllers to macOS: 2x “Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller” and 1x “Fresco Logic FL1100 USB 3.0 Host Controller [1b73:1100]”. That Fresco Logic chip is on this adapter:

      1. Hello, first thank you for this guide.

        I have done all the things above and mostly everything is working on my Dell T30 with Geforce TI 1050 GTX.
        I only have 2 problems at the moment:

        1. I can only passtrough one USB-Device (in my case a Logitech Unify for mouse and keyboard), but no other device at the same time. The macos system stopps using any of them, but it doesnt freeze. I can connect to it over Apples Screeen Sharing. If i delete the second USB and only use the Logitech, it just boots fine. Do you have a solution for this?

        2. Did somebody find a solution for the sleep issue, i dont want to use another pc for waking up the macos

        3. I cant passtrough -AVX and -AVX2, if i do it like you said, the macos won’t start. But thats no big problem for me.

        thx in advance.

        1. Instead of USB passthrough, I use PCIe passthrough and pass through an entire USB controller, I find that this works much better.

          I just disable sleep in macOS to avoid it, which is a bummer.

          If your CPU is the Pentium G4400, then I don’t think it supports AVX. You should be able to passthrough AES-NI though.

          1. ok, thank you.

            Just bought a Usb 3.0 PCiE Board Controller.

            No it is a Xeon E3 1225v5, so it should work. But Ok. Performance is good.

            The sleep issue is really a bad thing on a 24/7 server… 😉

  19. Nick, thanks for your great post, very helpful.

    Are ACPI power commands from Proxmox supposed to work with this setup or are additional steps required?


    1. They don’t work for me either, which is annoying. Let me know if you find a solution!

      I suspect the answer is that real Macs don’t use ACPI for the power button, but I don’t know for sure.

  20. Hello. Thank you for putting together this guide! I currently have a hackintosh so I get all the clover part. Is it the same standard upgrade process as a Hackintosh after the intial install? Where you can just install the next major MacOS release as long as you have updated Clover first? Or do you have to wait for Proxmox updates to be pushed to mess with the proxmox config file every time?

    1. The only time I had to mess with things was when Sierra 10.12.4 added more copy protection and I had to patch QEMU (I could have used FakeSMC instead to fix this). Apart from that, it upgrades just like a regular Hackintosh – with the bonus that you can take drive snapshots to roll things back instantly if something goes wrong!

  21. Hi All,

    Working my way though this tutorial..

    Im able to boot into CloverLeaf and select Boot OSX, But then my system just hangs on the Apple logo 🙁

    And Ideas whats causing it?

    1. Hit space at the Clover menu and choose the Verbose boot option. The last message printed will suggest why it’s going wrong.

      Which CPU do you have by the way?

  22. Hi,

    I found a pretty good solution on the suspend issue for me.
    Since we are all using Proxmox, I think we all have other small Linux VMs running in the background. With this setup and a small IoT Button I can wake up my “iMac” without going to a terminal.

    What I have done is to use an Amazon Dash Button and Dasher, a tool for triggering commands if the AMZ button is pushed. Link:

    So dasher is waiting (in a virtual Linux VM) for a push and triggering a ssh command on my server with sshpass.
    The command script is much simpler than described above, it is just: “qm sendkey 100 a” It does only send a key input to the macos VM for wakeup.

    export SSHPASS=’YOURpasswd’
    sshpass -e ssh -o strictHostKeyChecking=no root@yourIP ‘qm sendkey 100 a’

    You could also make a small script for Android or other OS with the key send command.

    My solution costs about 6 $ for the AMZ-Dash button and works fine.

    I hope I could help sb out there.
    Now my machine is fully functional and also WAF ready. 😉

    Have Fun.

    1. “qm sendkey 100 a” <– should be "qm sendkey yourVMID a" for you

      yourVMID = number of macos VM
      a is for a random button, in my case "a"

  23. I can get through until the first reboot (after the first stage of OSX install), but then get stuck in a reboot loop. Clover will come up, attempt to boot from ‘macOS Install Prebooter’ I’ll see the Apple Logo for a second and then the whole system will reboot. Anyone have any ideas?

    1. Sorry, I haven’t tested this installation process on 5.1. However, once it is installed using these directions on 5.0, it certainly runs on 5.1 (I use High Sierra on 5.0-upgraded-to-5.1 as my daily-use machine).

  24. Thanks for the guide! I got up and running 1 MacOS vm with relatively low specs since its not doing anything hardcore. However I was trying to create a second MacOS Vm, that use I want to use for Plex so need beefy settings, 32gb of ram and 18core cpu. However everytime I try and boot it loads up the Clover screen just fine and starts to load MacOS and just boot loops. I tried booting in versbose mode but it didn’t show any issue.

  25. Hi Nick,

    thank you so much for that guide, fulfilled a wish…

    But while following your instructions by the word on my 5.1 machine a faced one issue: The 32GB SATA0 disk I’ve added to the VM show’s up as 32kb!

    I’m grateful for any hint I can get… 😉

    1. Really? That’s very strange! Can you paste the line from your VM config file for that sata0 disk? Where does it show as 32kb, is that in the High Sierra installer? Does it refuse to install into it?

      1. Hi Nick, did some more test’s and realized that the drive doesn’t show up at all. If I remove the HDD and only boot with:

        efidisk0: RAID1-550:105/vm-105-disk-2.qcow2,size=128K
        ide0: local:iso/HighSierra.iso,media=cdrom,size=5600M
        ide2: local:iso/clover-r4243-amd64.iso,cache=unsafe

        I don’t see it…

        And the line I add for the HDD is:
        sata0: RAID1-550:105/vm-105-disk-1.qcow2,cache=unsafe,size=32G

        But whatever combination I try I can’t see it…

        And yes I’ve installed & pinned your qm package. 😉

        1. Where is it that it doesn’t appear, in the installer’s Disk Utility tool? Are you ticking the Show All Devices menu option, quitting Disk Utility completely (disk utility -> quit disk utility), and reopening it?

          If you use the terminal in the installer, does “diskutil list” show the disk? If so, you may be able to partition/format it using the command-line instead.

          I’ve never tried qcow2, I’m using ZFS, which offers raw disk images. On the off-chance that the problem is triggered by qcow2 (quite unlikely) try adding a “Raw Disk Image (raw)” instead of qcow2.

          1. THX a ton, I should have come up with that by myself!

            ran “diskutil list” saw like 20 disk’s and disk1 was the one I expected, so I ran:
            diskutil partitionDisk /dev/disk1 GPT APFS macOS 0b

            and now it’s installing…

  26. hi there

    i followed this guide perfectly…
    but i face up with this error.. with -v option..
    “AppleSMBusPCI::start failed to get acpi path for provider”

    my system spec is below
    – proxmox 5.1
    – x5670 2 cpu
    – above 64Gb ram..
    in my osx vm, i followed this guide ( cpu , ram size, etc..)

      1. thanks nick…

        i remember that i try to install qemu package, i meet some error..i can’t see detail because i am working now..

        i will check it again tonight…

        1. hi

          i patched qemu package yesterday, and sucess boot…
          but, i can see console with GraphicsEnabler=No option

          thanks nick

  27. Thanks for the tutorial! I was able to install High Sierra and it’s working with GPU passthrough, but with two issues I’m hoping folks here can help resolve.

    1) Audio output is very choppy and cuts out to the point of being unusable. I’ve tried passing through a couple of different USB audio devices. I’ve also experimented with different sampling rates (which fixed the choppiness on Windows VMs) but having no luck there. I’ve tried passing through the native motherboard sound device but it doesn’t seem to be recognized by MacOS. I’ll probably try some more with that. Should I install a dedicated PCI sound card and pass that through to the VM?

    2) I am passing through an NVIDIA Quadro K5000 GPU, which is recognized by MacOS. Clover starts in a high (but non-standard resolution) of 1920×2160@30Hz, but MacOS only lets me select up to 1920x1080p, even with the NVIDIA web drivers installed. Any suggestions on how to get higher resolution? My GPU and monitor is capable of 4k, and I was able to get much higher res on a nearly identical computer (HP Z800) with the same GPU running MacOS.

    1. I think there are not many (if any) PCIe soundcards that macOS has drivers for. If you do find one, let me know. Try passing through an entire USB controller using PCIe passthrough if you haven’t already.

      You can probably find drivers for your on-board audio, just search for hackintosh audio + your audio brand. People have made custom drivers for most of the popular ones.

      Another option for audio is to send it over HDMI or DisplayPort and have your monitor decode it. My monitor has a headphone jack that it puts the decoded audio onto. I haven’t got this to work on the Hackintosh myself, but it can work in theory.

      One of the key requirements for audio is accurate timing. The vmware-cpuid-freq and invtsc CPU features are supposed to solve that, as long as your CPU supports invtsc.

      As to the resolution problems, are you using the same kind of connector on both systems? I think DisplayPort has the best support. I’m using this tool to set custom resolutions:

      I’m using a 4k monitor over DisplayPort.

  28. Hello Nick, I followed your tutorial twice from the beginning and I have not got the VM to boot. In principle I have everything ready.

    Do you know what could be the mistake of not even getting to boot?

    I use proxmox 5.1 on an HP gen8 and I have other VMs working without problem (linux, DSM, windows …).

    Regards: Óscar

    1. How far does it get through the boot process, are you able to get into Clover and it hangs during the macOS progress bar? If so, press space on the macOS option in Clover and tick the “verbose” mode, so you can see at what point during the boot it fails.

    1. Starting the VM causes an error? It’s easier to read the error message if you start the VM from the Proxmox command line like “qm start 100”

  29. Nick,

    This is a great tutorial and got through the full installation with minimal issues and appreciate all the little details that helped! I had a quick question, and this might be obvious, so I apologize for it in advance, but once the MacOS VM is setup, can it be clone just like other VMs in ProxMox 5.1?


    1. I’m not sure if I’ve ever cloned one before, but I think that should be just fine. However if you’re planning to log in to iCloud on those VMs, you probably want to use Clover Configurator to generate a new serial number for the cloned VM before you go online.

      1. Ok great and thanks. Just thought I should ask, before potentially messing up what I’ve done. I created an Apple ID for the machine I setup so far, so I could install XCode. Will the cloned Apple ID cause any issue? As far as using the Configurator to create a new serial number, is it easy to figure out how to do this? Thanks again!!

        1. I’m not sure about the cloned Apple ID, I’m thinking it’ll probably be fine because real macs can be cloned too…

          In Clover Configurator, you mount the EFI volume, open the config.plist from it, then on the SMBIOS tab there’s a button to randomly generate a new serial number.

  30. Hi, I previously had this booting up until the scrambled mac OS screen. I am getting back to this now and am having trouble even getting clover to boot; I just always end up at the UEFI interactive shell. I’m struggling to find ways to debug my issue. I’ve gone through the procedure from scratch 4-5 times and clover does not want to come up! I tried building the qemu package myself and also using your prebuilt deb, I have the qemu package pinned, I tried just mounting the clover image trying to at least see that booted, etc. Any insight would be really helpful.


    1. Hm, so Proxmox doesn’t even consider the Clover disk image to be bootable. I haven’t seen that before. Double check that the boot order option is correctly set to point to the Clover drive. Maybe post your VM configuration file to and post the link here.

        1. Hm my config is the exact same as that and Clover boots. I wonder if the UEFI entries for Clover somehow got wrecked. Try destroying and re-adding the “EFI disk” to your VM in Proxmox’s GUI, which should reset the UEFI settings.

          If you end up at the shell, are there any filesystems mounted (FS0, FS1 etc)? If so, you can typically do something like this to start Clover if it’s available on one of those filesystems:

          cd efi
          cd clover

          1. Here is what I see in the interactive shell: unfortunately it doesn’t seem like much to go; no filesystems. I’ve tried recreating the EFI disk multiple times, and I see the size is only 128K.

          2. Wow nice call; clover md5 was not correct. Not sure how that happened. Got clover running after fixing that and all the other steps went fine. Thanks!


  31. Thanks for provide such guide, Nick. I do have Proxmox 5.1, but my pve-qemu is already newer than your patch. My is pve-qemu-kvm: 2.9.1-9. I can’t seem to compile the patch with Kholia’s repo. Must I downgrade the qemu package?

      1. Thanks, this new patched package works for my Proxmox 5.1 install. Any plan to update the Clover image to the latest version as well?

        1. I usually only update Clover when there is a known benefit in doing so. I can confirm that upgrading Clover after installation to r4411 works nicely, since that’s what I’m using at the moment.

  32. Hey Nick, thanks for the write up and all of the help you’ve been providing in the comments.

    I’m having issues booting, I’ve gotten clover to boot and can see the High Sierra iso but when trying to boot into the installer it boot loops. Verbose mode gives the error “AppleSMBusPCI::start failed to get acpi path for provider” which I see from the other comments could be a qemu issue but I’ve downloaded and depackaged your patched deb with no errors. Anything you can think of to help?

    Heres my vm config if it helps at all:

    1. Double check that the QEMU package is installed by making sure its filesize matches mine:

      ls -l /usr/bin/qemu-system-x86_64
      -rwxr-xr-x 1 root root 10461288 Feb 19 22:42 /usr/bin/qemu-system-x86_64

      1. Yep, my listing is identical except the modified date:

        -rwxr-xr-x 1 root root 10461288 Feb 19 01:42 /usr/bin/qemu-system-x86_64

  33. Hey Nick,

    Thank you for the effort to put this guide together.
    I have an weird issue, after following your guide to the letter, Clover boots up to a point and it comes up with ” Welcome to Clover 4243 … testing hardware …
    Can you give me some insight on what to do?

  34. Nick

    I have followed along, and when clover boots there is no internal hdd.
    I have tried to set the IDE2 back to media=cdrom, but then the boot does not even get to clover

  35. Hello! Great job!
    But by now i’ve got scrambled graphics when launching OS X installer.
    I tried 1024×760 and 800×600, but i can’t see OS X installer. I see it is booted and running, reacts to keyboard, but nothing i can understand, seems wrong resolution.
    What should I do?

  36. Nick

    I have everything set up with host hardware being a late 2012 Mac mini.
    This mini has a HDMI and a Thunderbolt output, do you think it is possible to use a thunderbolt GPU and pass it through to the High Sierra VM and retain the HDMI port for the Proxmox host?

Leave a Reply

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