Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] SpaceinvaderOne - Macinabox

Featured Replies

PLEASE - PLEASE - PLEASE EVERYONE POSTING IN THIS THREAD

IF YOU POST YOUR XML FOR THE VM HERE PLEASE REMOVE/OBSCURE THE OSK KEY AT THE BOTTOM.

IT IS AGAINST THE RULES OF THE FORUM FOR OSK KEY TO BE POSTED....THANKYOU

 

 

The first macinabox is now been replaced with a newer version as below.

 

V1 Macinabox October 2019 -- No longer supported

 

V2 Macinabox  December 09 2020 -- No longer supported

V3 Macinabox Added 22 September 2024

 

Please watch this video for how to use the container. It is not obvious from just installing the container.

 

 

If you had the old macinabox installed it's important to remove the old template as the new macinabox has a new template which is needed for it to function. To remove old macinabox please first remove the container. The goto the apps tab (CA). and on the left click on previous. You will see macinabox listed as a previous app. Select it and click delete. That removes the template and you can now install macinabox and it will work correctly

 

 

  • Replies 3.4k
  • Views 801.6k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • SpaceInvaderOne
    SpaceInvaderOne

    23 Sept 2024   Basic usage instructions.   Overview   Macinabox is now self-contained and no longer requires any helper scripts. It is designed to send notifications thro

  • SpaceInvaderOne
    SpaceInvaderOne

    Finally the new Macinabox is ready. Sorry for the delay work has been a F******G B*****D lately taking all my time.   So It also has a new template so please make sure to make sure your temp

  • SpaceInvaderOne
    SpaceInvaderOne

    New Macinabox almost complete. Should be out soon. Hoping for the end of next week or shortly there after Will have a few new features such as Ventura and Sonoma support Also the companion User Sc

Posted Images

  • Author

23 Sept 2024

 

Basic usage instructions.

 

Overview

 

Macinabox is now self-contained and no longer requires any helper scripts. It is designed to send notifications through the Unraid GUI during the installation process. To ensure you receive these notifications:

 

• Set notifications to Detailed.

• Configure Docker update notification to any option other than Never (e.g., Once per Day).

 

Installation Steps

 

1. Compliance: Ensure you are compliant with the Apple EULA for macOS virtual machines. Select whether you are compliant or not.

2. Select OS: In the template, choose the macOS version you wish to install.

3. VM Name: By default, Macinabox uses the OS name for the VM. If you prefer a different name, enter it in the Custom VM Name field (default is blank).

4. VDisk Type: Choose the vdisk type: Raw or QCOW2. The default option is Raw.

5. VDisk Size: Specify the size for the macOS vdisk in gigabytes. The default size is 100 GB.

6. Default Variables: You can leave all other settings as default. If needed, you can change the default locations for your domains, ISOs, or appdata shares.

 

Running the Container

 

• Launch the container. It will download the recovery media from Apple servers, name it, and place it in your ISO share.

• The container will create your vdisk and an OpenCore image for your VM, which will be placed in your domain share within a folder named after your VM.

• The XML for the VM will be dynamically generated based on your settings, and the container will perform checks on your server:

• It will check the version of QEMU installed and calculate the highest compatible version of Q35.

• It will set the default VM network source in the XML.

• It will add the appropriate custom QEMU command line arguments to the XML.

 

Notifications

 

During the container’s operation, you will receive notifications:

 

• When the installation media has been successfully downloaded.

• When the VM has been defined and is available on the VMs tab of your server.

• Or if any errors occur during the process.

 

Additional VM Configuration

 

Once the VM is installed, you may want to adjust it to your preferences:

 

1. On the Unraid vm tab. Click the vm and click edit. Now modify the CPU core count and RAM amount as needed.

 

Fixing broken XML Configuration

 

When making changes to the VM in the Unraid VM manager, the XML will be changed making the VM XML inorrect for macOS, which requires specific configurations. To fix this:

 

