Upgrading ESXi Virtual Hardware with SSH – Quick Tip


Working with vCenter Server is a very nice feature, and depending upon which version of VMware licensing you have it can make your sysadmin life much easier. Have you ever thought about upgrading Virtual Hardware over SSH? if you are only using the free version of ESXi, In the old days (ESXi 5.1 and older) it wasn’t a big deal to upgrade the virtual hardware. You would simply shut down the virtual machine and right click on the virtual machine in the vSphere client and select “Upgrade Virtual Hardware”.

Tradition Upgrade Virtual Hardware


Which you can still do today… with a catch. On ESXi 5.5 and 6.0 the “Upgrade Virtual Hardware” option will upgrade the virtual hardware to version 10 and 11 respectively. As many of us know you if you do that then you’ll only be able to power on the virtual machine through the vSphere Client, you won’t be able to edit it at all. Virtual Hardware version 10 and 11 forces you to manage the Virtual Machine through the Web Client. Which makes sense when you think about it with Virtual Hardware version 10 and 11 VMware adds features to the VM that can only be implemented through the web client. 

When you create a new virtual machine with the vSphere Client on ESXi 5.5 the highest virtual hardware level you can select is Version 8 (ESXi 5.0) and if you use the right click method above it will upgrade the virtual machine to virtual hardware version 10, completely skipping virtual hardware version 9 (ESXi 5.1).

If you’re running the free version of ESXi, you don’t have the Web Client so what do you do?

Upgrade the Virtual Hardware over SSH!

There are a few different ways to upgrade the the virtual hardware on the VM and virtuallyghetto goes through a couple of them. I prefer the direct approach with SSH. This way you don’t have to worry about having powercli or the vmware powershell tools installed on your computer. So lets get into how to do this.

Before I go through the How To i should warn you about upgrading virtual hardware. You can not downgrade a virtual hardware upgrade so if your virtual machine breaks after the upgrade you’ll have to restore from a backup.

How To Upgrade the Virtual Hardware using SSH:

1. Enable SSH on your host.

2. Use an SSH program to connect to your ESXi host

3. Type vim-cmd vmsvc/getallvms to get a list of your VMs and their virtual hardware versions.

original vm list

As you can see in the list i have 2 virtual machines that are not on version 9. Lets change that!

highlighted vm list

4. Shutdown the virtual machine(s) you want to upgrade.

5. Type vim-cmd vmsvc/upgrade (VMID) vmx-(version level number)

VM Upgrade Results

6. Power on the upgraded virtual machine(s) and disable SSH on your host.

Personally I don’t like the Web Client so for virtual machines that are not taking advantages to features like vFlash I leave my virtual machines at hardware version 9 it’s the highest hardware level that can be managed through the vSphere client.

I hope this helps you out when you’re doing VMware maintenance.

Here is a list of the different hardware versions and their features.

Bounce Tip:

If you have vCenter Server and the Web Client you can use the Web Client to schedule an virtual hardware upgrade on a virtual machine reboot. In the task creation process you can select which hardware version you want to upgrade to. So you can go from version 8 to version 9 on a reboot through the Web Client.