Tonight I decided to go on the magical journey of upgrading my ESX 3.5 environment to vSphere using the Host Update Utility. I’m usually a firm believer in ‘If it ain’t broke, don’t fix it!’ but this time I decided to take the plunge and see what happens.
A few months ago, I ran through the Host Update Utility and failed a hardware compatibility check. I was running a few Intel Pro/100 NICs that ESX 3.5 was more than happy to work with but vSphere said, NO WAY. After tracking down a few Broadcom 5701 NICs, installing them without a hiccup, I honestly still considered sticking with ESX 3.5, but after talking to a few friends who have had no trouble with their upgrades, I figured the most that I had to lose was a little time. I ran through the wizard again, of the Host Update Utility, it complained about nothing this time and continued.
After a short while, maybe 10 minutes or so, I was up and running on vSphere 4. No hiccups! I immediately started booting up VMs. I ran into my first problem. 🙂
After upgrading VMware tools and a single VM to see what problems may occur, and then upgrading the virtual hardware, I realized after rebooting that I could not access the network. No pings were answered, no nothing. Fortunately for me I had already been advised by a friend, what to do.
Apparently after upgrading the virtual hardware on a Microsoft OS VM, which VMware tools very nicely copies network settings to the new hardware and removes the old hardware, there is a hidden / ghosted network card that remains in the OS. You’ll come across this message if you open up the network settings on your new NIC and try to close it without using cancel. The solution to this issue is removing the ghosted hardware using the device manager.
The Fix: (there are a couple of processes, read through before trying.)
Before opening the device manager, you can set a System Variable titled as follows:
devmgr_show_nonpresent_devices = 1
Different versions of Windows have different methods for setting the variable, but generally speaking if you right-click on My Computer or Computer, and click on Advanced in whatever window opens for you, a tab in XP, 2003, etc, or Advanced System Settings under Windows 7 and Server 2008, you can adjust the ‘Environment Variables’.
Adding the the above environment parameters and rebooting will allow you to see the hidden / ghosted NIC in the device manager. You also have to enable “Show hidden devices” under the view menu in Device Manager. Delete the grayed out items under Network Adapters, reboot, and you should be good-to-go.
I’ve heard tale that you can also type into the command-prompt as follows:
… and that is supposed to open a command-prompt with the setting enabled. You still have to “Show hidden devices” under the View menu. I have not validated rather this method works or not, but as it’s easier to try, please feel free to try it first. I know it didn’t work for my Windows Server 2008 R2 environment.
Please comment with any other methods that may have worked for you. The System Variable method is a major hassle.
All and all, great upgrade experience. Oh, and have patience… after the vSphere Host boots, there’s still about 5 minutes before the Host Update Utility confirms that the host has upgraded properly.
NOTE: Don’t forget to download the media for vSphere before running the Host Update Utility. It is required in the very first steps of the process.
Good Luck and Happy Virtualizing!