After going through the Direct VHD Boot process for HyperV which was a feature of PVS 5.1 the next question that came up was "Does it work with Xenserver?" and the answer that came back was "It technically should work but it is not officially supported yet." So we decided to do the next logical thing and give it a try.
( "New way to upgrade with PVS 5.1 and HyperV"
http://community.citrix.com/blogs/citrite/trevorm/2009/07/28/New+Way+to+Upgrade+with+PVS+5.1+and+HyperV )
The process works similar to HyperV but there are a few details to consider before using this feature with Xenserver.
First the XS storage repository being used needs to support VHD so that would include a NFS share or EXT2/3(Local SR, SAN, or ISCSI) SR partitions not LVM.
We will need the following items to get started:
-PVS 5.1 Server
-Xenserver 5.5 with a EXT or NFS Storage Repository
-Windows 7 RC PVS VHD image captured from a PC(in my case a wyse Rx0)
-SCP ssh client utility
1. First we will start by copying our win7 VHD file using SCP ssh utility from our PVS store to the Xenserver storage repository. In our case is a Local SR formatted with EXT3.

2. In XenCenter create a new VM from a template(vista or 2008) and make sure to choose the correct SR for the disk which is EXT or NFS. Uncheck the box to start automatically.

3. Rename the PVS VHD file we copied over with the same name as the one which was created by our VM. We can do this at the xenserver host console or in my case the SCP ssh utility console.
We should see a new VHD disk created for our new VM and the VHD we copied from the PVS server. For my SR the path is /var/run/sr-mount/"new uuid".vhd
4. Power on the virtual Machine. Windows 7 will boot up and start installing the default drivers for xenserver using plug n play. It will not find the new scsi device driver but you can ignore for now. Then when prompted to reboot choose to manually reboot later.
5. Before rebooting go to the command prompt and run bcdedit /set loadoptions "PV|=2000" to modify boot.ini and then reboot.
6. Uninstall PVS client from add remove programs then reboot.
7. Install the Xenserver 5.5. Tools and then reboot. It will finish adding the drivers at next boot up so I rebooted a second time. (may not be necessary)
8. Install the PVS 5.1 client but before rebooting (very important) You will be prompted to choose which NICs you want PVS to bind to. Choose all inactive and active nics. If you using a XP or 2003 image you might need to manually start "c:\program files\citrix\provisioning services\bindcfg.exe"
9. Next go to the command prompt and run bcdedit /deletevalue loadoptions then Shutdown.
10. Now we copy our updated VHD back to PVS.
11. Rename our VHD file to the appropriate name and then add back into the PVS console.
12. You now have a updated PVS VHD file which can be streamed to a physical server/PC, Xenserver host VM,
or directly booted in Xenserver.
**Eventhough this process seemed to work fine it is not yet officially supported and testing has been limited.
**To save time in updating pvs client or NIC software you could use NFS which will provide you the ability to present the NFS SR to the PVS server and Xenserver. Doing this would allow you to skip the steps of copying the VHD to and from the Xenserver SR.
**The use of Xenconvert as a method to move the VHD to and from the Xenserver in this process could be a great option but we are still testing that out for this process.
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.
For those who travel for business the need for offline access to your desktop has always been a requirement but with internet coverage growing .....Broadband WiFi, cellular data cards, and now even on commercial flights with Delta and other airlines offering en route satellite based internet service things are changing. Last week flying back to Atlanta I thought I would pony up the $9.95 and see how my vista xendesktop performed at 34,000 ft and 520kts. I was excited to find great usability and performance. Here is the recorded xendesktop session I posted below.
http://goview.com/?id=d7f6c237-1844-45da-9f04-aba5d9add98b
Streaming a Full OS to a ThinClient ... Step by Step
Provisioning Server(PVS) has been a amazing addition to the citrix "Dynamic Delivery Center" line up. It is a game changing technology that has a wide range of use cases.
So for those of you not familiar with PVS .... The brief of it is. We virtualize the Disk IO allowing you to host a full OS image in your data center and stream simultaneously to thousands of diskless Endpoints. (PCs, Servers, Thin clients, Virtual or physical) windows or linux
This is not another Altiris, SMS, or Ghost imaging solution. We do not stream the full image down to the endpoint we only send the blocks of information that the client requests into memory when they request them.
Common Use Cases-
1. PCs .. Distribute processing power out to the edge but still manage centrally with one image.
2. VDI .. Reduce storage 90%, dramatically reduce application and single image management.
3. Datacenter.. Web and Application Server Farms- One Image, Consistency, flexible and dynamic.
4. Thin Clients - Stream full OS to Thin Client- One image, no protocol limitations, central management.
So in this blog I want to address the specific use of streaming a full XP OS image to a Thin Client. There is usually a lot of confusion around this use case so hopefully we can clear it up some.
1. First thing we need to do is make sure the Thin Client we are going to stream to has the following. In the examples you will see the Wyse V90L and HP 57xx Platforms.
a. Hardware capacity to run the OS and application locally on device. CPU 800mhz+, 256mb+
b. Verify it has a standard IDE or EIDE interface that we can connect a hard drive to or if the
thinclient vendor has a Flash option that gives you at least 4GB of space that will work also.
c. Make sure you have the XP drivers for the hardware platform or if streaming linux
have the linux hardware drivers.
d. I am going to be using a Wyse V90 and a HP 5730 but as long as your TC can meet the above
requirements you should be able create a image successfully.
List of Required items:
-Laptop eide harddrive
-Eide hdd ribbon cable
-If using a 80 pin ide HHD you will most likely need a converter to 40 pin eide as seen here. I would use a 40 laptop drive if the TC has a 40pin IDE interface to avoid having to use a converter.
-Small Phillips screw driver
-External usb cd/dvd drive
-PVS 4.5/5.0 sp2 server running
Note *Microsoft XPe can be used but since every xpe image is custom for each manufacture you are never sure what you are going to get. Sometime you can just install the pvs client and run image builder and it works fine but if it is missing some core components you will be scratching your head wondering why things are not working.
2. Open up TC and identify IDE slot and remove eide flash card if one exists.
3. Connect EIDE hard drive
4. Connect the USB DVD/CD Drive to use to install OS

5. Insert XP CD, boot from CD and install the OS, add hardware drivers for platform.
You will need to get these from your TC vendor. If they have a xpe version of the hardware you should be able to copy them over from the xpe image.
6. Install PVS client software into the image
7. Add MAC address and Hostname of TC into the pvs console 
8. Right Click on client and choose properties> Set client to boot from HDD 
9. Right Click on Vdisk Pool >Create vDisk for our VHD image 
10. Right Click on Client >Properties>Vdisk Tab > Add the vdisk we just created in step 9

11. PXE or ISO boot thin client and run image builder to start creating image. 
12. You now should have a xp vdisk for you thin client. You can set the Vdisk to standard mode which enables you to stream this one vdisk to thousands of thinclients. So not much different from doing this with a PC or a Server but just make sure you have requirements in step 1 covered and you should be fine.
This is Part 3 of my blog regarding BDM we will go through setting up a HyperV virtual machine template to boot from ISO.
A few important things to note-
- Currently with PVS and HyperV we must use the Emulated(legacy) NIC for pvs to work. You do have the option of setting up a private virtual network for PVS and assigning the legacy NIC to this private network. Then you can assign your Virtual Machine a Synthetic NIC for all other traffic. For most situations using the legacy nic should provide you enough throughput for pvs (100Full)and normal operation but if not you can add the 2nd synthetic nic(1GB).
*Even though we are not using PXE boot it still requires PXE be enabled so UNDI gets loaded early in the boot process.
- If you have not read the previous parts to this blog and created your ISO I would look at this first.
http://community.citrix.com/blogs/citrite/trevorm/2009/02/25/Using+PVS+Boot+Device+Manger+with+XenDesktop+and+Xenserver \\
1. We will start by going into SVMM and add our legacy NIC.
a. Right Click on your XP Virtual Machine and choose Properties and then click on the Hardware Configuration Tab.
b. Click on Network Adapter>Emulated network Adapter as shown below. 
2. Now as you see below we have our Legacy NIC installed.

3. Now we set our XP Virtual Machine to boot from the ISO file(PVS bootstrap) See screen capture below.
Click on the Bus Configuration>Virtual DVD
Choose existing image file and browse to the ISO file. 
4. Under Hardware Properties>Hardware Profile>Bios ... Set your startup order so CD is first and PXE Boot is second as shown below.
*Even though we are not using PXE boot it still requires PXE be enabled so UNDI gets loaded early in the boot process. 
5. You now should be able to boot your Virtual Machine up and connect to your PVS vdisk with out PXE booting.
This is a continuation of my blog regarding Boot device manager but in this blog I will go through specifically using BDM in a Xendesktop/PVS with VMs hosted on Vmware ESX 3.X
1. The following instructions assume you have already created your ISO file with Bdm.exe ... if not see http://community.citrix.com/blogs/citrite/trevorm/2009/02/25/Using+PVS+Boot+Device+Manger+with+XenDesktop+and+Xenserver
2. We need to move the iso file to your ISO library on Virtual Center. You can use WinSCP to copy it over.
3. Modify our target Virtual Machine template settings to have it boot to the xdppvs.iso on startup 
4. Next we need to edit the bios of the Virtual Machine and move the dvd/cd object to the top of the boot list. See screenshot below on how to have VM automatically enter into the bios on next boot. 
5. Now we have our VM configured to boot from the ISO we created with BDM. For XenDesktop Setup Tool which is used to create multiple VMS very quickly we need to create a template.
6. We now will set the hard disk on the virtual machine to 1MB since we are using Provisioning Services(PVS) 
7. We have a Vmware Virtual Machine with a 1mb disk, set to boot from a DVD/cd ISO file and now we need to convert it to a template in virtual center. 
8. So now that we have a Template we can run the Xendesktop Setup Tool to create a pool of Virtual desktops in minutes and not eating up terabytes of storage. 
Note***
"When configuring the BIOS to work with the boot device (either USB or ISO
image), it is imperative that the NIC PXE option is enabled. The PXE boot option is
required in order for the NIC Option ROM to stay resident in memory during the
pre-boot process. This way, UNDI will be available to the boot device to properly
initialize the NIC. Otherwise, the API not found message would be displayed
by the boot device."
Boot device manager (bdm.exe) is a utility that has been around a while with Provisioning server but in the new release of PVS 5.0 sp1a major improvements have been made to allow you to have a great alternative to using PXE(Dhcp, tftp, Bootp, etc) to deliver the Bootstrap to Diskless client(Xenserver VMs, VmwareESX Vms, HyperV VMs , PCs, Servers, TCs). The bdm.exe utility allows you to burn the bootstrap to a USB, CD-ROM (ISO), and Hard Disk Partitions.
In this blog I will go through specifically using BDM in a Xendesktop/PVS with VMs hosted on Xenserver 5.0
1. From the Provisioning Server run C:\Program Files\Citrix\Provisioning Server\ BDM.exe
2. I usually set it to verbose mode initially.
3. You have the option to use a static IP address or use DHCP with this tool. In this use case we are creating a template in XS that we will be creating a POOL from using the xendesktop setup tool so I am using DHCP and then I am choosing the citrix ISO recorder.
4. Click Burn and Save ISO file locally. 
5. Move the iso file to your ISO share in Xen Center.
6. Now modify our target Virtual Machine template by going to the storage tab and selecting the ISO file that was created with BDM and copied to the ISO share configured for your Xenserver.
7. Next we need to edit the startup options on the Virtual Machine properties page and move the DVD/CD object to the top of the boot list. See screenshot below.
****
***** Make Sure to place Network second in the boot order.
8. We have a XenServer Virtual Machine with little or no disk assigned, set to boot from a DVD/CD ISO file and now we just right-click on the Virtual Machine and click 'convert to template' in XenCenter.
9. So now that we have a Template we can run the Xendesktop Setup Tool to create a pool of Virtual desktops in minutes and not use terabytes of storage.
In the next few weeks I will be posting a similar process for ESX and HYPERV
by the way if you havent heard Xenserver Enterprise is Free.