If you have been using provisioning services for any amount of time you have come to realize the benefits of how easy and quick it can be to update a OS image compared to the old school methods. In the past the exception to this would be if you needed to update the PVS client software, nic driver, or some applications that use network filter drivers you would have to “reverse image” your vdisk back to a local hard drive uninstall the pvs client software, install new pvs client software, reboot and then recapture the entire vdisk. For someone with only one vdisk this was not that big of a deal but for those that had 50+ different vdisk this was a major job. In the release of PVS 5.1 we now have a new feature to address these type of vdisk updates “Direct VHD Boot”. This feature allows you to take the PVS VHD files and boot them up directly with in Microsoft’s 2008 HyperV manager and update your pvs client software or nic drivers without having go through the above mentioned process.
This feature also allows you to maintain a common image between a physical target device and a HyperV VM you might want to stream to for a Xendesktop environment … so one VHD image for both physical and virtual(streamed and hosted).
Below I will take you through the process of using this new feature.
1. For this example I have taken a windows7 pvs image which I created for a Wyse Rx0 series thinclient ( see below)
2. If you don’t already have one go ahead a setup a 2008 server with HyperV enabled. Make sure you have plenty of space.
3. Copy the pvs image over to your HyperV server. You need both the vhd and pvp files.
4. Open HyperV Manager or SVMM on your 2008 server and create a new Virtual Machine.
5. Do not create a virtual hard disk. Select “Use an existing virtual hard disk” as seen below and browse to the location where you copied the VHD and PVP file.
6. Uncheck the box below that says “start the virtual machine after it is created.
7. Under your VM settings for your newly created VM Remove the current network adapter.
8. Add a legacy network adapter.
9. Assign the legacy adapter to the physical adapter on the host. In my case it is “external”
10. Start the new Virtual Machine.
11. Let the system install the new drivers and reboot
12. Uninstall PVS target device software and then reboot
13. Install Hyper-V’s Integration services
14. Install Provisioning Services target device software.
15. If you do not get prompted to choose the NIC to Bind to as seen below. You will need to go to the pvs program files directory and run bindcfg.exe manually to get this menu.
16. Shutdown VM
17. Set it to boot to legacy NIC first
18. Now rename and Copy the modified VHD image back to the PVS server vdisk directory.
19. Add updated vhd as a existing vdisk
20. We now assign the new updated vdisk(vhd) to our Physical Client or Virtual Client(hyperv) In this case I am using a wyse Rseries thinclient to stream the windows7 image locally.
21. Set your vdisk to Standard Image Mode if not already.
22. You now should be able to boot your physical device(pxe/iso) and boot up the update vdisk(vhd)
23. Here is a Pic of the Wyse Rx0(no flash drive) booting from the win7 vdisk(vhd). This is booting over the wireless network via a Asus330g bridge. Not something we usually recommend for production but a pretty cool demo.
***If you are going to be upgrading from a 4.x version of PVS you will also need to run VHDConverter.exe against your vdisk to convert to the new VHD vdisk format.