Saturday, June 12, 2010

Extracting VMware ESXi pvscsi boot floppy images


When VMware released ESX(i) 4.0 U1, they officially supported booting your OS drive from a paravirtual SCSI controller. Prior to U1 you could only use one of their other SCSI controllers such as BusLogic. However, when you try and install Windows with a PVSCSI controller it will not detect any mass storage devices since it doesn't have the drivers. But where do you find the drivers?

I exclusively use ESXi so there are a few extra steps required to find the VMware boot floppies. Instead of installing ESX on a host to extract the tools, I found a better way for ESXi users that only takes a few minutes and doesn't require using ESX.

Note that the PVSCSI drivers in ESX 4.0 Update 2 (U2) are the same as the ones in U1, so you don't need to get new floppy images when you build VMware vSphere Update 2 VMs. The boot floppies work equally well on ESX.

1. Go to the VMware patch download page, select ESXi, then click on the search button.



2. vSphere 4.0 Update 2 was just released a few days ago, so I downloaded the upgrade-from-esxi4.0-4.0_update02 zip. You should be able to download any update that includes vmware tools.

3. Download 7Zip, if you don't already have it and install it.

4. Using 7Zip open the zip archive and navigate deep into the archive tree to this path:

upgrade-from-esxi4.0-4.0_update02.zip\embeddedEsx\4.0.0\ESXi-4.0.0-update02\vmware-esx-tools-light-4.0.0-2.17.261974.i386.vib\data.tar.gz\data.tar\.\4.0.0\floppies\

5. Extract all three floppy images (pvscsi_1.0.0.5-signed-Windows2008.flp, etc.) to a folder on your computer.



6. Using the vSphere client you can now attach these floppy images to a VM and Windows can use them during the installation process. You could also copy the floppy images to a VMFS datastore and mount them from there.

Now you can easily extract the PVSCSI controller floppy images from any ESXi patch bundle that includes updated VMware tools and use them to build Windows VMs. If you want more information on support and limitations of the PVSCSI controller type, check out this VMware KB article. For some performance data on PVSCSI controllers, check out this VMware technical paper.

Update: For vSphere 4.1, download the ESXi upgrade bundle then go to the following path using 7ZIP:
upgrade-from-ESXi4.0-to-4.1.0-0.0.260247-release.zip\vmware-esx-tools-light-4.1.0-0.0.260247.i386.vib\data.tar.gz\data.tar\.\4.1.0\floppies\

Update 2: If you want to directly integrate the drivers into your Windows 7 or Server 2008 R2 ISO image so you don't need to mount a virtual floppy during installtion, check out my blog post here.

Update 3: For people wanting to use ESXi 4.1 U1, grab the upgrade package (update-from-ESXi4.1_update01.zip) then use 7ZIP to navigate to: embeddedEsx\4.1.0\ESXi-4.1.0-update01\vmware-esx-tools-light-4.1.0-1.4.348481.i386.vib\data.tar.gz\data.tar\.\4.1.0\floppies\. These floppy images have a datestamp of 1/12/2011.

9 comments:

  1. Derek,

    Good piece and thank you.

    Was with the program until "6. Using the vSphere client" which presents a catch 22 because I (and I imagine others) are working with update 2 to regain access using vSphere.

    As I understand it, recent Microsoft updates busted the vSphere client and so we are obligated to apply the ESXi update 2 so we can download a new version of vSphere to our desktops to get up and running again.

    May I trouble you to say whether there is an independent patch that will recover vSphere from the recent Microsoft updates?

    Thanks so much; keep up the good work.

    ReplyDelete
  2. I'm not aware of any patch to restore the functionality of the vSphere client. My suggestion would be to install ESX(i) in a VM or a workstation so you can download the new client binary. Once you have the new client you can install it on any required machines to access your existing vSphere hosts.

    ReplyDelete
  3. Thank you, you are fantastic!
    I was able to get the floppies and use them for a Windows Server 2008 R2 install on ESXi 4.1.

    Thanks again!

    As for VMware...well i will keep my language down and say they can use a lot of improvement in this area!

    ReplyDelete
  4. Hi

    Even after extracting the FLP file, assigning it to a floppy and looking into that floppy during the installation - Mr. Microsoft wasn't satisfied and I was stuck.

    The simple, time efficient solution is:
    * Install a regular disk
    * Install Windows 2008 on it, and then shutdown.
    * Add a second HD, this time with PVSCSI (create new HD, then change SCSI adaptor type to PV)
    * Load Windows, shutdown
    * Remove the second HD
    * Change the first controller to PVSCSI.

    Overhead is maybe 10 minutes, compared with the above procedure (which ends up short anyway)

    ReplyDelete
  5. YaronR: The floppy images work just fine. Possibly you were overlooking a step that caused Windows not to see the floppy drives. For instance, you may have disabled floppy access in the VM's BIOS, or possibly the virtual floppy drive wasn't marked to be attached at VM power on time. VMware made the floppy images and they work like a charm, so I'd double check your configuration.

    ReplyDelete
  6. I found this in the leaked release notes for 4.1 U1. I never tried the 2003 floppy, so I guess it was broke.
    --
    PR 574678: txtsetup.oem file on floppy disk points to incorrect location of PVSCSI driver
    Installation of Microsoft Windows Server 2003 guest operating systems on ESX 4.1 hosts with VMware Paravirtual SCSI (PVSCSI) driver as the boot drive fails with the following error:
    Insert the disk labeled:
    VMware PVSCSI Controller Disk
    into drive A:
    The txtsetup.oem file on a floppy disk points to the incorrect location of the PVSCSI driver. In this release, the location is corrected.

    ReplyDelete
  7. fantastic thanks very much, worked a treat for me too. much love !

    ReplyDelete
  8. SSH to ESXi host
    mkdir /vmfs/volumes//floppies
    cp /vmimages/floppies/* /vmfs/volumes//floppies/

    ReplyDelete