• Run Macinabox again. It will check if a macOS VM with the specified name already exists. If it does, it will fix the XML instead of attempting to install another VM. (This step is necessary for both Unraid 6 and 7.)

• If you make any changes to the VM in the Unraid VM manager, be sure to run the container again to update the XML.

 

Starting the VM

 

1. Start the VM and open a VNC window to proceed with the installation.

2. Boot into the OpenCore boot loader and select the bootable image labelled macOS Base System. Press Enter to continue.

 

Installing macOS

 

1. Once booted into recovery media, open Disk Utility to format your vdisk.

2. After formatting, close Disk Utility and select Reinstall macOS. Follow the wizard to complete the installation. The installation process may cause the VM to reboot approximately four times.

 

Hope you guys like this new macinabox

 

This is badass! Thanks a bunch. 

Awesome!!!! You are the man!!

Holy crappola....

 

With the VM, do I need a dedicated Mojave+ compatible video card? Or something that will give high quality desktop connection - video performance.

 

Thank you Ed!

Edited by hernandito

Just today I use the macbook we have in the IT helpdesk office to create a MacOS Mojave boot image so I could spend my evening adding a MacOS VM to my 2 gamers 1 CPU unRAID build.   Get home and load up community applications so I could use Krusader to copy the image off the flash drive.  Guess what I see at the top of the community applications list?   Talk about GREAT timing @SpaceInvaderOne 

Edited by MortalMonkey

may a question what could be wrong here.

using the docker to create the vm ...

stop / start array to get the vm visible.

 

now when i watch the video, the first thing todo is to change in bios resolution to 1080p,

here is my 1st hurdle, i can hit esc as fast as i want, no chance to enter the bios ...

 

thought well, lets skip this part now, went further and erased disk, installed macOS, ok.

 

looks all good, few minutes later ... reboot ... now im in a loop to clover, only message i see is

 

image.png.5856085109b4072e11644b9a7a0e106b.png

 

may a hint what could be wrong ? or is it the bios gpu setting (1080p) ... if so, any chance to get in there in another way ?

yesterday when i saw this docker i already made another test (bofore this support thread), same behavior, i then also went further and edited the xml already be removing disks and adding manual disk, didnt help either.

 

for any tipps, thanks ahead

Edited by alturismo

Great idea for a container!

 

Ive just tried running and i get to the point where the log tells me to stop and start the array, then start up the vm, and get an error:

 

Execution error

operation failed: unable to find any master var store for loader: /mnt/user/domains/MacinaboxMojave/ovmf/OVMF_CODE.fd

My unraid setup has the vm images in /mnt/user/vms, i don't have a mnt/user/domains directory anywhere, 

 

looking at the VM config, i have the below

 

715959766_Screenshot2019-10-26at10_50_02.thumb.png.f5221c4c806749b5d07183a702debb83.png

 

xml is

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>MacinaboxMojave</name>
  <uuid>fe4cdace-a7b4-456d-9885-c28ea78fde83</uuid>
  <description>MacOS Mojave</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="MacOS" icon="/mnt/user/domains/MacinaboxMojave/icon/mojave.png" os="Catalina"/>
  </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'/>
    <vcpupin vcpu='1' cpuset='1'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/MacinaboxMojave/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/MacinaboxMojave/ovmf/OVMF_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <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='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxMojave/Clover.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <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/domains/MacinaboxMojave/Mojave-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxMojave/macos_disk.qcow2'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <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'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <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'/>
      <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'/>
      <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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:c8:13:3a'/>
      <source bridge='br0'/>
      <model type='vmxnet3'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' 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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <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=<REDACTED>'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check'/>
  </qemu:commandline>
</domain>

 

when i installed and ran the docker container, these are the settings i used, so unsure where its still getting /mnt/user/domains from

2018905131_Screenshot2019-10-26at10_51_41.thumb.png.117f31bc6e5e826b3c71b8d921295d60.png

 

Edited by trurl
redact yet another osk

  • Author
