VMware Cloud Community
Solidbrass
Enthusiast
Enthusiast
Jump to solution

What is the process for installing OS X 10.9.x on ESXi 5.5 host?

I've tried this a couple different ways and I always get the same result, which is a spinning beach ball during the boot process.  My current setup is ESXi 5.5 running inside a Fusion 6 VM, with 8GB of RAM allocated and 40GB of disk.  I attached InstallESD.dmg (and I've also tried creating a custom mavericks iso) as a virtual device on the Fusion-based ESXi host.  I then create a new virtual machine, declaring it as a 10.7 64-bit system, allocating 4GB of ram and 25GB of disk (which leaves approximately 7GB free on the ESXi host datastore).  I set the optical drive to be attached at power on and to use the host device.  If I then power on the VM with the console open, it starts to boot, showing the gray screen with a slightly darker Apple logo, the progress indicator starts to move, and then after 10-20 more seconds, I get the beach ball icon, which spins endlessly. I've tried upgrading it to hardware version 10, I've tried moving an existing Fusion vmdk into place and booting it (which ESXi doesn't like at all).  All of this is being done on a current model Mac Pro.  I've googled around for it and I mostly find kludgy discussions of trying to run ESXi 5.1 and installing OS X on non-Apple hardware.

1 Solution

Accepted Solutions
dariusd
VMware Employee
VMware Employee
Jump to solution

Looping back from our private discussion to the public thread...  There was some confusion about logfile names which we resolved, after which we got on with the job of troubleshooting the configuration.

The outer (ESXi) VM needed two added options:

   smc.present = "TRUE"

   smbios.reflectHost = "TRUE"

and then everything worked as it normally would when creating VMs on the virtualized ESXi "Mac host".  (I don't believe the ESXi VM needs the ich7m.present line I mentioned earlier... it makes no sense, and I honestly don't know why I suggested it.)

Cheers,

--

Darius

View solution in original post

Reply
0 Kudos
8 Replies
dariusd
VMware Employee
VMware Employee
Jump to solution

Hi Solidbrass,

The default virtualization settings for ESXi guests do not provide a "Mac-like" environment – i.e. the nested ESXi instance thinks it is running on a regular PC, and does not have access to virtualized versions of the Apple-specific platform hardware.  I don't think we have actually tested running OS X nested inside ESXi in Fusion on Apple hardware... You are probably blazing a new trail here.

Try this:

  • Shut down the ESXi VM normally.
  • In Fusion, locate the ESXi VM in the Virtual Machine Library.
  • Ctrl-click on its name, then press the Option key and choose Open Config File in Editor.
  • Add the following two lines to the end of the config file, ensuring that your text editor does not use "smart" curly quotes:

   smc.present = "TRUE"

   ich7m.present = "TRUE"

  • Save and close the file.
  • Power on your ESXi VM.
  • Power on your nested OS X VM and see if it boots.

Let us know how it goes!  I'd be happy to help continue troubleshooting if it does not work.

Thanks,

--

Darius

Reply
0 Kudos
Solidbrass
Enthusiast
Enthusiast
Jump to solution

No such luck.  I made the configuration change described and rebooted the VM with ESXi 5.5 in it, then attempted to start the OS X VM.  I get the same behavior, where the progress icon begins to spin for maybe ten seconds or so, then halts, and the mouse icon turns into the beach ball.  I double checked that the .vmx file for the OS X VM on the ESXi host also had the ICH and SMC flags and it did have those flags set (not surprising as the Vsphere client did show OS X 10.7 64 bit as the platform). FYI for anyone attempting to replicate, you have to extract BaseSystem.dmg from the InstallESD.dmg (it is a hidden file) and choose that as what you mount as the install media.  You can also follow instructions available by searching the web for creating bootable 10.9 install media from the App.

I see these lines in the .vmx file on the ESXi host:

guestOS = "darwin11-64"

smc.present = "TRUE"

ich7m.present = "TRUE"

I used the force EFI on next boot option and booted OS X in verbose mode from the EFI prompt by executing the following commands from the "unsupported" EFI Shell.

mount fs0:

fs0:\System\Library\CoreServices\boot.efi -v

When I do that I get a number of errors before it stalls:

BootCacheControl: Unable to open /var/db/BootCache.playlist: 2 No such file or directory

then some serial port initialization stuff

then:

SMC::smcReadKeyAction ERROR: smcReadData8 failed for key $Num (kSMCKeyNotFound)

SMC::smcReadKeyAction ERROR: $Num kSMSKeyNotFound(0x84) fKeyHashTable=0x0

SMC::smcReadKeyAction ERROR: smcReadData8 failed for key LsNM (kSMCKeyNotFound)

...etc (I have to retype these so I'm skipping a few as this is easily replicated)...

Previous Shutdown Cause: 0

SMC::smcInitHelper ERROR: MMIO regMap == NULL - fall back to old SMC mode

SMC::smcGetKeyInfoAction ERROR WKTP kSMCSpuriousData(0x81) fKeyHashTable=0x0xffffff8013054000

SMC::smcGetKeyInfoAction ERROR WKTP kSMCSpuriousData(0x81) fKeyHashTable=0x0xffffff8013054000

ACPI_SMC_PlatformPlugin::start - waitForService(resourceMatching(AppleIntelCPUPowerManagement) timed out

init

probe

start

DSMOS has arrived

[IOBluetoothHCIController][start] -- completed

Beachball.

Here is the vmware-8.log, and I think the way it ends is a bit weird. Before I see the beach ball appear, these are the last log entries, and no new ones appear once the beach ball appears.  It looks as if the VM itself is deciding to stop some hardware in the middle of executing.  All of this appears _before_ the beach ball.

2014-07-21T15:47:40.354Z| vmx| I120: SVMotion_PowerOff: Not running Storage vMotion. Nothing to do

2014-07-21T15:47:40.358Z| vmx| I120: USB: Disconnecting device 0x10e0f0002

2014-07-21T15:47:40.359Z| vmx| I120: Destroying virtual dev for scsi0:0 vscsi=8196

2014-07-21T15:47:40.359Z| vmx| I120: VMMon_VSCSIStopVports: No such target on adapter

2014-07-21T15:47:40.360Z| mks| I120: MKS PowerOff

2014-07-21T15:47:40.360Z| mks| I120: MKS thread is exiting

2014-07-21T15:47:40.360Z| vmx| I120: USBGL: Closed arbitrator connection

2014-07-21T15:47:40.361Z| vmx| I120: scsi0:0: numIOs = 0 numMergedIOs = 0 numSplitIOs = 0 ( 0.0%)

2014-07-21T15:47:40.361Z| vmx| I120: Closing disk scsi0:0

2014-07-21T15:47:40.361Z| vmx| I120: DISKLIB-VMFS  : "/vmfs/volumes/53cbf104-d7ecab9b-d714-000c29dacc03/OS X Server/OS X Server-flat.vmdk" : closed.

2014-07-21T15:47:40.362Z| vmx| I120: SVMotion_PowerOff: Not running Storage vMotion. Nothing to do

2014-07-21T15:47:40.368Z| vmx| I120: WORKER: asyncOps=199 maxActiveOps=1 maxPending=1 maxCompleted=1

2014-07-21T15:47:40.368Z| vmx| I120: Vix: [40707 mainDispatch.c:1201]: VMAutomationPowerOff: Powering off.

2014-07-21T15:47:40.378Z| vmx| I120: Vix: [40707 mainDispatch.c:3964]: VMAutomation_ReportPowerOpFinished: statevar=1, newAppState=1873, success=1 additionalError=0

2014-07-21T15:47:40.378Z| vmx| I120: Vix: [40707 mainDispatch.c:3983]: VMAutomation: Ignoring ReportPowerOpFinished because the VMX is shutting down.

2014-07-21T15:47:40.392Z| vmx| I120: Vix: [40707 mainDispatch.c:3964]: VMAutomation_ReportPowerOpFinished: statevar=0, newAppState=1870, success=1 additionalError=0

2014-07-21T15:47:40.392Z| vmx| I120: Vix: [40707 mainDispatch.c:3983]: VMAutomation: Ignoring ReportPowerOpFinished because the VMX is shutting down.

2014-07-21T15:47:40.392Z| vmx| I120: Transitioned vmx/execState/val to poweredOff

2014-07-21T15:47:40.392Z| vmx| I120: VMX idle exit

2014-07-21T15:47:40.392Z| vmx| I120: VMIOP: Exit

2014-07-21T15:47:40.397Z| vmx| I120: Vix: [40707 mainDispatch.c:849]: VMAutomation_LateShutdown()

2014-07-21T15:47:40.397Z| vmx| I120: Vix: [40707 mainDispatch.c:799]: VMAutomationCloseListenerSocket. Closing listener socket.

2014-07-21T15:47:40.397Z| vmx| I120: Flushing VMX VMDB connections

2014-07-21T15:47:40.398Z| vmx| I120: VmdbDbRemoveCnx: Removing Cnx from Db for '/db/connection/#1/'

2014-07-21T15:47:40.398Z| vmx| I120: VmdbCnxDisconnect: Disconnect: closed pipe for pub cnx '/db/connection/#1/' (0)

2014-07-21T15:47:40.401Z| vmx| I120: VMX exit (0).

2014-07-21T15:47:40.401Z| vmx| I120: AIOMGR-S : stat o=1 r=3 w=0 i=0 br=49152 bw=0

2014-07-21T15:47:40.401Z| vmx| I120: OBJLIB-LIB: ObjLib cleanup done.

2014-07-21T15:47:40.401Z| vmx| W110: VMX has left the building: 0.

Reply
0 Kudos
dariusd
VMware Employee
VMware Employee
Jump to solution

Looping back from our private discussion to the public thread...  There was some confusion about logfile names which we resolved, after which we got on with the job of troubleshooting the configuration.

The outer (ESXi) VM needed two added options:

   smc.present = "TRUE"

   smbios.reflectHost = "TRUE"

and then everything worked as it normally would when creating VMs on the virtualized ESXi "Mac host".  (I don't believe the ESXi VM needs the ich7m.present line I mentioned earlier... it makes no sense, and I honestly don't know why I suggested it.)

Cheers,

--

Darius

Reply
0 Kudos
Solidbrass
Enthusiast
Enthusiast
Jump to solution

One other thing I had to do was add SMBIOS.use12CharSerialNumber = “TRUE” to the OS X configuration so that the caching service and whatnot would work correctly in OS X Server.  Thanks again to Darius for helping me get this working.

Reply
0 Kudos
MichalMMac
Enthusiast
Enthusiast
Jump to solution

Hello. I am trying to replicate this (http://www.virtuallyghetto.com/2014/08/how-to-run-nested-mac-os-x-guest-on-nested-esxi-on-top-vmware...).

My Setup:

Host: MBA 2012, i7, 8GB RAM, OS X 10.9.5 (also tested on iMac 27' 2011, i7, 12 GB RAM, OS X 10.9.5)

VMware Fusion 7.0

VM1: ESXi 5.5u2 (2 Core, 4 GB RAM, HW version 11)

VM2: OS X 10.9.5 (2 Cores, 2 GB RAM, HW version 10)

VM3: Empty VM for OS X 10.9 which is to installed via NetInstall (2 Cores, 2 GB RAM, HW version 10)

First Try

1) Install ESXi into VM inside Fusion (VM1) - ok

2) Change configuration .esx file - ok (confirmed via https://[ESXi-server-IP]/mob/?moid=ha-host&doPath=hardware)

smc.present = "TRUE"

smbios.reflectHost = "TRUE"

3) Connect to ESXi (VM1) from Fusion - ok

4) Install OS X 10.9.5 to VM (VM2) in Fusion - ok

5) Install Client VMware tools in VM2 - ok

6) Shutdown VM2 and upload it to ESXi server (VM1) - ok

