**VIDEO GUIDE** How to Install MacOS Mojave or High Sierra as a VM


SpaceInvaderOne

Recommended Posts

Doesn’t matter :) 

 

OS X is picky with a graphics card installed. Give it a try with igfx only enabled or removing your card.

 

I couldn’t get high sierra to install until I set the igfx option

 

Doesn’t matter whether you intend to pass through or not :)

Edited by Yardon
Added extra
Link to comment
53 minutes ago, Yardon said:

Doesn’t matter :) 

 

OS X is picky with a graphics card installed. Give it a try with igfx only enabled or removing your card.

 

I couldn’t get high sierra to install until I set the igfx option

 

Doesn’t matter whether you intend to pass through or not :)

 

@Yardon I guess you must have been installing with a GPU passed through yes? The OP is installing the osx using an emulated GPU (vnc graphics) so this wouldn't cause an issue.

The issue that you had is that you had an Nvidia gpu as primary GPU. If an Nvidia gpu is the only/primary card in the server it will not pass through (showing a black screen( unless you pass through a vbios file with it)). When you enabled the integrated GPU in the mb bios the Nvidia card then became the secondary GPU in the system and then it worked OK. The reason for this is on boot the primary GPU vbios is shadowed and this can cause a problem with nvidia hence it must either be secondary or have a vbios passed through in the xml. :)

 

 

@gareth_iowc what is the host CPU in your server? Please also post your xml here.

 

Edited by gridrunner
Link to comment

@gridrunner

 

latest xml - 

 

<domain type='kvm' id='19' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>OSX High Sierra</name>
  <uuid>c6a1ef6f-3cc9-4545-d81e-a4585879fa85</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.9'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/c6a1ef6f-3cc9-4545-d81e-a4585879fa85_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'/>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/VM/ISO/highsierra.img'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <alias name='sata0-0-2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/VM/Storage/OSX High Sierra/vdisk2.img'/>
      <backingStore/>
      <target dev='hdd' bus='sata'/>
      <alias name='sata0-0-3'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <alias name='pci.3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <alias name='pci.4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:f7:78:4f'/>
      <source bridge='br0'/>
      <target dev='vnet1'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/1'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-19-OSX High Sierra/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <graphics type='vnc' port='5901' autoport='yes' websocket='5701' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
  <qemu:commandline>
    <qemu:arg value='-usb'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse,bus=usb-bus.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd,bus=usb-bus.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=xxxxxxx'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel,kvm=on,+invtsc,vmware-cpuid-freq=on,'/>
  </qemu:commandline>
</domain>

 

host spec -

 

HP Microserver gen 8
CPU: Intel® Core™ i5-3470T CPU @ 2.90GHz
HVM: Enabled
IOMMU: Enabled
Cache: 64 kB, 512 kB, 3072 kB
Memory: 16 GB Single-bit ECC (max. installable capacity 16 GB)
Network: eth0: 1000 Mb/s, full duplex, mtu 1500 
 eth1: not connected
Kernel: Linux 4.14.13-unRAID x86_64

osx2.gif.64015996543ba1f7ec8fb7bc1737f081.gif

Edited by gareth_iowc
Link to comment

Please try enabling more cores as there is only 1 thread in the xml you posted. Try maybe this and see if you can install. There are no single core single thread cpus 

in a real mac that will run osx high sierra. So this could be your problem as to why it will not install.

Your cpu is dual core 4 threads so try using this edited top part of your xml here.

<domain type='kvm'>
  <name>OSX High Sierra</name>
  <uuid>c6a1ef6f-3cc9-4545-d81e-a4585879fa85</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-2.9'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/c6a1ef6f-3cc9-4545-d81e-a4585879fa85_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='4' threads='1'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>

Try both with and without this line

 <topology sockets='1' cores='4' threads='1'/>

 

Also please edit your previous post and remove the osk key from your post. We are not allowed to show the osk key in the forums here. Thanks. :)

Link to comment
  • 2 weeks later...

I’m about to order a new pc for unraid and especially a daily Mac OS VM machine. I’ve got a Mac OS VM up and running on my current machine, but there’s something I didn’t thing about before.

 

How much trouble is a update for example from 10.13.3 to 10.13.4. I guess it’s not just performing it in the App Store and rebooting the machine? For every new Mac OS system I will probably have to wait until someone figured it all out and then just do the same as a new install and it will instead update the existing system.

Link to comment
2 hours ago, lixe said:

I’m about to order a new pc for unraid and especially a daily Mac OS VM machine. I’ve got a Mac OS VM up and running on my current machine, but there’s something I didn’t thing about before.

 

How much trouble is a update for example from 10.13.3 to 10.13.4. I guess it’s not just performing it in the App Store and rebooting the machine? For every new Mac OS system I will probably have to wait until someone figured it all out and then just do the same as a new install and it will instead update the existing system.

 

Just update like a normal hackintosh. I went from 10.13.4 to 10.13.5 today. Downloaded the update from the app store, it rebooted, updated and i was back at the desktop in about 30 minutes. Installed the updated web drivers after and everything is all good. 

Link to comment

I hope nobody complains about cross-posting. I am very eager to run a High Sierra Hackintosh directly on a partition of an NVME disk (instead of the vdisk.img). Some context here that indicates that this may even be feasible without Clover. 

 

 

