If you follow the guide to export .ova file and import to ESXi. It will show error below on ESXi 6.0 or later:
Issues detected with selected template. Details….No supported hardware versions among….
After couple of hours’ deep dive. I figured out a way to convert VirtualBox to ESXi. You need Oracle VirtualBox, VMware Workstation or VMware Player and VMware ESXi host.
Select the virtual machine -> Go to main menu -> File -> Export appliance.
Choose the virtual machine.
Make sure Format is “Open virtualization format 1.0“.
Export to a .ova file.
Open the .ova file in VMware Workstation or VMware Player.
The import of the VM maybe failed with following error. Just click Retry button it will work. The import failed because xxxxx did not pass OVF specification conformance or virtual hardware compliance checks.
Select the virtual machine and go to main menu -> File -> Export to OVF.
VMware Workstation or VMware Player generates .ovf, .mf and .vmdk files.
Edit .ovf file and find the line with keyword “VirtualSystemType“.
Change the value “vmx-XX” to the version lower or equal to your ESXi version.
Edit .mf file and remove SHA256 value of .ovf file in first line. SHA256(XXXXX.ovf)= xxxxxxxxxxxxxxxxx
Now it’s ready to import to VMware ESXi host.
This procedure is not involve any code or command. There are also couple of other ways to convert VirtualBox to ESXi by ovftool command line. I tried several ways but didn’t work. Maybe I did something wrong.
In step 10, I changed VM version in .ovf file directly. I think you can also leverage VMware Workstation or VMware Player to downgrade the virtual machine’s version in GUI. It should work as long as the version is lower than your ESXi supported VM version.
Computer cannot contact Microsoft update service to upgrade latest patches if it’s managed by SCCM policy. Sometimes we may need to keep latest patch for testing, security or other purpose, such as when you create a golden image, you always want to keep the system up to date.
If you are using Microsoft Hyper-V 2012 and “Differencing Disk” you may get trouble when you want to move whole VMs to another location due to “Parent Disk” migration is not so easy. Following is the steps to move parent disk on Hyper-V server.
I assume you want to move bunch of virtual machines. First of all you need to get disk list of virtual machines. Following is a script to grab all parent and differencing disks on a Hyper-V server.
Save it to “Get-vhdParent.ps1”. Launch PowerShell by administrator right. Run following command to get parent disk table.
.\Get-vhdParent.ps1 | format-table -autosize
Now you have disk list in hand.
Move parent disks to new location
Parent disk moving is simple. Just copy the parent disk to new location. I suggest make multiple copies if you have large number of virtual machines linked to a parent disk. The reason is if the parent disk failed, at lease it’s not impact to all linked virtual machines. You can also distribute the duplicated parent disks to multiple location to avoid single location failure.
Re-configure parent disks for virtual machine
To be safe, I suggest grab parent disk information again by following command:
Get-VHD -Path VHDPath
Replace “VHDPath” with real differencing disk path of the virtual machine.
The output shows what’s the linked parent disk. Then run the command below to reconfigure parent disk to new location.
Set-VHD -Path VHDPath -ParentPath ParentVHDPath
You should get nothing return if it’s successfully.
If you manage Hyper-V virtual machines by System Center Virtual Machine Manager. The new parent disk is reflected after you right click the virtual machine and do a “Refresh” in System Center Virtual Machine Manager console.
Just a quick post. When virtual machine cannot get DHCP IP address the first thing you want to check is firewall. Whatever Windows firewall or physical firewall. You should make sure UDP port 67 and 68 are not blocked. Otherwise you will see the virtual machine gets 169.x.x.x IP address only.
The two ports is required for DHCP client to query IP addresses. The methodology is introduced in RFC document.
DHCP uses UDP as its transport protocol. DHCP messages from a client
to a server are sent to the ‘DHCP server’ port (67), and DHCP
messages from a server to a client are sent to the ‘DHCP client’ port
(68). A server with multiple network address (e.g., a multi-homed
host) MAY use any of its network addresses in outgoing DHCP messages.
If you have VMware Workstation and VMware Remote Console both installed on Windows 10 you may see vCenter virtual machine console in vSphere Web Client is opened by VMware Workstation instead of VMware Remote Console. If you see same case your VMware Remote Console may be hijacked. I call it “hijack” since there is no easy way to revert it back.