7) Run VM2 on ESXi server (VM1) - FAIL (hangs during boot. when I send shut down command, I see launchd terminating procesess before system shutdown - so it is not completely frozen)

Second Try

4) Create custom VM for OS X 10.9.5 (VM3) - ok

5) Upload VM3 to ESXi server (VM1) - ok

6) Run VM3 on ESXi server (VM1) - FAIL

- VM3 starts booting from network (10.9.5 NetInstall image from other Mac running NetInstall service)

- VM3 hangs during startup (beachball)

Am I missing something?

Reply
0 Kudos
Solidbrass
Enthusiast
Enthusiast
Jump to solution

The only thing I can think of that I did differently aside from using Fusion 6, is that I uploaded an install ISO for OS X to the virtual ESXi host, and created the VM, and installed the OS, within ESXi, rather than creating a VM host and uploading it to ESXi.

dariusd
VMware Employee
VMware Employee
Jump to solution

Hi MichalMMac,

We're aware of a problem affecting the "upload" feature of Fusion when used with OS X virtual machines.  Until the problem gets fixed, you'll have to manually add smc.present = "TRUE" to the OS X virtual machines that you upload to ESX (whether that ESX instance is physical or virtual), because the upload process currently does not transfer that essential option.  (This is in addition to smc.present = "TRUE" in the ESXi virtual machine!)

Cheers,

--

Darius

MichalMMac
Enthusiast
Enthusiast
Jump to solution

Thank you. It works!

You've just saved me from a lot of pain when trying this on actual HW.

(I edited .vmx configuration file through SSH connection using SFTP client.)

Reply
0 Kudos