Using the VMware PVSCSI adapter on a boot disk
Having put in the first of a number of new vSphere ESX 4 Update 1 hosts a colleague today set about building our new Windows 2008 R2 64 bit vCenter server. He later informed me that he was not able to boot the Windows 2008 virtual machine using the PVSCSI adapter (Paravirtualised SCSI)
I was absolutely positive I had read that this was now supported in Update 1. As it turns out it is, however its not quite as straight forward as just adding the PVSCSI adapter and installing windows. In fact windows will not recognise the boot disk as it has no native driver for the VMware PVSCSI adapter.
There are a couple of ways to get round this, the first involves creating your VM with a normal SCSI adapter that Windows 2008 does support and then installing Windows. Once the installation is complete add a second virtual disk with a second controller set up as PVSCSI and then install VMware tools. VMware tools will deploy the driver required for the PVSCSI adapter, once installed you can safely reconfigure the original SCSI controller to be PVSCSI and remove the secondary controller and virtual disk. Now when you reboot your machine you won’t be met with a blue screen of death, instead you will have a fully working Windows 2008 server using all the benefits of the PVSCSI adapter.
For full step by step instructions to complete the above process I recommend using Alan Renouf’s article. For those who prefer to use powershell scripting to make their changes, check out this fantastic script from LucD’s website which will do it all for you.
The above method is one way to get the PVSCSI adapter working on the boot drive but to be honest it’s a bit of a hassle to be doing this every time you deploy a Windows 2008 VM. So I had a look to see what was involved in obtaining the driver files for loading prior to installation.
First you need to extract the driver files from your vCenter server. You can find the relevant driver files located in the following directory.
C:\Program Files\VMware\VMware Tools\Drivers\pvscsi\
Take the 3 files contained within and make a floppy image, I used UltraISO for this particular task but something like WinImage works just as well. Now you need to boot your VM and once the windows installation files have loaded attach your floppy image.
As you can see in the screenshot below the Windows VM does not pick up the attached virtual disk due to the lack of native driver support.
Once you’ve pointed windows to the floppy image it picks up the VMware PVSCSI controller driver contained upon it. Click next to apply the driver.
Once the system has applied the driver you can see the virtual disk for your installation.
For those who are looking to add this driver or any other VMware tool driver into a Windows 2008 Pre-Installation environment, this VMware KB article on how to do it could be handy.