If you recently purchased the new 2012 Apple Mac Mini 6,2 which was just released not too long ago and tried to install either ESXi 5.0 or 5.1, you probably noticed a PSOD (Pink/Purple Screen of Death) during the installation. This is currently a known issue and there is an extensive VMTN thread (9,300+ views) about this problem which also includes a fix through a collaboration between VMTN community user zer010gic and VMware Engineer dariusd. Even though the Apple Mac Mini is not an officially supported hardware platform for running ESXi, it is great to see VMware engineers going out their way and trying to help the VMware community find a solution as well as providing an "unofficial" fix in this case.
I would also like to point out that this issue only applies to the new 2012 Apple Mac Mini, for previous models such as the Apple Mac Mini 5,1 or 5,3 you can install ESXi 5.0 or 5.1 without any issues. For more details, please refer to the instructions in this blog post.
Disclaimer: The Apple Mac Mini is not officially supported by VMware. The only supported platform for ESXi 5.0 for Apple hardware is the Apple XServe 3,1 and for ESXi 5.1 is the Apple Mac Pro, which you can get more details here.
Before jumping into the solution, if you think VMware should support the Apple Mac Mini for running ESXi, please provide feedback to VMware by submitting a Feature Request. The more feedback that VMware receives from customers along with business justifications, the better our product management team can prioritize features that are most important to our customers.
Here are the current problem/solutions when trying to install on the new Mac Mini:
Problem: PSOD during ESXi 5.0 or 5.1 installation.
Solution: Add iovDisableIR=true to the kernel option before attempting installation. When you are asked to reboot, be prepared to enter iovDisableIR=true again (SHIFT+O) which is required to get ESXi to boot after installation. Once the system has booted up, go ahead and run "esxcli system settings kernel set -s iovDisableIR -v true" in the ESXi Shell to persist the kernel setting. This is a "temp" workaround while PSOD is being investigated.
Problem: Unable to install new OSX Server on a VM or power on existing OSX Server VMs.
Solution: There appears to be a significant change in Apple's SMC (System Management Controller) device in the newer models that prevents the Apple SMC VMkernel driver from properly loading. A tempoary fix was provided to zer010gic to create a custom ISO until the fix is integrated into a future release.
Note: There may be other minor/unconfirmed issues listed on the VMTN thread, but for basic ESXi installation/usage + OSX Server VM creation/installation, the above solutions should be sufficent.
Instead of having everyone walk through the process of creating a custom ESXi ISO which includes the two fixes mentioned above as well as the bundling the updated tg3 Broadcom network drivers for network connectivity, zer010gic has generously created and is hosting ESXi 5.1 ISOs for users to download and use. It contains some work that I have been doing with zer010gic to create an ESXi 5.1 ISO that does not require any manual intervention outside of the normal ESXi installation. I recently completed the rest of this work which is based off of the oriignal ISO that zer010gic has shared on the VMTN community (unfortunately I have not been able to get a hold of him to provide him with the necessary bits and I have decided to post a modified ISO).
Here is a step by step instruction for zer010gic ESXi 5.1 ISO
Step 1 - Download zer010gic ESXi-5.1-MacMini-SMC-6-2.iso.
Step 2 - Transfer ISO to either USB key or CD-ROM
Step 3 - Perform ESXi installation as you would, but when you get to the very last step prior to rebooting, be ready for some typing when the host boots back up (this is important else you will get a PSOD)
Step 4 - When ESXi starts to boot up, hit SHIFT+O which will allow you to add additional kernel boot option. Add the following text the bootUUID (remember to add a space first)
iovDisableIR=true
This step is required to ensure your ESXi boots up properly for the first time so you can permanently enable this kernel option using ESXCLI which will then persist this upon sub-sequent reboots.
Step 5 - Login to ESXi Shell (you may need to enable it first) and run the following ESXCLI command:
esxcli system settings kernel set -s iovDisableIR -v true
Once this is set, you no longer have to do this again. If you prefer not to go through these manual steps, please refer to the section below for a modified ESXi 5.1 ISO which automates all this for you.
Here is my modified ESXi 5.1 ISO which does not require any additional user intervention
Step 1 - Download my ESXi-5.1-MacMini-SMC-BOOT-FIX-6-2.iso
Step 2 - Transfer ISO to either USB key or CD-ROM
Step 3 - Go through normal ESXi install and enjoy
Note: For details on how I automated the kernel setting setting, take a look at the very end.
So if you are looking to refresh your home lab, you just may want to consider using the new Apple Mac Minis, especially with small form factor footprint 🙂
Note: A couple of users mentioned it took a bit of time to boot up, specifically when usbarbitrator module is being loaded. I noticed this too and it took quite a bit of time, probably 5-6 minutes. If you do not plan on any USB pass-through from the Mac Mini to your guestOSes, you can actually disable this service which should help speed the bootup. If you wish to disable usbarbitrator, run the following command:
chkconfig usbarbitrator stop
ESXi ISO Customization Details
If you take a look at the steps required to install the ISO provided by zer010gic, most of the heavy work has already been done for you. The only "manual" part that is required from the user is to enter a kernel option during the first boot and then run an ESXCLI command to persist this kernel setting which will prevent Mac Mini from PSODing. Removing these these manual steps is actually harder than it looks because of when you need to actually perform the changes. After much trial and error, I came up with the following script below (it's not the cleanest, but it works).
Basically the script is loaded from custom.tgz and executed before the installation begins and it generates a script stored in /tmp/customboot.sh which will look for the boot.cfg configuration file stored in the primary bootbank. This is where we insert the iovDisableIR=true parameter so the user is not required to do this after the first boot up. The challenge with this is the boot.cfg does not exists until after the installation has completed, so what I ended up doing was insert a command into /usr/lib/vmware/weasel/process_end.py which is part of the weasel installer for ESXi and is the very last script that is called when a user hits reboot. The command points back to the /tmp/customboot.sh which will perform the insert into boot.cfg right before rebooting. To automatically take care of the ESXCLI configuration, I added the ESXCLI command to /etc/rc.local.d/local.sh which will automatically run after all init scripts have executed. Then finally, I need to clean up local.sh since I only need that that run once which is handled by another script that is also created and stored in /etc/init.d/customcleanup which will just clean up local.sh file as well as delete itself. Simple right? 😉
Note: There is probably a more optimal way of doing this, probably using one of the weasel installer scripts and just set the boot.cfg option and then clean up with an init script, but I decided to leverage some of my earlier work for Disabling LUN Duringn ESXi Installation
Here is the script within the custom.tgz file:
#!/bin/ash sed -i "s/time.sleep(4)/time.sleep(4)\n util.execCommand('\/tmp\/customboot.sh')/g" /usr/lib/vmware/weasel/process_end cat > /tmp/customboot.sh << __CUSTOM_BOOT__ #!/bin/ash for BOOTCFG in \$(find / -iname boot.cfg); do grep "no-auto-partition" \${BOOTCFG} > /dev/null 2>&1 if [ \$? -eq 0 ];then sed -i 's/kernelopt.*/kernelopt=no-auto-partition iovDisableIR=true/g' \${BOOTCFG} fi done __CUSTOM_BOOT__ chmod +x /tmp/customboot.sh sed -i 's/exit 0/localcli system settings kernel set -s iovDisableIR -v true\nexit 0/g' /etc/rc.local.d/local.sh cat > /etc/init.d/customcleanup << __CUSTOM_CLEANUP__ sed -i 's/localcli.*//g' /etc/rc.local.d/local.sh rm -f /etc/init.d/customcleanup __CUSTOM_CLEANUP__ chmod +x /etc/init.d/customcleanup
Anonymous says
The "2012 Apple Mac Mini 6,2 " was released in the last month or two.
Torbjörn Edlund says
Splendid, working perfect! Thanks
AltiZONE_blogger says
Can someone add more information about how and where to add the "ESXCLI" commands? I installed with the patched iso and I'm still getting the PSOD on boot.
Thanks,
William says
The how is via ESXCLI and the where is either locally in the ESXi Shell (using SSH) or via the remote ESXCLI.
Chilulu says
This comment has been removed by the author.
Anonymous says
To add the ESXCLI Command after install, turn the Mac Mini on with a keyboard and mouse connected, when the first screen comes up press Shift+O, a Command Line will come up, erase the info already in the line and type in the "esxcli system settings kernel set -s iovDisableIR -v true" and press enter. It'll instantly start working it's magic. It'll hang on "vmfs3 loaded successfully" for a little bit. Then "Running usbarbitrator start" will take forever. After that, it'll begin running and you're good to go.
Anonymous says
Sorry, meant to say with a Keyboard and Monitor connected.
Tom Pepper says
The above by Anonymous is inaccurate, and will result in a boot that doesn't retain any settings you apply. The correct approach is to hit Shift-O at the first boot screen, and *append* " iovDisableIR=True" (minus the quotes, space as first character) to the boot commands. This will also have the effect of not taking a long time to get past the usbarbitrator startup.
Once that's been done, log into the maintenance system via F2, then go to troubleshooting options and enable esxi shell or ssh. Then either login via SSH to the IP, or local esxi shell (Alt-F1) and enter:
esxcli system settings kernel set -s iovDisableIR -v true
and then
reboot
and the setting should persist across reboots.
William says
@Tom,
I will be documenting the install step by step using the ISO provided by zer010gic as well as a new ISO which I've just finished authoring which will not require any user intervention
Luke Hamburg says
Can someone please point me to a guide or HOWTO that explains how the customized Broadcom tg3 drivers were integrated into this ISO? I know the downloadable images above already contain it, but I'd like to know how it's done for my own personal knowledge! I can get as far as downloading, patching, and re-compressing the drivers but from there I am lost as to how to get them back "in" to the ISO file and come up with a working/bootable image. Help!
William says
The steps are documented in this article http://www.virtuallyghetto.com/2012/05/thats-so-cool-running-esxi-5-on-apple.html which is linked from the above article 🙂
Anonymous says
Hi Guys
Has anybody cracked how to get vmware to set flag which allows the macmini to auto poweron after a power outage...
... there is lots of info on how to do this on windows or linux and of course in os-x, but nothing as yet when in vmware. here is the reference command
setpci -s 0:3.0 -0x7b=20
any help to get this going in vmware, this is the last key to a cool vmware platform
Thx
William says
There's no setpci command in ESXi. You should be able to boot a Linux liveCD via USB, run that command and hopefully it should stick if it's stored somewhere in the hardware.
James says
I want to do this so bad at home... even though I have no use what so ever.. just the fact I could install esxi on my new mac mini is awesome. I've used esxi and ESX through work before.. cool stuff. thanks for the write up.
Would you have any info on a free automated VMbackup solution? I'm soon going to setup ghettovcb and mksbackup so I can run it through a linux or win guest and get notifications of the backups themselves.
seb says
Hi, tried your ESXi-5.1-MacMini-SMC-BOOT-FIX-6-2.iso today. Worked lovely with a current macmini
but - do you see any chance to add the broadcom driver to add support for the thunderbolt to ethernet connector?
thanks!
seb
William says
@seb,
The custom ISO already contains the necessary driver to support Thunderbolt Ethernet Adapter. I just tested on my Mini 6,2 and it shows up.
Daniel Quigley-Skillin says
/s.v00 (Buffer too small)
I've downloaded twice, burned three times, and the same result each time with the ESXi-5.1-MacMini-SMC-BOOT-FIX-6-2.iso
Suggestions?
Anonymous says
Also have the problem that Daniel has. ISO works perfect but once I run ESX for the first time it fails on boot with the /s.v00 (buffer too small) issue. I'm booting it off a 1GB USB drive which is the minimum requirement for ESXi 5.1, as well as having 2x 1TB disks available with 16GB memory. Will troubleshoot and post back unless someone else comes up with a solution first.
Anonymous says
UPDATED: works now. It's the size of the boot disk. Despite the minimum requirements of 1GB for the boot disk it actually needs to be more. I used a larger disk and the error was resolved.
Anonymous says
Is there a way to bring the Apple USB to Ethernet adapter working?
William Lam says
I'm not aware of any way to get this working yet.
David Thomas says
Thanks for putting this all together for everyone, Your a legend. Off to by a new Mac Mini..
Johannes Keil says
You made my day. Thats perfect for my Home-Office. Tested today with a Macmini 6,1, tomorrow I'll buy the big brother (6,2). And then: Nice Ikea-Cluster XD
neo says
How can you all boot from usb flash drive? I put the iso with unetbootin on a 16gb flash drive, formated with fat32. i have only a windows keyboard, with presses alt or windws key, no boot drive selcten appears. On startet osx 10.8.2 -> system settings->boot drive, the flash drive is not listed. Any ideas?
thx
Sebastian Sut says
I am going to try it, but i have some questions :
- How can I check which version of the MacMini I have ?
- Does it possible to install the very latest Mac OSX on ESXi-5.1-MacMini-SMC-BOOT-FIX-6-2.iso, and if its support 32Gb RAM ?
- I would like to work locally with two or three OS does it support HD screen resolution ?
Dicky says
I just finish installation the ESXi-5.1 on Mac mini 2012 with ESXi-5.1-MacMini-SMC-BOOT-FIX-6-2.iso, however I found that can only recognize 8G RAM but my Mac mini was installed 16G RAM. Any one have idea what cause this happen? And how to solve it?
Thousand of thank you for your help.
Adam says
Guys getting stuck at the first hurdle,
If i burn a copy of the ESXI .iso from Vmware site, i get both the windows or efi boot option from there mac ( option key at startup)
If i burn the zerologic iso I only get the windows boot option, which of course the mac min i 2012 will not boot from.
Any help would be appreciated
Anonymous says
Hey Adam, (and google users)
I thought the same thing... Turns out it WILL boot from the windows boot option, just not if you have an HDMI monitor connected to the mac mini hdmi port. I had to use a mini dp to HDMI or a mini dp (apple cinema display) monitor and it booted up fine... a waste of 5 hours as I tried over and over with different CDs and such till I hooked it up to my ACD.
if you have a q chuck_at_ischelp.com
Ben says
I can get ESXI installed on a 6,2 mac mini but im struggling to install a Mac OS X VM on the virtual environment. I only see a few people mention the problem and I havent found an answer and Im hoping you can help.
I have a working .dmg file that I know that works because if I make a bootable USB and boot my mac mini it brings me to the install window. But when I try and use the dmg file on a new mac VM I get the following errors on boot:
EFI VMware Virtual IDE CDROM drive (IDE 1:0) unsuccessful
EFI Virtual disk (0.0) unsuccessful
EFI Network pxe-e18: Server response timeout
EFI Internal Shell (Unsupport option)
It then puts me into a shell.
Can someone please help?? Really want to get this working so I can move from my current Citrix Xen environment.
Thanks
Ben
William Lam says
What version of Mac OS X are you trying to install?
Ben says
I am trying to install 10.8
Chip Zoller says
Installed and worked fine. Updated ESXi to build 1021289 and now none of my Mac VMs will power on. Tried removing and re-adding to cluster but no joy.
Joe Carroll says
Thanks so much for your work and contributions, William. Can you please clarify whether this image you've created is for the free Hypervisor or a trial/licensable full version of ESXi 5.1? I once got stung setting up ESXi 5.0 on a 2011 Mac mini and then discovering that it couldn't be used as the free Hypervisor once the trial period expired, requiring a new installation. Does this silly situation persist with 5.1?
Joe Carroll says
I went ahead and tried it out, installing onto a USB drive via VMWare Fusion (which technique I've used successfully in the past with earlier Mac min models and versions of ESXi), but when I boot the new Mac mini off of this USB drive the system crashes before completing the boot process. See: http://i.imgur.com/CQmq5rh.jpg
Joe Carroll says
Well, I glad to say I've sorted out my issues and everything seems to be working beautifully and as desired!
So, to answer my own question: yes the provided, customised image accepts free Hypervisor license, as well as being a trial and accepting licenses for the full thing for use with vCenter etc.
Regarding my second comment and how I got it working, using unetbootin to put the installer on the USB drive and then installing from that to the mini's local hard disk worked fine and didn't result in a PSOD like my previous attempts did.
William Lam says
Glad to you got this working. Yep, the vSphere Hypervisor (Free ESXi) is the same image as the one that's licensed and the features are just activated based on the license file.
Anonymous says
Has anybody gotten a MacMini server (1st gen that came with Thunderbolt) to see the Thunderbolt storage? I have the above said MacMini server, and the Pegasus R6 Thunderbolt Storage Array. What I would like to do is Daisychain the Promise for local storage, and the Network adapter to my MacMini thereby replacing my loud and heat inducing Xserve. If you have any info please let me know ggalon at shaw dot ca
DJRhinofart says
Incase anyone is trying, it works perfectly. Just need to install a RAID card driver from promise the TRX4 I believe it was. Super fast, and daisychainable. I have TB from Mac Mini going into an external PCI chassis which houses a quad port NIC, goes from that to the Pegasus R6, and then to the Apple Thunderbolt NIC. I have 6 active NICs on my MacMini server.
William Lam says
This sounds awesome! Would you be able to share more details via email? info [dot] virtuallyghetto [at] gmail [dot] com
telecastle says
William, Did you get any details on getting the driver for Pegasus R6 into ESXi so that it can be used as a DAS datastore with ESXi 5.1 running on a Mac Mini? I have ESXi 5.1 running on Mac Mini 6,2.
Thanks.
William Lam says
No, I never heard anything from the user.
Anonymous says
I cant say how appreciative i am for finding this setup. I have been trying for the last 2-3 weeks with this for a class i'm taking this summer and this just made my week. Thanks for the work you and others put in on this.
Matt Burton says
Hi William,
Do you know if it's possible to add a USB drive to mount as a datastore on the MacMini ESXi install?
Cheers
William Lam says
Take a look at this article for accessing USB device http://www.virtuallyghetto.com/2012/03/how-to-access-usb-storage-in-esxi-shell.html
Guido Craenen says
The first steps, but I cannot reboot and use shift+O. I'm getting "No bootable device -- insert boot disk and press any key". I'm trying on a mac mini 6,2 with 2 1 Tb disks that are empty with the latest 5.5 DVD from VMware. The iso's provided here do not startup on DVD.
DJRhinofart says
Have you tried just holding down the Alt/Option key to get the list of boot devices?
Benjamin Andrews (@BAoxymoron) says
I recently created
Benjamin Andrews (@BAoxymoron) says
First off, I apologize for the double post.
I recently created an iso from the latest patch files and I'm trying to figure out where I need to place this script in order to get it to automatically set the boot options. We have hundreds of Mac Minis all running ESXi and are constantly provisioning extra ESXi machines for our customers. I also wanted to say thank you for everything you've done for this community. We wouldn't be able to create the environments we have without all the work you've done.
William Lam says
Hi Benjamin,
If you take a look at my custom ISO, you'll see that there is custom.tgz which is included in the root of the ESXi installation and also referenced in EFI/boot/boot.cfg and make sure you take a look kernelopt line which specifies iovDisableIR option
Dave says
Is there a way to get it to recognize WiFi? I gave it an ip address, but I have to use an ethernet cable to get it on the network.
Thanks
raul says
could you please share the ISO again?
the link is broken
regards
Dave says
Could you please re-share the ISO for the MACMINI6,2 install, your link appears broken. Thank you!