A quick post – nothing ground breaking really but I encountered a customer at the start of this year who encountered this problem but couldn’t seem to find any information online to help so I thought I’d put some info up here. There are a number of other articles on the net that cover the same subject, I’ve included a few within this post.
Provisioning server is a great product for reducing administrative overheads when managing a XenApp or XenDesktop environment – saying that there are still a couple of tasks that require a little extra effort when updating a provisioned image. These tasks are updating the provisioning serve agent itself and either XenServer or VMWare tools..
The problem being you cannot boot your provisioned image into private mode and update these components mainly because if you update these components you generally will interfere with the targets ability to either use the PVS agent (because you’re upgrading it) or contact the PVS server (because you’re in the middle of upgrading the servers virtual NIC drivers).
Because of this you must update these components within an image that is not provisioned which means booting a VM directly to VHD/VMDK.
A number of methods exist to do this (the following links document a few)
XenServer:
http://blogs.citrix.com/2010/12/06/fastest-way-to-update-pvs-target-device-software-with-xenserver/
http://www.thegenerationv.com/2010/02/direct-booting-vhd-in-xenserver.html
Hyper-V
http://www.xenappblog.com/2010/fastest-way-to-update-pvs-target-device-software-with-hyper-v/
VMWare:
This process, although a little long winded in some cases, it’s actually really easy when using Hyper-V or XenServer as they allow direct VHD booting. VMWare however do not utilize the VHD format for their virtual disks sticking with their traditional VMDK format which means we cannot currently direct boot from VHD (too my knowledge – if this has been added in more recent versions please let me know!)
Essentially performing this task in VMWare shouldn’t really prove much more difficult. The method I favour here for updating a provisioned image is to use VMWare Converter to P2V (V2V in this case) your current provisioned image into a non provisioned Virtual machine. This process will treat the provisioned target device as if it were a physical server and copies the contents of the provisioned disk to a new virtual disk located in the VMWare hosts storage and attaches it to a new Virtual Machine – creating a new non provisioned virtual machine using your provisioned image.
From this point you can update your PVS Agent or VM Tools component then use XenConvert/PVS Imaging Wizard to stream the image back from the new Virtual machine back to a Provisioning Server VHD.
As always please feel free to comment if you have any additional methods you’d like to share