How to Update the Provisioning Services “Target Device Software” (PVS Agent) on a vDisk

I watched a webinar tonight about “Provisioning Services 6.0’s Coolest New Feature – vDisk Versioning” brought by Richard Nash. At the end of this great webinar (will post the link to the video and presentation when it comes available) Richard spent a few moments on how to update the drivers for the Provisioning Services target device.


So let’s say you want to upgrade the PVS Agent from 5.0 to 6.0. Well, you boot up a physical or virtual machine with the vDisk and then uninstall the PVS Agent. You freeze up or crash! It’s like sawing off the branch of the tree you’re sitting on!

So, how do you do it? There are several ways, but here’s one of the simplest, assuming you’re using XenServer. It does require that you have an NFS storage repository (SR). If you don’t have one, you can make one easily if you have Windows Server 2008 (both the earlier version and the R2 version) or Windows Server 2003 R2. For directions on how to do it with 2008, see the May 16, 2010 article about this here. Of course, you might also have access to a Linux machine on which you’ve installed an NFS share, or a NAS that uses NFS.

  1. Once you have an NFS share available to your XenServer, place the vDisk you wish to upgrade into Private Image mode.
  2. In XenCenter, create a new virtual machine using the Other install media template and name it UpdateVDisk or some other name that identifies what you are using it for. When you create it, give it the same number of virtual CPUs and the same amount of memory as the VMs on which you are using your vDisk (the one you want to upgrade). Create a new virtual hard disk of the default size but make sure you create it in the NFS SR. Uncheck the Start VM automatically check box and click Finish.
  3. In the NFS share that you are using for your NFS SR, you will see a folder named with a UUID that represents the SR itself. Inside that folder will be the new VHD file with a UUID for a name, ending with the .VHD extension. This is the empty virtual hard disk you just created, assigned to the UpdateVDisk virtual machine. Tip: Use the “Date created” property to help you find the right one.
  4. Copy the vDisk you want to update from the PVS store location into the NFS SR, but only copy the .vhd file. You don’t need the .pvp file.
  5. In the SR folder, rename the blank virtual hard disk (the one you identified in step 3) by adding an underscore on the end. Anything will work, but an underscore is a good way of visually telling a blank virtual disk from one that isn’t blank. For example: rename 195fb77d-48d2-47db-b138-4fd198b21f49.vhd to 195fb77d-48d2-47db-b138-4fd198b21f49.vhd_.
  6. Then, copy the UUID from the blank virtual hard disk, and use it to rename the vDisk to it. For example: rename Win7vDisk1.vhd to 195fb77d-48d2-47db-b138-4fd198b21f49.vhd.
  7. Now, boot up the virtual machine you made earlier, UpdateVDisk. It will start up using the non-blank VHD file which is now being supplied to it by XenServer, not by PVS. Now, in this virtual machine, you can uninstall the PVS Agent and then update any other things you wish to update. A restart will be required after uninstalling the old PVS Agent.
  8. Once everything you want to update is finished, install the new PVS Agent. Do not allow the Imaging Wizard to run after the installation, as it isn’t necessary. Reboot and make sure it starts with the new PVS Agent installed. Log in one last time, and then shut it down gracefully.
  9. Now copy the updated VHD file back into the PVS store location and rename it back to something useful. For example, rename it Win7vDisk2.vhd.
  10. In the PVS Console, use the Search for an Existing vDisk feature in the PVS store and the new vDisk will now be available to assign to the virtual machines you wish PVS to deliver it to. “

All kudos to Richard Nash off course Winking smile.

Here’s the link to his original post.

One thought on “How to Update the Provisioning Services “Target Device Software” (PVS Agent) on a vDisk”

  1. This is a fantastic way. Ive used it in the past. However, if you have client that does not have NFS…the only way to do it, is reverse imaging….which is clunky….

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.