Solving driver installation problems: Windows XP on VMware ESX

Installing Windows XP on VMware ESX can pose problems, because XP doesn't include an ESX Virtual Hard Disk controller driver. But you can avoid problems by installing the right driver.

Installing Windows XP as a VMware ESX guest OS isn't straightforward, and it takes additional steps to execute...

the task successfully. The first major caveat is that you need to have the VMware ESX Virtual Hard Disk (VHD) controller driver installed in order to install Windows XP – and it isn't packaged with Windows XP.

In this tip, I'll show you how to make a floppy image of the ESX VHD controller driver and how to use floppy images with a virtual machine's virtual floppy drive.

Installing Windows XP as a guest OS on VMware ESX

It's been a while since I have installed Windows XP OS on an ESX host, so when I went to install it, I forgot that the Windows XP installation CD does not have the required SCSI controller drivers for the SCSI controller types that ESX uses and therefore can't see the virtual disk assigned to a virtual machine (VM).

Click to enlarge

ESX has two SCSI controller types that you can use as VHDs: the LSI Logic controller and the BusLogic controller. ESX does not support using Integrated Drive Electronics (IDE) hard disks. ESX will default to using either of these two controllers depending on the guest OS type that you select when creating a new virtual machine (VM). In most cases, ESX will select the LSI Logic controller, which is preferred.

If you select Windows XP as your guest OS, ESX will default to the BusLogic controller, but you can choose the LSI Logic controller by choosing a Custom wizard type when creating a new VM. You can also change the controller type afterward by editing a VM's settings, selecting the SCSI controller and clicking the Change Type button. A word of caution: If you change the SCSI type after an OS is installed, the VM may blue-screen (crash) and fail to boot because the driver for the new controller type may not have been correctly installed.

Windows XP comes with only specific disk controller drivers built into the installation CD and includes neither the BusLogic nor the LSI Logic driver; but it allows you to install additional drivers as part of the installation routine. These drivers must be on a floppy drive because the CD-ROM drive is in use as part of the Windows XP installation.

To work around this, you can create a special floppy image file with the necessary drivers that can be connected to a VM's virtual floppy drive. This image file is similar to the ISO files that can be connected to virtual CD/DVD drives but is specific to floppy drives. The image file is a single file that contains multiple files and directories for virtual floppy drives. Several floppy image file types can be created, each with different extensions, but VMware supports only the .flp image files. Below is the process for creating an image file for a Windows XP installation.

  1. Even if you know that the virtual SCSI controller is a LSI Logic controller, you need to know which model of the controller it is (there are many). To identify the correct driver, load a system information application on a VM that has the LSI Logic virtual controller. Here we see that this SCSI controller is a LSI53C1020/1030 PCI-X controller.

    Click to enlarge

  2. I initially downloaded the driver file for the LSI53C1030 controller to my workstation. But when I tried to use this driver to install Windows XP, the controller still couldn't identify the hard disk. This problem was puzzling, because even the VMware documentation says to "Download the LSI 53C1030 drivers from the LSI website."

    After doing some research I discovered a KnowledgeBase article that instructs to use the driver for the LSI20320-R controller instead.

    Word to the wise: You cannot use the newer Windows XP driver 1.28.03 that is listed on the download page. Further down on the page, you'll see the driver you should use; the Windows Hardware Quality Labs (WHQL) version for Windows XP (LSI20320-R_xp_50700_01034132IT_1201800_1005239.zip).

    Click to enlarge

    Click to enlarge

  3. Once you have the correct driver, the next step is to create a floppy image so you can mount the image of the driver onto a VM's virtual floppy drive. To do so, I extracted the driver Zip file to a directory; inside of it was another Zip file (symmpi_wXP_1201800.ZIP) which I extracted into another directory. You can disregard the other files in the first Zip file as they are not needed.

    I then downloaded an application called WinImage to create the floppy image file. It's a Shareware application, but you can use it for 30 days to evaluate it. Once WinImage was installed, I ran it, selected File from the top menu and then New.

    WinImage supports 2.88 MB floppy images, but the VM virtual floppy drive is limited to 1.44 MB, so make sure you choose 1.44 MB instead of 2.88 MB.

    Click to enlarge

  4. Now we need to inject our driver files into the new image. I selected Image from the top menu, Inject a Folder, browsed to the folder containing my driver files and selected it.

    Click to enlarge

  5. Next, select File from the top menu, save, and specify a file name with an .flp extension. Select Virtual Floppy Image as the image and click Save. Your image file has been created.

    Click to enlarge

  6. You can either leave the newly created floppy image on your workstation or copy it to a data store on one of your hosts so anyone can use it.

    To map your VM's floppy drive to the image, edit the VM's settings, select the floppy drive, then select either the client device if the image is on your workstation or the host data store if your image is on a host data store.

    If you choose a host data store, you should wait until after the VM boots to select the image and connect it so the VM does not try and boot from the floppy drive.

    Click to enlarge

  7. Next, power on the VM. When the Windows XP installation screen displays the message to press F6 to install third-party drivers, press F6. You can now connect the VM's floppy drive to the image file. At the Specify Additional Devices screen, press the Connect Floppy 1 button (if you are using the client option), choose the Connect to Floppy Image option, and then browse to the floppy image on your workstation.

    If you are using a host data store for your floppy image instead, edit the settings of the VM, select the floppy drive, choose the Use Existing Floppy Image in Datastore option, click the Browse button to choose the image file and finally check the Connected option.

    Click to enlarge

  8. Now that the image is connected to your virtual floppy drive, you are ready to press S to specify an additional device. You will be prompted to insert a disk into Drive A. Since we just did this, press Enter.

    Click to enlarge

  9. The program will now search the disk for drivers. Once located, it will display them so you can select one for installation. Once you select it, you will be brought back to the Specify Additional Drivers screen and a message will state that it will load the driver and allow you to specify more or press Enter to continue the installation.

    Click to enlarge

  10. Once you press Enter, the Windows XP installation will proceed as it can now see the virtual disk because it has the correct driver.

    Click to enlarge

Using a BusLogic Controller

If you want to use the BusLogic controller with Windows XP instead, the process is the same; you simply create a floppy image with the BusLogic driver. Luckily VMware has this driver available for download from its website already in a floppy image file that you can download and use.

Now that you know how to create and use floppy images, you can easily install Windows XP as a guest OS on an ESX VM. While you may not use floppy images often, there are certain times when you may need to use them, especially if an application is programmed to read only from a floppy drive or if you have an application that is on physical floppy disks.

Eric Siebert is a 25-year IT veteran with experience in programming, networking, telecom and systems administration. He is a guru-status moderator on the VMware community VMTN forums and maintains VMware-land.com, a VI3 information site.

Dig Deeper on Troubleshooting VMware products