Showing posts with label XP. Show all posts
Showing posts with label XP. Show all posts

23/11/2008

Using MDT and SCCM to do an unattended install of Windows XP on ESX Server (1 of 2)

This post describes how to add VMware ESX drivers for an "OS Install Package" (aka "an unattended install") of Windows XP using MDT and SCCM.

The important point to note is that MDT can now handle "injection" of Mass Storage Drivers on Windows XP (not just Vista)
(i.e. it writes the correct entries to unattend.txt to support use of a 3rd party Mass Storage drivers, creates and populates the requires driver structure for this to work during an unattended install).

IMHO this is a "big deal" and means it's well worth investing time in understanding the "vagaries" of MDT and SCCM as it really can simplify OS deployment (once you know how to use it!)

Prerequites / Assumptions

Overview of Steps

  • Import (VMWare) drivers into SCCM
  • Create a new (VMWare) driver package
  • Add these drivers to your WinPE Boot Image
  • Edit the Task Sequence and add an "Apply Driver Package" Task (referring to the VMWare drivers package).
  • Enable the checkbox "Select the mass storage driver within the package that needs to be installed before setup on Pre-Vista operating Systems"
    (NOTE - the last two steps are the crucial pieces which make the "magic" happen)

Import (VMWare) drivers
Within the Operating System Deployment node in SCCM.
Right click on Drivers and Select "Import"

Point to the location where you've placed the VMWare driver files.
In my case I've stored driver files below file://sccm/Source$/drivers/vmware\Source$\drivers\vmware
(below this I have 2 subdirectories - \vmscsi - with the disk files and \vmxnet with the network drivers - these were obtained using the process descrived here)

The driver files should appear as shown below:


Create a new (VMWare) driver package

I've called my driver package "VMWare ESX"

Now select this as the package you want to add drivers to

Add drivers to the WinPE Boot Image
Select a Windows PE boot image to update (mine is called "Windows PE Custom")

Ready to let SCCM do it's stuff...


Progress is shown while it's being created...

Done - the drivers were imported, added to a new Driver package and the WinPE boot image was updated.

This is what the drivers looks like within the "Drivers" node.
(tip: in order for these to show up with SCCM you may need to select "Refresh")


and here's the new Driver Package we created...


Now for the really important piece (which needs to be manually added)

Edit the Task Sequence and Add an "Apply Driver Package" task
To inject a mass storage driver for Windows XP during the unattended install routine, you need to Add an "Apply Driver Package" task (pointing to the newly created VMWare drivers package). This must be added before the "Setup Windows and ConfigMgr" task.
To do this :
  • Edit your OS deployment Task Sequence
  • Set focus on a task immediately before the "Setup Windows and ConfigMgr" task.
    (In the screenshot below you can see I've focussed on "Auto Apply Drivers")
  • Select Add -> Drivers -> "Apply Driver Package"


Browse to the Package with the Drivers (in my example "VMWare ESX")

Enable the "Select mass storage driver..." checkbox

IMPORTANT
Select the box which says "Select the mass storage driver within the package that needs to be installed before setup on Pre-Vista operating systems"
(This takes care of driver injection during the unattended phase)


I'll describe what actually happens during the unattended install process and show the modified contents of unattend.txt and associated driver strucure in Part 2 of this post.

How to get drivers for an unattended install of Windows XP on ESX Server

When performing an Unattended install of Windows XP on ESX server, you need to obtain disk and network drivers to integrate into the unattended install.

One way to do this is to extract the files from the VMWare Tools file.

More Details:

Attach windows.iso to a working virtual machine (or mount using an iso mount tool)

Disk

Disk drivers are located below:

\Program Files\VMware\VMware Tools\Drivers\scsi\win2k
disk.tag
txtsetup.oem
vmscsi.cat
vmscsi.inf
vmscsi.sys

Network

Network drivers are located below:

\Program Files\VMware\VMware Tools\Drivers\vmxnet\win2k\32bit
vmware-nic.cat
vmware-nic.inf
vmxnet.cat
vmxnet.inf
vmxnet.sys

For more details about the default hardware options set when the Guest Operating is set to "Microsoft Windows XP (32-bit)", refer to my earlier post "Windows XP on ESX Server - Hardware and Drivers"

Windows XP on ESX - Manually installing disk drivers

Within this post I describe how to install the VMSCSI (BusLogic) driver during a manual installation of Windows XP.

The steps are as follows:

  • Create a new virtual Machine
  • Specify Guest Operating System Type as "Microsoft Windows XP (32-bit)"
  • Edit Settings to attach a .iso with Windows XP on it
  • Power on the machine
  • Press F6 when you see the message in the screen below
    (Note : you don't recieve immediate "feedback" to let you know your key press has registered!)

  • If F6 has been pressed at the correct point, a few moments later, you'll get another screen allowing you to specify drivers
  • "S=Specify Additional Device". Press S.

  • Another screen appears prompting for the "Manufacturer-supplied hardware support disk"

  • At this point, Edit VM Settings and attach a floppy image with the VMSCSI drivers on it.
    (Typically you can locate this within the ESX datastore e.g. /vmimages/floppies/vmscsi-1.2.0.2.flp)
  • Make sure the status is set to "Connected"
  • Press ENTER to contine.
  • "VMWare SCSI Controller" should be shown, press ENTER to select

  • Another screen will appear showing the selected driver

  • Confirm it says "VMware SCSI Controller" and press ENTER to Continue

Job done! - the remainder of the Windows XP installation should continue as normal.

What happens if F6 is not pressed

If F6 was not pressed in time, you'll recieve a message saying "Setup did not find any hard drivers installed in your computer"

What happens if the wrong driver is specified

If the wrong driver is specified, you're likely to recieve a STOP 0x0000007B error indicating an Inaccessible Boot Device.

Windows XP on ESX Server - Hardware and Drivers

When "Microsoft Windows XP (32-bit)" is selected as the Guest Operating System on ESX server, the default hardware devices that get created are as follows:


From an OS install / deployment perspective, the most significant items are disk and network.

Windows XP dosn't ship with drivers for the BusLogic adapter, so drivers must be specified either during a manual install (F6) or integrated into an automated setup routine. I've described this process in seperate posts:

Hardware Details
For reference I've listed the hardware details and drivers that are used on Windows XP.

DISK:
Name : VMware SCSI Controller
Manufacturer : VMware, Inc.
PNP Device ID : PCI\VEN_104B&DEV_1040&SUBSYS_1040104B&REV_01\3&61AAA01&0&80
Driver : c:\windows\system32\drivers\vmscsi.sys

Network :
Name : VMware Accelerated AMD PCNet Adapter Adapter
Device ID : PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88
Driver c:\windows\system32\drivers\vmxnet.sys


Device Manager View
Once installed, this is what it looks like in Device Manager:

VMWare ESX Server, "Guest Operating System" and .vmx files

In ESX Server, the "Guest Operating System" must be specified when creating a virtual machine. This results in certain (virtual) hardware components being used.

Guest Operating System as shown by the GUI


Virtual Machine Hardware Properties
The screenshot below shows the Hardware properties applied after selecting "Microsoft Windows XP Professional (32-bit)" as the Operating System.


Virtual Machine Configuration File ".vmx"
Virtual Machine configuration details are stored as a file with a .vmx extension. These are simply text files with specific fields that define the virtual machine configuration.
Relevent entries for the configuration above are shown below: