Injecting drivers to your PVS image

Ok… so if you been working with XenApp for a while, well you know that PVS is an awesome way of distributing virtual apps to internal/external users.

I am proud to have worked in a very complex and demanding PVS environment where I learned a ton from.  To give you some history, we started with an ESX 3.5 XenApp environment and decided to go with PVS images as we were hosting over 400 XenApp apps.  Because of the success and demand for Apps, we decided to go physical rather than virtual in order to get more users per XenApp server. (I did try XenServer but it just did not compare to a physical server)

One of the best messaging engineers I had the pleasure of working with injected in my brain that I should always consider running a hybrid virtualization environment, meaning utilize virtualization as much as you can, but always think what would happen if your visualization layer goes down (Thank you Mike).  For a company where XenApp was the ONLY way of working remotely, and very crucial business units ONLY utilized XenApp for their everyday work, downtime was not an option.

Well with that thought in mind… How the hell can we make virtual XenApp VMs boot up on physical servers?  Let me tell you that this process can be tedious.

Now the article below assumes you already have a PVS image.  If your process includes updating the PVS device software taget.  Please read this good article from Citrix first.

Lets get started

1 ) Boot existing VM in standard mode with image that will be updated

2) Add drive to VM (this can be done while VM is powered on).  Drive must be larger than the used capacity of the vdisk to be imaged.  Below is a sample screenshot of a new F: added to the VM


3) Run BNImage.exe from C:\Program Files\Citrix\Provisioning Server.  Select new drive as destination for image


4) When imaging completes, set partition as active in device manager.  Shutdown VM.

5) Set Machine to boot from hard drive on provisioning server

6) Change order of disks on VM so new drive is SCSI 0: 0.  Cache Drive should be SCSI 0: 1

7) Boot machine from local disk

8) Add SCSI drivers to image for target device (not necessary for G6 – G7 since the SCSI controller is the same)

9) Remove current version of provisioning server software.

10) Upgrade VMWare tools to latest version

11) Remove VMware Tools, VMWare user process, SunJavaUpdateSched from windows run key (HKLM\Software\Microsoft\windows\currentversion\run)

11) Upgrade VM to hardware version 7 (this requires shutting down VM). Right click on the VM in the VI client for this option.

13) While VM is shutdown, Change NIC for VM to VMXNet3.  Update provisioning server with new MAC address

14) While VM is shutdown, Temporarily add additional disk to VM on SCSI bus 1:xx.  This will add an additional SCSI controller.  Select LSI SAS.

15) Power back on virtual machine.  VMXnet3 will be detected, and LSI SAS controller.  Add drivers for LSI SAS controller. –

16)  Shutdown VM and remove temporary drive on SCSI bus 1:00.  Change first SCSI controller to LSI SAS.

17) Boot VM with Acronis CD – [CTXStore_UnProtected_01] AcronisBootCD.iso.  Create Acronis image of VM on Network location

18) Boot target physical machine with Acronis CD.  Copy image created from VM to local drive on server.

19) Set physical machine to PXE boot from provisioning server.  Set machine to boot from hard drive on provisioning server.  Attach blank PVS VHD disk to machine that image can be copied to.

20) Boot physical machine into OS on local drive.  Machine will hang for a few minutes on the login screen while drivers are loaded in the background.  If the machine is not yet accepting keyboard input just wait a few minutes.  Once drivers are finished loading, login.

21) Install Provisioning server target device software (5.6 SP2).   PVS_Device.exe

Once installed new PVS volume should show up right away without reboot (as long as the server was PXE booted).

22) Run Bindcfg.exe from C:\Program Files\Citrix\Provisioning Services\.  Select additional NICs to bind PVS to.

23) Verify registry keys in Citrix KB article after PVS target reinstall –

22) Run BNImage.exe software to image local disk to provisioning server drive.

23) Switch server to boot from vdisk, confirm server boots correctly from vdisk


About CyberRuiz
Highly motivated with over 12 years experience on Citrix/VMWare/Microsoft/technologies. Exceptional communication skills and team player. CCIA – Citrix Certified Integration Architect. CCEA – Citrix Certified Enterprise Administrator. VCP – VMWare Certified Professional in ESX 2.x, VI3, VI4 MCSE – Microsoft Certified Systems Engineer

One Response to Injecting drivers to your PVS image

  1. Javier says:

    Great guide… let me add this article “Target Device Stops Responding at Windows Splash Screen” I had to deal with this on a few ocassions.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: