In December of 2009 I wrote about Upgrading Provisioning Services vDisk Target Device Software, Virtual Machine Tools, and Network Drivers.  In that blog post I wrote about using the Reverse Imaging, Hyper-V Direct VHD boot, and XenServer Direct VHD boot options for updating Provisioning Services vDisk Target Device Software, Virtual Machine Tools, and Network Drivers.  With the recent releases of Provisioning Services 5.6 SP1 and XenServer 5.6 FP1 I decided to test out using XenClient to update the Provisioning Services images.  In this blog post I am going to go over another option for updating Provisioning Services vDisk images using XenClient.

Since The Citrix Blog post came out on How to run a NetScaler VPX on XenClient RC2 I have been thinking about other ways to use XenClient for a testing/lab tool and/or as a maintenance tool.  When updating  Provisioning Services images I have set up a single Hyper-V server at customers with XenDesktop deployments on VMware for the Hyper-V Direct VHD boot option, used the XenServer Direct VHD boot option by setting up a XenServer NFS storage repository, and have even thought about dual booting my laptop with Windows 7 and Windows Server 2008 for the Hyper-V Direct VHD boot option.  I have even considering installing Hyper-V on Provisioning Server for the Hyper-V Direct VHD boot option thanks to my friends over at The Generation V and their blog post Using Hyper-V for PVS vDisk Offline Maintenance.  Now with XenClient there is another option for maintenance on Provisioning Services images.

How to update Provisioning Services images using XenClient

  1. Create a new virtual machine on XenClient (Hard drive size doesn’t matter size disk will be deleted after virtual machine creation and select Create VM & Install OS later).
  2. Get the IP address of your XenClient machine.  To do this you can hit Ctrl+Shift+T to break out to the terminal on your XenClient machine and run ifconfig.
  3. SSH to your XenClient machine (login with the password set up during install) and change directory to /storage/disks to get the UUID of the virtual machine’s VHD  file you just created in step 1.  If you have more than one virtual machine on your XenClient machine you can also open the /config/vms/ *.db files and look for the virtual machine name and disk 1 values to get the VHD UUID.
  4. Make a copy of the vDisk image (.VHD and .PVP files) you want to update.
  5. Copy the vDisk image VHD file over to your XenClient machine (using a secure file transfer tool such as WinSCP) /storage/disks directory.
  6. Follow the instructions in Citrix Knowledgeable Article CTX127075 – Attempting to Use a Virtual Hard Disk on XenClient 1.0 Creating using XenConvert or from a Pre-Release XenClient System Fails with Error Code 199 or the XenClient virtual machine will not boot and you will get Error Code 199.  Rename the VHD using the same UUID.vhd file name from step 3.
  7. Boot the virtual machine in XenClient.
  8. Update the XenServer tools (Remove Provisioning Services Tools, install XenServer tools, and reboot) and then Provisioning Services Target Device software (Reboot after install).
  9. Check Provisioning Services Target Device NIC binding by running Program FilesCitrixProvisioning ServicesBindCfg.exe and then shut down the virtual machine.
  10. Copy the vDisk image VHD file back to your Provisioning Services vDisk store.
  11. Rename the vDisk image VHD file back to match the name of .PVP.
  12. Import the vDisk into the Provisioning Services console.
  13. Assign the vDisk image to a Target Device.
  14. Boot the Target Device and test to make sure everything is working fine.
  15. Assign to the remaining Target Devices and boot or reboot them to get the updated vDisk image.

I have tested this process with Windows XP, Windows 7, and Windows 2008 R2 images running on XenServer 5.6 when I upgraded from XenServer 5.6 to XenServer 5.6 FP1 and Provisioning Services 5.6 to Provisioning Services 5.6 SP1.

So now you have another option for updating Provisioning Services images.  If you have a desktop or laptop with XenClient installed, try out this process the next time you need to upgrade XenServer tools or Provisioning Services Target Device software.

If you have found this article interesting or if you have any other insights, please feel free to contact me via email.