4 hours ago, alturismo said:

may a question what could be wrong here.

using the docker to create the vm ...

stop / start array to get the vm visible.

 

now when i watch the video, the first thing todo is to change in bios resolution to 1080p,

here is my 1st hurdle, i can hit esc as fast as i want, no chance to enter the bios ...

 

thought well, lets skip this part now, went further and erased disk, installed macOS, ok.

 

looks all good, few minutes later ... reboot ... now im in a loop to clover, only message i see is

 

image.png.5856085109b4072e11644b9a7a0e106b.png

 

may a hint what could be wrong ? or is it the bios gpu setting (1080p) ... if so, any chance to get in there in another way ?

yesterday when i saw this docker i already made another test (bofore this support thread), same behavior, i then also went further and edited the xml already be removing disks and adding manual disk, didnt help either.

 

for any tipps, thanks ahead

Hi please ignore the linked video in the webui of the template for now. That is not the correct video guide for this container. I was testing and linked to my old video for macOS from last year when making this container. I then forgot to remove it in the template.  ( i have removed from the template now and will only add back when new video guide is finished and uploaded later today )

You don't need to change the resolution in the bios. The resolution is already set to 1080 in both bios and the clover config.

 

I have also seen the boot loop happen. it happened to me once yesterday.

This was after the recovery media has downloaded the Catalina install and attempts to reboot to finish. I believe this is just that the image hasn't downloaded correctly for some reason (maybe the apple servers are very busy) and the image is corrupt.

I only have had this happen once during my testing and after reading your issue I ran a Catalina install again to test. During the install the image took a very long time to download over an hour and i have quite fast internet (450 down) However after the reboot there was no boot loop and install finshed

 

 

 

Unfortunately I would suggest just trying again. Remove the directory in the domains share where files are

rm -r /mnt/user/domains/MacinaboxCatalina/

 

If using a qcow2 maybe try raw image instead (although i have installed to both image types sucessfully)

Also what cpu do you have in the server it must support . It must support SSE 4.2 & AVX2 

 

 

  • Author
17 minutes ago, rorton said:

Great idea for a container!

 

Ive just tried running and i get to the point where the log tells me to stop and start the array, then start up the vm, and get an error:

 


Execution error

operation failed: unable to find any master var store for loader: /mnt/user/domains/MacinaboxMojave/ovmf/OVMF_CODE.fd

My unraid setup has the vm images in /mnt/user/vms, i don't have a mnt/user/domains directory anywhere, 

 

l

 

OK the template that the container makes , assumes ovmf is in the /mnt/user/domains share  which is the default for Unraid for a while now.

You will just have to make a small adjustment in the template to reflect your location where the ovmf files are and also where the disk images are.

 

<os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/MacinaboxMojave/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/MacinaboxMojave/ovmf/OVMF_VARS.fd</nvram>
  </os>

You should change this to as below  (note  difference is swapping the location from domains to vms as you have on your server)

 

<os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/vms/MacinaboxMojave/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/vms/MacinaboxMojave/ovmf/OVMF_VARS.fd</nvram>
  </os>

 

Also the templates disk locations need to be changed from this

    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxMojave/Clover.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <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/domains/MacinaboxMojave/Mojave-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxMojave/macos_disk.qcow2'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>

 

to the below ( again the /domains  swapped ti your location /vms )

 

    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/vms/MacinaboxMojave/Clover.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <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/vms/MacinaboxMojave/Mojave-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/vms/MacinaboxMojave/macos_disk.qcow2'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>

 

I mention about the non standard vm location in the video which accompanies this container working on it as i type this ! (will be at the top of the post when finished)

thank you, i just rushed in and tried it :)

 

I now get to the point where it seems to boot, but now i can't seem to open a VNC session quick enough to (i assume) press any key, before the EFI bios boot screen appears and I'm at a shell prompt

  • Author
2 minutes ago, rorton said:

thank you, i just rushed in and tried it :)

 

