Migrating OS X VMs from VMware Fusion 7 Pro to ESXi 5.5
A new feature that appeared in VMware Fusion 7 Pro was its new ESXi management. This included the ability to upload VMs from Fusion directly to an ESXi server. However, when I tried to upload OS X VMs something seemed to go wrong. The upload would work, but the OS X VM would then hang on boot.
Non-OS X VMs were uploading fine, so the problem was specific to OS X VMs. Since I could still build OS X VMs using the Windows vSphere client, I didn’t invest a lot of time into solving this issue. Fortunately, Calum Hunter was more motivated in this regard and found a solution.
There are a few things to know about if you want to upload an OS X VM to an ESXi server running 5.5, so I’ve put together a procedure for those who want to leverage Fusion 7 Pro to upload OS X VMs. See below the jump for the details.
There’s three issues to be aware of when uploading OS X VMs to ESXi 5.5:
1. ESXi 5.5 supports up to VMware’s Hardware Version 10.
2. VMware Fusion 7 Pro will build VMs by default using VMware’s Hardware Version 11.
3. The upload process to ESXi 5.5 will not tranfer the necessary smc.present = “TRUE” attribute from the Fusion VM’s .vmx configuration file. This attribute allows the VM to check and detect that it’s running on Apple hardware. Without this check succeeding, the VM assumes it’s running on non-Apple hardware and will then hang during the boot process (which is why I was seeing the hang in my previous upload attempts.)
Pre-requisites:
- VMware Fusion 7 Professional
- A fully-updated ESXi 5.5 server running on Apple hardware. As of October 31, 2014, the latest version should be ESXi 5.5 Patch03 (ESXi550-201410001).
Update: 3-30-2015 – If you are running ESXi 6.x, both VMware Fusion 7.x and ESXi 6.x support VMware’s Hardware Version 11. Downgrading to Hardware Version 10 will not be necessary if transferring to an ESXi 6.x server.
Setting Fusion-built VMs to use Hardware Version 10
1. Create a new VM and choose an appropriate OS.
Note: If you’re planning to upload a 10.10 VM, choose OS X 10.9 in this window. VMware Fusion’s setup process will not allow a 10.10 VM to use Hardware Version 10. In my testing, 10.10 runs fine even when the VM’s selected OS is 10.9.
2. Once the VM is created and you’ve set your preferred memory, processor and memory settings, shut down the VM and then go into the VM settings.
3. In the VM settings, go into USB & Bluetooth
4. In the USB & Bluetooth settings, set it to use USB 2.0 instead of USB 3.0. USB 3.0 is a new feature with VMware’s Hardware Version 11 and not supported on Hardware Version 10.
5. Go back out to the VM settings, then select Camera.
6. In the Camera settings, click the Remove Camera button.
7. When prompted, confirm that you want to remove the camera by clicking the Remove button. The camera is a new feature with VMware’s Hardware Version 11 and not supported on Hardware Version 10.
8. Go back out to the VM settings, then select Compatibility.
9. Change the Use Hardware Version: setting to 10 and click the Apply button.
At this point, your OS X VM should be set to use Hardware Version 10 and ready for uploading to ESXi 5.5.
Connecting to ESXi 5.5 from VMware Fusion 7 Professional
1. Launch VMware Fusion 7 Professional if needed.
2. Under the File menu, select Connect to Server…
3. In the login window that appears, enter the server address of your ESXi server, username and password as appropriate.
Exporting VMs from VMware Fusion 7 Professional to ESXi
1. Shut down the Fusion VM that you want to copy to your ESXi server.
2. Connect to your ESXi server if you hadn’t previously.
3. Right-click on the shutdown VM and select Upload to Server…
4. If prompted, select your destination server and click the Continue button.
5. A new Upload Virtual Machine window will appear.
6. Select the ESXi datastore that you want to upload your Fusion-built VM into and click the Upload button.
7. The selected VM will upload to the ESXi server.
8. Once the upload is completed, the newly-uploaded VM will appear in your ESXi server’s list of VMs as a powered-off VM.
Editing the OS X VM’s .vmx file
Before booting your VM, you will need to edit the uploaded VM’s .vmx configuration file to add the smc.present = “TRUE” attribute back to the .vmx file. There’s a few ways to do this, but I used SSH and Cyberduck’s ability to edit remote files.
With TextWrangler set in Cyberduck as my preferred editor, here’s the procedure I used:
1. Connect to the ESXi server with Cyberduck via SFTP
2. Navigate to /vmfs/volumes/datastore_name_here/uploaded_vm_name_here/
3. Select /vmfs/volumes/datastore_name_here/uploaded_vm_name_here/uploaded_vm_name_here.vmx and click the Edit button in the Cyberduck browser window.
4. At the bottom of the uploaded_vm_name_here.vmx file, add the following entry:
smc.present = "TRUE"
5. Save the changes in TextWrangler. That save process will then enable Cyberduck to write the changes back to the uploaded VM’s uploaded_vm_name_here.vmx configuration file on the ESXi server.
6. Disconnect and then quit Cyberduck.
If you’re more comfortable editing these changes with the Windows vSphere client’s editor, first make sure you’re running the vSphere 5.5 Update 2 client. Once that’s sorted, you’ll need to add the following setting to the uploaded_vm_name_here.vmx configuration file:
Name: smc.present
Value: TRUE
Once the VM has been uploaded and the VM’s uploaded_vm_name_here.vmx configuration file has been edited, your ESXi-hosted OS X VM should now be ready to go.
Did all this & uploaded a Yosemite vm to ESXi 5.5 (running on an Xserve) but it fails to find any OS entirely. This same vm runs fine locally. Any ideas?
Do the VMware tools work correctly for you when opening the ESXi vm in Fusion’s console? They don’t for me – screen rez is stuck at 1024×768, no copy/paste, no drag/drop, etc.
This worked flawlessly for me. Thank you so much for this.
Nit-picking question, but respectfully submitted: I see the line “smc.present = "TRUE"”. Should I just set the value to “TRUE” (in quotes)?
That is, the line above appears to have the quotes replaced by html-entities… and unlike my question, they weren’t rendered, but treated literally.
Thanks, it appears that the formatting went awry after I made a note today about ESXi 6 and hardware versions. It’s now been fixed.
Is anyone else having an issue with the outlined process above. I followed everything exactly as explained but still have the same issue with the spinning earth at start up regardless if I’m running the VM from Fusion 7 Pro or my ESXi server.
Ater the earth gets done spinning it goes to the loading screen (really slow progress bar) and then the VM eventually quits.
Errors that show up on VM startup:
EFI VMware Virtual SATA Hard Drive (0.0)…unsuccessful
EFI VMware Virtual SATA Hard Drive (2.0)…unsuccessful
EFI VMware Virtual SATA CDROM Drive (1.0)…unsuccessful
EFI Network…
@stutz The upload progress bar/panel that appears when you upload a VM to the server can be misleading. I had several disappear as though the process was complete, yet I could see from the available space on the server that it was not. Trying to boot the VM resulted in the series of unsuccessful boot options. I deleted it from them server, restarted Fusion and tried again, watching for the IO in Activity monitor.
I have Fusion Pro 7 and ESXi 6 but a 10.10.3 VM I created in Fusion fails to boot after uploading. It just hangs at the Apple logo loading with the progress bar about 50% across.
Hi race_carr,
It’s been some time since you posted so I’m not sure if you’re still having this issue. In any case perhaps this can benefit other readers too. I had a similar problem where my VM wouldn’t boot after uploading to the ESXi server and couldn’t find a solution via Google. BTW I am using the latest version of VMware Fusion Professional (7.1.1 (2498930) and ESXi 6.0.0 2494585-standard, OSX Yosemite 10.10.3 (14D136)). I decided to go straight to ESXi 6.0 for my purposes since it is said to be compatible with Mac Mini OOB (Out of the Box).
I uploaded my VM (HW v11) from the MAC as per this posts instructions and after a few dropouts part way through it finally succeeded however when trying to boot I experienced the problem experienced by stutz in a previous comment.
EFI VMware Virtual SATA Hard Drive (0.0)…unsuccessful
EFI VMware Virtual SATA Hard Drive (2.0)…unsuccessful
EFI VMware Virtual SATA CDROM Drive (1.0)…unsuccessful
EFI Network…
After Googling relentlessly I only found a couple of references to this issue. One suggested removing the line – ‘firmware = “efi”’ from the .vmx file which didn’t ring true to me and also didn’t work so I replaced it again. NOTE: I did already add the mc.present = “TRUE” to the .vmx file as stipulated in this post.
So I SSH to the ESXi server and looking in the vmware.log file – e.g. /vmfs/volumes/LocalSATA1/sp-macmini/vmware.log I found the following error –
2015-06-11T07:26:53.377Z| vmx| I120: DISK: AdapterType mismatch for sata0:0: disk was created for ide
So then for a bit of shotgun troubleshooting I hit upon the idea of building a new VM on ESXi with a SCSCI disk and attaching the uploaded vmdk as an existing disk.
What do you know hey voilà, it works!!!! 🙂 My converted machine boots up and is running perfectly as it was as a stand alone machine. Now I can build my VMware lab and still have my original OSX server running simultaneously.
Good luck to you all and thanks to the author for this very useful post.
Cheers,
Steve
How did you do that Steve? I am getting the same error, but when I try and attach the vmdk SCSCI is not an option, it just offers me IDE
In the “Editing the OS X VM’s .vmx file” section, the path in step 3 is missing a suffix, which, I think should be VMX.
Still having the same issues with Fusion 7.1.2 uploading to ESXi 6.0.0 that others are relating. I’m checking logs and gonna try and see if it’s a SMC setting in the VMX, or perhaps the SCSI vmdk that @steveplz mentioned.