Has anyone tried this and can share whether this is working?

Link to comment
On 6/3/2018 at 3:13 AM, david279 said:

 

Just update like a normal hackintosh. I went from 10.13.4 to 10.13.5 today. Downloaded the update from the app store, it rebooted, updated and i was back at the desktop in about 30 minutes. Installed the updated web drivers after and everything is all good. 

 

That’s pretty nice, didn’t expect that! Can I check somewhere (for future updates) whether it is safe to just install the update or at least to know what to do?

Link to comment
4 hours ago, david279 said:

 

I usually check out tonymac for hackintosh news.

 

Thanks!

 

Can someone recommend a solution to get all the Wifi and BT features working (like Handoff, Continuity, Instant Hotspot and so on)?

 

I've read some posts on tonymac, and most people seem to use a pcie card with BCM94360CD or BCM943602CS, so I would passthrough the pcie slot and the usb2 header on my motherboard. But maybe there's a better solution since it's a VM. Or a total different solution :)

 

I don't need Wifi in the end, because I will use the eth bridge, but without a WiFi card stuff like Airdrop won't work as far as I know.

Link to comment
On 5/17/2018 at 9:46 PM, monish77 said:

@Schlichi What motherboard are you using to run macos on unraid? I am also using the same processor (xeon e3 1220) same gen as yours, but my system doesn't let me passthrough PCIe due to RMRR issues... I think it is something with bios. 

Thanks in advance. 

I have a Gigabyte GA-Z87X-UD3H Mainboard with 16 GB RAM DDR3 RAM and two GPUs: NVIDIA GT 710 (for booting UNRAID) and an NVIDIA GTX 960 for passthrough to Windows 10 and macOS. You can see my whole hardware in my Signature.

 

Greets

Schlichi

Edited by Schlichi
Link to comment

I’ve just found out that Mac isn’t using a “usual” bios on its GPUs but instead an EFI version and you can also flash certain GPUs so that you get an “actual” Mac GPU.

 

So I was thinking: when you have only one Nvidia GPU installed you need to separately load the bios rom file (for passthrough), because otherwise its shadowed. Would it be possible to load the Mac rom file (in case you got the right GPU) so it will be perfectly supported by Mac OS without flashing the GPU card itself?

Link to comment

Are there any benefits in using an actual osk key instead of the FakeSMC or is it just "cleaner"? By the way does it matter where the osk key come from? So to speak, could I use the osk key from an old macbook for running an vm on an imac (with unraid)?

Link to comment
1 hour ago, david279 said:

yea you can use it from a real mac. You can google how to pull it from a real mac. Its a phrase and when you see it you will laugh. But i dont think it has any peformance diff with the FakeSMC just makes you OS even more vanilla.

 

Thanks! And by using FakeSMC there's also not a higher chance of being banned by Apple when using iCloud (which never seems to happen anyway)?

 

A little bit off topic maybe, but some seem to have got it working here. If I try to "exclude" an usb controller on my motherboard for the vm, how do I know which ports are actually affected?

Link to comment
On 6/3/2018 at 9:20 PM, steve1977 said:

I hope nobody complains about cross-posting. I am very eager to run a High Sierra Hackintosh directly on a partition of an NVME disk (instead of the vdisk.img). Some context here that indicates that this may even be feasible without Clover. 

 

 

Has anyone tried this and can share whether this is working?

 

Anyone tried to install MacOS directy rather than as a vdisk?

Link to comment

I seem to recall that someone was able to passthrough a single RX 580 GPU? Just selecting it in the vm setup brings a black picture and this error in the logs:

 

2018-06-09T12:01:20.045524Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,id=hostdev0,bus=pci.0,addr=0x5: Failed to mmap 0000:09:00.0 BAR 0. Performance may be slow

 

After that I downloaded the vbios from techpowerup, now I get this (plenty of times):

 

2018-06-09T11:57:01.803852Z qemu-system-x86_64: vfio_region_write(0000:09:00.0:region0+0x13168, 0x0,8) failed: Device or resource busy

 

The monitor just says "Graphic Console" or something like that.

 

I've also tried a windows vm and its exactly the same...

 

PS of course my IOMMU groups are absolutely fine.

 

 

EDIT: had to disable UEFI boot and use Legacy instead, found it by chance in an other topic. So now without vbios file -> no picture, with vbios file -> I get a picture! But with serious display errors, both in win and mac.

Edited by lixe
Link to comment

Hello all, 

I've been trying to install it for a few days. After trying different versions of clover (including the latest 4522, the one used by our beloved @gridrunner 4200 and some in between), the volume just won't show up in clover. Any idea why? I think I followed the guide of making a installer down to a t, except for the Fakesmc.kext as I am using the osk key.

 

(Two things I am not sure, first, I don't seem to see APFS and HFSPLUS in the customize install session clover 4522, is that normal? Second, there is a osxaptiofix3drv-64, should I use it instead of osxaptiofix2drv-64?)

Screenshot_20180611-094047.jpg

Edited by windlok1010
Link to comment
26 minutes ago, david279 said:

Yea  APFS and HFSPLUS will not be on there you will have to add it in manually.

Thanks. I was afraid that clover will install it by default and conflict with these manually installed files. For the record, I did manually add them.

Edited by windlok1010
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.