I now get to the point where it seems to boot, but now i can't seem to open a VNC session quick enough to (i assume) press any key, before the EFI bios boot screen appears and I'm at a shell prompt

please post your xml as it is now

sorry, being a prat - in the last post, xml was wrong

 

Edited by rorton

ok, this is what i have now (forgot to change the os bit where the OVMF sections are)

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>MacinaboxMojave</name>
  <uuid>fe4cdace-a7b4-456d-9885-c28ea78fde83</uuid>
  <description>MacOS Mojave</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="default.png" os="Catalina"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='10'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='11'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/cache/vms/MacinaboxMojave/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/cache/vms/MacinaboxMojave/ovmf/OVMF_VARS.fd</nvram>
  </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>
  <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/cache/vms/MacinaboxMojave/Clover.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <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/cache/vms/MacinaboxMojave/Mojave-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/vms/MacinaboxMojave/macos_disk.qcow2'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <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'/>
      <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'/>
      <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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <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'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:c8:13:3a'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-gb'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
</domain>

 

  • Author

With a macOS vm it has custom things in the xml. If you look at the end of the first xml you posted and the second you will see. Because of this any changes that you need to do to the template cant be done in the Unraid template manager as it removes custom edits at present.

 

So edit the xml and put this in its place.

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>MacinaboxMojave</name>
  <uuid>fe4cdace-a7b4-456d-9885-c28ea78fde83</uuid>
  <description>MacOS Mojave</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="MacOS" icon="/mnt/user/vms/MacinaboxMojave/icon/mojave.png" os="Mojave"/>
  </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'/>
    <vcpupin vcpu='1' cpuset='1'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/vms/MacinaboxMojave/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/vms/MacinaboxMojave/ovmf/OVMF_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <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='qcow2' cache='writeback'/>
      <source file='/mnt/user/vms/MacinaboxMojave/Clover.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <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/vms/MacinaboxMojave/Mojave-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/vms/MacinaboxMojave/macos_disk.qcow2'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <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'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <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'/>
      <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'/>
      <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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:c8:13:3a'/>
      <source bridge='br0'/>
      <model type='vmxnet3'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' 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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <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=Taken out as not allowed on the forums'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check'/>
  </qemu:commandline>
</domain>

 

Please note i have changed one line that you will need to change back

<qemu:arg value='isa-applesmc,osk=Taken out as not allowed on the forums'/>

This should container the osk key. You can see it in your first post with the xml (but please edit your post to remove it due to forum rules..thanks)

 

Spot on :) i did use the template editor first to change my paths, which then royally messed things up!

 

Ive pasted your xml in, and am away again

 

thanks for your patience 

50 minutes ago, SpaceInvaderOne said:

Hi please ignore the linked video in the webui of the template for now. That is not the correct video guide for this container. I was testing and linked to my old video for macOS from last year when making this container. I then forgot to remove it in the template.  ( i have removed from the template now and will only add back when new video guide is finished and uploaded later today )

You don't need to change the resolution in the bios. The resolution is already set to 1080 in both bios and the clover config.

 

I have also seen the boot loop happen. it happened to me once yesterday.

This was after the recovery media has downloaded the Catalina install and attempts to reboot to finish. I believe this is just that the image hasn't downloaded correctly for some reason (maybe the apple servers are very busy) and the image is corrupt.

I only have had this happen once during my testing and after reading your issue I ran a Catalina install again to test. During the install the image took a very long time to download over an hour and i have quite fast internet (450 down) However after the reboot there was no boot loop and install finshed

 

 

 

Unfortunately I would suggest just trying again. Remove the directory in the domains share where files are


rm -r /mnt/user/domains/MacinaboxCatalina/

 

If using a qcow2 maybe try raw image instead (although i have installed to both image types sucessfully)

Also what cpu do you have in the server it must support . It must support SSE 4.2 & AVX2 

 

 

ok, thanks for the resolution info.

 

