Thursday 19 February 2009

Dell Latitude E6400 - Unattended Installation SATA Driver

Performing an unattended installation of Windows XP Pro on the Dell Latitude E6400, with the ICH9M-E (aka iastor) Driver.

First off, a (very) brief overview of what I’m doing here. The client machine drive has a Windows boot/system partition created and formatted as FAT32. It’s then booted using a floppy or USB key onto the network, and from here an unattended script is run using WINNT.EXE.

The issue here is that the Dell Latitude E6400 uses a SATA chipset that has several features that can be switched on or off in the BIOS.  Specifically the options are either Disabled, SATA, AHCI, or IRRT.  These settings provide compatibility (SATA), native SATA (AHCI), or options for data protection and/or recovery (IRRT).  A standard unattended installation of XP will complete successfully in SATA mode, however additional drivers are required for AHCI or IRRT (Intel Rapid Restore Technology).

To successfully install the required mass storage driver we need to make some adjustments to the unattend.txt script, and the contents of the distribution share.

Modify your distribution share, specifically adding the $OEM$ subfolder to the i386 source. i.e. where XPPro\i386 is the source folder create the following…
  • XPPro\i386\$OEM$\TEXTMODE
  • XPPro\i386\$OEM$\$1\Drivers\E6400\Intel
In both folders add the driver files, which should be:
  • iaahci.cat
  • iaAHCI.inf
  • iastor.cat
  • iaStor.inf
  • IaStor.sys
  • TXTSETUP.OEM
For XP to pickup the driver a series of mods needs to be made to the UNATTEND.TXT file.

In the [Unattended] section ensure you have the following settings:
OEMPreInstall=Yes
OEMPnPDriversPath=Drivers\E6400\Intel

Create a [MassStorageDrivers] section with the following entry:
"Intel(R) ICH8M-E/ICH9M-E SATA RAID Controller" = "OEM"

Be aware that this must match exactly the specific driver entry in the TXTSETUP.OEM file. Also should this UNATTEND.TXT file be used with machines using a standard IDE interface add the following entry as well:

"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

Now add an [OEMBootFiles] section, which should list the files contained within the driver:
iaahci.cat
iaAHCI.inf
iastor.cat
iaStor.inf
IaStor.sys
TXTSETUP.OEM

This should result in a successful installation of the Intel driver.

Addendum: TXTSETUP.OEM – To ‘\’ or to ‘.’?

Microsoft Knowledgebase article 288344 instructs you to use a modification to the TXTSETUP.OEM file, removing the ‘\’ in the line:
disk1 = "Intel Matrix Storage Manager driver", iaStor.sys, \
…and replace it with a ‘.’, as in:
disk1 = "Intel Matrix Storage Manager driver", iaStor.sys, .
…when using FAT or FAT32, as indeed I am.

However I have found this not to be necessary with this driver. Making this change resulted in the following error:
File \$WIN_NT$.~BT\$OEM$\.\iaStor.sys could not be loaded.

References:
How to create an unattended installation of third-party mass storage drivers in Windows 2000
http://support.microsoft.com/kb/288344/en-us

Dell Intel Matrix Driver
ftp://ftp.us.dell.com/SATA/Intel_Matrix-Storage-Manager_A05_R207268.exe



Thursday 29 January 2009

VMWare Server 2.0 Boots Too Fast?

Like many people, I do a lot of systems testing using virtual machines. One of the more frustrating features of the web based VMWare Server 2.0 is the separation between the machine console, and the administrative interface.

With this separation I find there's a notable delay in starting the virtual machine, and being able to access the console. As a result I will alway miss the opportunity to hit F12 for a one off option to choose my boot device.

Thankfully a tweak to the virtual machines VMX file can help.

bios.bootDelay = "nnnn"

Where nnnn specifies a BIOS boot delay in milliseconds.
So bios.bootDelay = "6000" should give you six extra seconds to get that console open and hit F12!

bios.forceSetupOnce = "True"

This is a little less useful in my way of thinking. Adding this entry to the VMX file forces the next reboot into the BIOS.

As with all VMX file tweaks make sure the virtual machine is shutdown first! Also you may need to restart VMWare services to pick up this change.