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.
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
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:
smc.present = "TRUE"
ich7m.present = "TRUE"
Let us know how it goes! I'd be happy to help continue troubleshooting if it does not work.
Thanks,
--
Darius
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.
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
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.
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...).
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)
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)
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?
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.
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
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.)