i ve tried 3 x yet with the same results (i always cleaned /domains ...)

 

i ll try with raw instead, lets see if that helps ;)

my CPU is a i7-8700, should be fine

 

thanks for the efforts.

 

as note, the /domains/path issue ... was here the same, i also never used /mnt/user/domains for my VM's, after leaving docker settings default and creating /domains share all is good for now, just custim path didnt worked, i guess its somewhere hardcoded in the vm xml creation.

Edited by alturismo

just thinking ahead, would it be possible to use a pre downloaded mac OS installer - to save time on the install if it read from a local installer instead of going to the internet? 

 

Appreciate though that the plug in is catering to people who maybe dont use a mac already, so wouldn't have access to the installer - thus a brilliant idea for the container to get the software too...

 

Maybe one to go at the bottom of the nice to have enhancement list at some point in time

  • Author

If you already have have the full installer from the app store created on a mac you can just use that instead of the baseimage that the container downloads.

Just link it here

  <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/Catalina-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>

 

Have a look at my last macOS videos last was for mojave here for how to do manually install macOS and create media from the app store. The video is a year old but still relevant. https://www.youtube.com/watch?v=YWT4oOz2VK8

Unfortunately I cant include any local install media directly in a container as then it would contain copyrighted material. I can only have it download from the Apple servers then the container itself doesn't actually contain any software.

However to allow the user the option to select that they already have install media would be possible. I could have the template have an option to allow the user to select his own image on the server. The container could then copy that and rename it placing it in the correct location that would be compatible with the xml.

 

 

no worries, understand about the media, just thought it may same time if there was already a copy locally. 

 

Its worked perfectly btw - i have a VM running now - what's there score with updates and stuff like that, can they be installed?

  • Author

Hey @rorton to be honest not sure. It should work ok. If it works on a hackintosh will work for the vm. Best practice is beforehand just copy the vdisk

in case anything goes wrong then you are safe.

 

Glad to hear its all working. Just one thing to note. Dont run the container again now its intalled as a bug it will re create the vdisk that its installed

on and basically wipe the install. i am just changing that at the moment and will fix that in next push.

2 hours ago, SpaceInvaderOne said:

Hi please ignore the linked video in the webui of the template for now. That is not the correct video guide for this container. I was testing and linked to my old video for macOS from last year when making this container. I then forgot to remove it in the template.  ( i have removed from the template now and will only add back when new video guide is finished and uploaded later today )

You don't need to change the resolution in the bios. The resolution is already set to 1080 in both bios and the clover config.

 

I have also seen the boot loop happen. it happened to me once yesterday.

This was after the recovery media has downloaded the Catalina install and attempts to reboot to finish. I believe this is just that the image hasn't downloaded correctly for some reason (maybe the apple servers are very busy) and the image is corrupt.

I only have had this happen once during my testing and after reading your issue I ran a Catalina install again to test. During the install the image took a very long time to download over an hour and i have quite fast internet (450 down) However after the reboot there was no boot loop and install finshed

 

 

 

Unfortunately I would suggest just trying again. Remove the directory in the domains share where files are


rm -r /mnt/user/domains/MacinaboxCatalina/

 

If using a qcow2 maybe try raw image instead (although i have installed to both image types sucessfully)

Also what cpu do you have in the server it must support . It must support SSE 4.2 & AVX2 

 

 

ok, raw image really did it, installed and started, just have to find a way through this crappy vnc setup ... ;) german keyboard, mouse is elsewhere, really wonder what unraid is using here as vnc bridge to vm's ... nvm, will figure that out too.

 

thanks for the tip with raw, that was the winner ;)

This is my third attempt at installing macos using the utility and I get the same error each time after the os installs.   I did not modify any settings.   This is installed on a Ryzen 7 2700x system if that makes a difference.  error.thumb.jpg.271cda68deeb1f73b6711e0818c2bd86.jpg

Edited by MortalMonkey

what CPU do you have?

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.