Turning Mac Minis into Agile Mac OS X ESXI Hosts: Getting to Bare Metal
As a Mac Sysadmin you learn early on that sometimes you have to do strange and terrible things to the machines you look after at the behest of your users. Being a lifelong Mac Geek I’ve spent a fair amount of time fiddling in the guts of Macs and doing all sorts of strange Mac Wizardry. When my users asked for new Mac OS VMs to test Xcode for teams, I jumped at the chance to build ESXI hosts.
Since it’s a bit tricky, and the latest and most complete documentation I found was from 2012, I decided to document the process. Turning current-gen Mac Minis into ESXI vSphere hosts isn’t the strangest thing you’re ever going to do, but be warned: the route I took does void the AppleCare warranty included with the computer.
Who needs Mac VMs anyways? Or, why the heck did I do this?
New Relic’s Portland office is our Intergalactic Engineering HQ, and as such the engineers need to have a variety of different OS virtual machines. Also, as our entire office runs on Mac laptops we also need to have environments that can run for extended or indefinite time periods.
The most notable of the engineering groups who need long-running Mac environments is our Mobile team, which needs them to compile our iOS apps. They were the department that initially approached me about getting multiple Mac OS environments set up, and have benefited the most from the transition to ESXI vSphere hosted VMs.
Note: If you’re here for assistance on getting ESXI up and running on your own Mini, please skip to step 7 of “Loading ESXI vSphere” for directions on getting past the Pink Screen of Death. In a follow-up post I’ll cover some of the imaging caveats for Mac OS VMs.
General benefits of using Mac Minis, especially with ESXI
So, you might be wondering, why on earth would someone strip the OS off of a Mac Mini and install ESXI on it. Well, there are several reasons:
- Mac Minis are the only “server” Macs available. XServes, and the older sliver tower Mac Pros aren’t being produced, and haven’t been in several years. The new Mac Pro isn’t designed to run as a headless server—it’s targeted at high end graphics and video editing.
- Mac Minis are, relatively speaking, cheap. The Server model costs $999 without any upgrades. Compare that to the price of the older Mac Pros and the XServes of yore, and they’re a steal.
- Mac Minis are easy to add to server racks. With a Sonnet RackMac enclosureyou get two Minis per 1U in a server rack.
- You can isolate services. Need Netboot, Profile Manager, and Caching Server? You can block services off in their own instance of OS X in VSphere. If one service goes down you can reboot that VM and not affect the rest.
- Snapshots. Need to upgrade to a the latest point revision of Mac OS X? Take a snapshot of your VM, run the update, and if things break no big deal—just roll back to the last snapshot.
Convinced you yet? If so, read on to find out exactly how you can do it yourself.
To replicate the setup I created, you’ll first need to gather the following:
- Current generation Mac Mini (I used the default server config as the base)
- 16GB RAM kit
- 500GB SSDs to replace the included 2x 1TB 5400RPM HDs
- 1x Mac Mini Logic Board Tool (you can sub in spudgers if you like to live dangerously)
- Wired Apple Keyboard and Mouse
- A display
- Torx and Philips Screwdrivers
- A spudger (aka black stick)
- USB thumb drive in the 8GB range
- A second computer
- 2-4 uninterrupted hours, 4 if you’re upgrading your hardware
WARNING: If you are not an Apple Certified repair technician you will void the warranty on your Mac Mini if you proceed with upgrading the hardware!
Upgrade the Mac Mini
So, while things will work if you use an off-the-shelf Mac Mini from your local Apple Store, you can get some pretty awesome write speed performance gains by taking a little bit of time to upgrade the mini to Flash-based SSDs instead of the platter-based HDDs that come installed in Mac Mini Servers by default. If you’ll be using a stock, or purchased a tricked-out Mac Mini directly, please skip to Step 3.
Total install time: about 1 hour, mostly depending on how often you tear down mac Minis, and whether you’ve got all the tools at the ouset.
- Go to iFixit and look up the relevant teardown manual for the Mac Mini you’ll be taking apart. Most likely it will be the Late 2012 guide.
- Follow the directions and upgrade your Mini. For my upgrades I followed theDual Hard Drive Kit guide as I’m swapping in SSDs.
Now would be an excellent time to run Apple Hardware Test (boot while holding down D) to verify that everything is hunky dory. If you’ve upgraded your hardware make sure you boot into Internet Recovery and partition the drives so that vSphere will be able to see them!
Note: I’ve had a hell of a time getting the antenna plate back on, because it goes both over and under the unibody frame, even if you have the drive properly lined up into its derpy little mount spots on the inside.
Loading ESXI vSphere
And now, the meat and potatoes—getting ESXI downloaded and installed on the Mac Mini. Again, if you’ll be using a stock, or purchased a tricked-out Mac Mini directly, please skip to Step 3.
Total time: Varies. Depending on how quickly you get ESXI downloaded and how many times you encounter the Pink Screen of Death. Could be anywhere from 30 minutes to over an hour. There’s a fair bit of sitting around waiting on the installers.
- Download a copy of Unetbootin here — this will let you create a bootable USB vSphere installer.
- Download ESXI 5.5 from VMware’s site. 5.5 is awesome because Mac VMs will automagically net boot on configuration.
Connect your flash drive, open Disk Utility, and partition it with Master Boot Record scheme and format set to MS-FAT (aka FAT32).
- Open up Unetbootin, it’ll ask for Admin credentials so it can create the drive.
In Unetbootin on the “Diskimage ISO” section click the ellipsis button and navigate to the ISO you downloaded from VMware’s site.
- Select the flash drive on the Drive line, and then click OK. Unetbootin will now create your bootable device for you.
Plug the flash drive into the Mini, hold down Option at boot, and choose EFI Boot. Hit Shift and O or else make friends with The Pink Screen of Death.
- After hitting Shift O at the ESXI bootloader type in
iovDisableIR=TRUEwith a leading space. This will bypass the PSOD as is stated here.
- Follow the prompts and run the installer. When the Mini reboots make sure you hit Shift O to bypass the pink screen! (If you haven’t installed VShpere before follow the directions here and skip to step 5.)
- Once the system has rebooted, hit F2 to go to System Configuration.
- Choose Configure Management Network and verify that the Mac Mini’s network adapter is seen by VMware.
- Optional: Go to IP Configuration and set a static address for your server. Also feel free to set a hostname in DNS configuration.
- Go into Troubleshooting Mode Options and turn on ESXI Shell and SSH.
SSH into the newly configured Mini and run the following to disable our dear friend the Pink Screen of Death:
esxcli system settings kernel set --setting=iovDisableIR -v TRUE
https://[IP Address or Hostname of your Server]/mob/?moid=ha-host&doPath=hardwareand verify that smcPresent is listed as true. This means you’ve got a functional Mac ESXI vSphere host!
Congrats! You now have a fully functional Mac Mini that can run VMs without the overhead of OS X! Stay tuned for my next post, where I’ll explore setting up VMs using an existing Casper Netboot server, and suggestions on VM configuration.
If you’ve got any questions or comments, stop by the MacEnterprise mailing list, where I’ll be opening a thread on this topic. Not a member of the list? Sign up here— it’s an incredibly handy resource.