One of my favourite features in Windows 8 is client side Hyper-V. This allows me to run multiple virtual machines on my Lenovo W530 laptop without having to remote to other machines when I am on site with customers.
As you can imagine I have a plethora of VMs for a variety of situations, and I ran into a bit of a pickle when moving my Exchange 2003/2007/2010 migration workshop lab over to Windows 8. This was for a different series of VMs than the one that would not import.
I thought that I’d share this to save others the time. So if you are seeing issues around:
Then you may be interested in seeing what was going on with my naughty integration components! Oooohh matron…
Update 20-1-2014: For a giggle I repeated the exercise with Windows Server 2012 R2 to see if that would upgrade the original VM's ICs correctly. It did not and I still had the same behaviour as shown here.
The machine that we will look at is a Windows Server 2003 x86 Enterprise Edition VM with SP2 installed. Upon starting the VM up we can see that the Windows 2008 R2 SP1 Hyper-V Integration Components (6.1.7601.17514) are currently installed as this VM was last running on that version of Hyper-V.
The VM was copied to my Windows 8 laptop, imported and then powered on.
Device Manager shows that there is a virtual network card present, and as expected there are a couple of unrecognised devices. This is because the Windows 2008 R2 version of the Integration Components will allow the machine to start and function, but does not recognise all of the virtual hardware in a Windows 8/2012 hosted VM.
Looking at the properties of one of the unknown devices we can see the following:
The above is something that updating the Integration Components to a supported version will fix. So moving on…
The virtual network card has the following version information. If your name is Norman Potter, Hyper-V version spotter, then you might notice that something is not quite pukka with this……
And to check the version information of the file on disk: netsvc50.sys 6.0.6001.18004
Hold those thoughts for now, and we’ll come back to them.
From the VM’s Action menu when “Insert Integration Services Setup Disk” is selected, the expected prompt appears in the VM.
So far so good, so let’s hit OK to start the upgrade.
The upgrade commences and then states that it has successfully completed. The VM is then immediately restarted as requested.
After the reboot, things are not looking good. In fact, it’s all gone a bit Pete Tong…..
In the event logs multiple services have failed to start. There is also no network connectivity to any other machines. IPCONFIG shows no IPs are present and there is no valid TCP/IP configuration.
It looks like a new party game has been invented, it’s called “Hunt the network card”. Can you see the network card listed below in Device Manager?
Nope, neither can I…..
When showing system devices, some of the system devices are unable to start.
Properties of the above devices shows the following:
In the C:\Windows folder there was nothing of interest in the new Integration Services Setup Logs
C:\Windows\VMGuestSetup.log -- - Debug log written by setup.exe. A new section is appended to the log for each installation or uninstallation
C:\Windows\VMGcoInstall.log -- Debug log written by the guest components co-installer. A new section is appended to the log for each installation or uninstallation
I also had an older log VMGInst.log dating from April 2008. Opening this log would reveal the issue, but I’ll keep that to the end else it will spoil the surprise
When troubleshooting virtual machine issues it sometimes helps to think what would you do if there were a physical machine? Well on Windows 2003 I would look at the setupapi.log. And sure enough the setupapi.log had errors within it:
#I443 No installed Authenticode(tm) catalogs matching catalog name "oem0.CAT" were found that validated file "C:\WINDOWS\system32\DRVSTORE\gencounter_46FBE6659A8242F714DAEF17D05DB56E79E85446\gencounter.inf" (key "gencounter.inf"). Error 1168: Element not found.
#I443 No installed Authenticode(tm) catalogs matching catalog name "oem16.CAT" were found that validated file "C:\WINDOWS\system32\DRVSTORE\gencounter_46FBE6659A8242F714DAEF17D05DB56E79E85446\gencounter.inf" (key "gencounter.inf"). Error 1168: Element not found.
#I443 No installed Authenticode(tm) catalogs matching catalog name "oem17.CAT" were found that validated file "C:\WINDOWS\system32\DRVSTORE\gencounter_46FBE6659A8242F714DAEF17D05DB56E79E85446\gencounter.inf" (key "gencounter.inf"). Error 1168: Element not found. [2012/07/04 18:35:17 2808.202 Driver Install]
Are those files there, and are they corrupt?
Looking at the system showed that these oem.inf files were still present on the file system. When opened up in notepad it is possible to see that they are related to Hyper-V IC, and that the dates indicated that they are old and out dated. So Windows is not attempting to install the later versions of the Hyper-V drivers, and is getting stuck on the old files which are failing Authenticode checks.
Again placing this in context on a physical system with driver issues, one technique is to purge the offending driver from the system and then to re-install it fresh. In the case of this Windows 2003 VM I then uninstalled the latest Hyper-VC ICs and restarted the machine.
Once logged back on after the reboot, I did a quick search to see what other remnants have been left over from previous installs. The results can be seen below. After checking that these are all Hyper-V files I moved all of them out from their current location to a backup location.
Now that all traces of the previous Integration Components have been removed, let’s install the latest Integration Components. This was done using the same method as originally discussed above.
After the required restart, the mouse integration, networking and all unknown hardware elements are working fine. The gods of plug & pray are on our side.
All the virtual hardware components were correctly enumerated and installed on the first attempt. This also includes the virtual network card which is rather handy as this was the Domain Controller for this particular lab.
Thinking about certain issues inside a VM will involve the same troubleshooting as a physical machine. VM’s <James Doohan> Cannae Change the Laws of Physics ! </James Doohan> so physical reality still matters.
In the case of this VM, it had existed on every single version of Hyper-v starting from the initial beta build and had managed to retain one of the older drivers. When we look at Windows Vista and up and the move to Component Based Servicing (CBS), this has alleviated a lot of the issues with chaining multiple .inf files and the dependency issues that they create. Take a peek at this for more details on CBS.
The VMGInst.log showed that the initial installation for the Hyper-V beta ICs was the start of this issue. This log had entries like
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\netvsc.cat with error 0x57
KB article You cannot install some updates or programs discusses some of the issues around such errors.
And for some more historical fun, remember that the initial release of Hyper-V was announced as coming < 180 days after the release for Windows 2008. This was installed through update Description of the update for the release version of the Hyper-V technology for Windows Server 2008 (950050) which is dated 26th of June 2008. This DC VM was built using the beta version in April 2008.
Note that you may not have the VMGInst.log present on your system as this log is not used in the more recent Hyper-V versions.
Cheers,
Rhoderick
If you would like to have Microsoft Premier Field Engineering (PFE) visit your company and assist with the topic(s) presented in this blog post, then please contact your Microsoft Premier Technical Account Manager (TAM) for more information on scheduling and our varied offerings!
If you are not currently benefiting from Microsoft Premier support and you’d like more information about Premier, please email the appropriate contact below, and tell them you how you got introduced!
US
Canada
For all other areas please use the US contact point.
An updated list of the integration component version numbers (or even just the current versions for each OS) would be very helpful!
Had the same problem. But all I had to do was reboot again and everything was fine.
Not clear to be the actual solution is. I think I have the very same problem you had. Vmbus is still thinking it is on version 14.39.58.865 which of course means the 6.3 version driver won't install.
Uninstall the ICs. And then check that there are no residual driver INF files left behind. That was the main thing for me. Cheers, Rhoderick