Windows Server 2003 R2 32-bit setup error when specifying additional storage drivers:
Windows Server 2003 R2 32-bit setup error when specifying additional storage drivers:
It seemed like a simple enough task – Install Windows Server 2003 R2 Standard x64 on a Dell PowerEdge 2950 x64 server that is about a year old. The server contains three 500GB SATA drives plugged into an internal PERC 5/i SAS RAID controller. The server also lacked an internal floppy drive, and there was no available slot to add one.
The problem started out being that the Windows installer didn’t see the system’s hard drives during the setup process.
This is a common problem, especially with newer RAID controllers. Normally you can load the manufacturer’s drivers during the Windows setup by pressing F6 – S to specify mass storage drivers once the blue installation screen appears. I had to search long and hard to find the Dell Windows Server 2003 64-bit drivers for the PERC 5/i because for some reason when you enter your server’s system tag and search for SAS RAID drivers only the 32-bit version is available for download.
I added the 64-bit RAID controller drivers to my floppy disk, but when I pressed F6 – S to specify new drivers, Windows did not detect the presence of my USB floppy drive, which I had plugged into the USB ports on the front of the server. I rebooted the server with the drive into plugged into a USB port on the back of the server, but had the same result.
Next I tried copying the drivers to my USB flash drive, which I tried in the ports on both the front and the back of the server, and the installation program failed to see that drive as well.
I searched support.dell.com for a solution, and of course I didn’t find one. I did find a link to the Dell USB Key F6 Driver Utility, which allows you to copy mass storage drivers to a USB flash drive and have them recognized by Windows during an installation. This sounded like exactly what I needed.
I downloaded the USB utility, and when I executed it I was informed this program would format my flash drive, which would obviously delete everything I had saved to it. I went and found a different drive that I didn’t care if it’s contents were deleted, and ran the program. It took about three seconds to run, and I went back to my server and ran the Windows 2003 setup again – and once again the installer did not recognize my flash drive. I tried to view the contents of the flash drive on a Windows XP computer, but I was informed the flash drive was not formatted. Obviously, I had done something wrong.
After reading the USB utility’s readme file, I found I had missed some very important details. Information from the USB utility’s readme file are highlighted in red.
1. One of the files in the driver package is TXTSETUP.OEM. Edit
TXTSETUP.OEM with NOTEPAD (or a text editor of your choice). In the
[Defaults] section locate the line that starts with “scsi = “. The
value on the right hand side of the equals sign must represent the
Windows Server 2003 mass storage driver.
The values permitted on the right hand side of the equals sign are defined in the [scsi] section.
If the value on the right hand side represents the Windows 2000 mass storage driver, it must be updated.
The following table lists the drivers that are available for download for 9G servers. The table
indicates whether the TXTSETUP.OEM file needs to be updated at the time this document was written (Oct 24, 2006).
Dell SAS 5/E Adapter No change needed
Dell SAS 5/i Integrated No change needed
Dell PERC 5/E Adapter Must be changed
Dell PERC 5/i Integrated Must be changed
Adaptec 39320A Controller No change needed
LSI Logic CERC ATA 100 Must be changed
LSI Logic PERC 4/DC Must be changed
LSI Logic PERC 4/Di Must be changed
LSI Logic PERC 4/SC Must be changed
LSI Logic PERC 4e/DC Must be changed
LSI Logic PERC 4e/Di Must be changed
LSI Logic PERC 4e/Si Must be changed
LSI Logic PERC3/DC Must be changed
LSI Logic PERC3/DCL Must be changed
LSI Logic PERC3/QC Must be changed
LSI Logic PERC3/SC Must be changed
I had the Dell PERC 5/i Integrated controller, so I had to modify TXTSETUP.OEM for the flash utility to operate properly.In the TXTSETUP.OEM file’s [Defaults] section I had to change the line that starts with “scsi = PERC_32” to “scsi = PERCsas”, where percsas.sys was the name of my 64-bit RAID controller driver.
2. Local administrator rights are required to create a bootable flash
drive from the USBKeyPrepF6 Utility. Flash drives up to 16 GB in size
are supported. After the USB key is prepared by the USBKeyPrepF6
Utility, the USB key’s contents are not accessible from Windows. If
the USB key is plugged into a system running the Windows operating
system, Windows may report that the USB key has an unrecognized file
system or that it is uninitialized. However the USB key’s contents may
be accessed from DOS, by using floppy emulation.
That pretty much explained why I couldn’t read the drive’s contents from my XP machine.
3. Windows 2003 installation instructions:
Place the USB key into a USB port of the system on which you are
installing Windows Server 2003. Insert the Windows CD into the CD
drive. Reboot the system. During boot press F2 to enter the BIOS setup
If your system has a Dell Remote Access Controller 5 (DRAC 5) then also press Ctrl-E, when prompted, to enter Remote Access Setup, also known as the Remote Access Configuration Utility.
My server has a Dell Remote Access Controller 5, so I had to press Ctrl-E to access the DRAC configuration.
Within the Remote Access Configuration Utility, select Virtual Media
Configuration. Select Virtual Media and select Detached. Select
Virtual Flash and select Disabled. Save these changes and exit the
Remote Access Configuration Utility.
I changed the Virtual Flash setting from Attached to Detached. Virtual Flash was already disabled, so I saved the changes and exited the Remote Access Configuration Utility.
Within the BIOS setup utility, select USB Flash Drive Emulation Type.
On this menu select Floppy emulation for the USB key. Save this change
and exit the BIOS setup utility.
I entered the server’s BIOS and changed Drive Emulation Type from Auto to Floppy Emulation. I saved my settings and exited the BIOS setup utility and rebooted with my flash drive inserted into one of the front USB ports. I booted from the Windows Server 2003 CD, pressed F6 – S to specify an additional mass storage driver, and the setup program found the PERC drivers on the USB drive! Finally, my installation could progress!
My elation was short lived, though. When I got to the part of the installation where I could specify the boot partition size, the maximum size Windows would allow me to use was 957 MB (yes, that’s megabytes, not gigabytes).
I rebooted again and pressed Ctrl-R to enter the PERC controller configuration utility and confirmed my RAID 5 array was indeed 950 GB (as in gigabytes). Just to make sure nothing was corrupted on my array I began the array verification process and left the site for the evening. Of course I would find out later the array was just fine.
The next day I emailed Dell tech support and explained how the Windows installation program would only allow me to create a partition of 957 MB. The tech who responded to me suggested that I download the Dell Installation and Server Management Disk and boot from the .iso it creates to configure the RAID array and perform the Windows installation.
I downloaded and burned the .iso image, then booted the server from the CD. I chose to install a Windows 2003 x64 server, filled in all the field the Server Assistant required, and was finally able to successfully install Windows onto a partition much greater than 957 MB in size!
In hindsight I may have been able to just slipstream the controller drivers along with Service Pack 2 into the Windows 2003 x64 Server source files, but I’m thinking that probably would have only seen the drive array as 957 MB in size as well.
I try to be a responsible security professional, and practice what I preach. I know it’s important to keep operating systems and applications updated with security patches, so I have Microsoft’s Automatic Update configured on my home Vista PC to install automatically. I tell my friends to do this, since I don’t want them to get 0wned. I have my mom’s PC set for AU since I don’t have the time to deal with her computer gremlins that are a result of her unsafe surfing.
What did this bring me? A Vista Business 64-bit machine with no network connectivity. Of course it happens when I’m late for a client appointment and I need the machine so I can print out a Google map to the site. To top it off, it snowed six inches last night, and I know the roads are going to suck.
I rebooted my machine, logged in normally, and still had no network connection. I tried to release and renew my IP, but was told the network adapter was not connected.
Begrudgingly, I fired up Event Viewer and found a number of entries for Event 4375:
Windows Servicing failed to complete the process of setting package KB938371_40 (Update) into Staging(Staging) state
and Event 4385:
Windows Servicing failed to complete the process of changing update 942831-1_RTM_neutral_LDR from package KB942831(Security Update) into Staging(Staging) state
KB 938371 explains the patch contains updates to several internal components that Windows Vista requires in order to install or to remove Windows Vista Service Pack 1 more reliably. This update must be applied separately before you install Windows Vista SP1 to make sure that Windows Vista SP1 can be installed or removed from the computer. Update 938371 is necessary to install and to remove Windows Vista SP1 on all versions of Windows Vista.
Great. Looks like I won’t have to worry about Vista SP1 breaking anything on my machine, since it won’t be getting installed!
KB 942831 ended up being a fix for MS08-005, Vulnerability in Internet Information Services that could allow elevation of privileges. Microsoft considers this an important, not critical fix, so I decided I could disregard this error for the time-being. I pretty satisfied these Automatic Updates were not the root cause of my networking issues.
The final error I found was Event 1060:
\SystemRoot\SysWow64\Drivers\GEARAspiWDM.sys has been blocked from loading due to incompatibility with this system. Please contact your software vendor for a compatible version of the driver.
I searched my system for this file, and found it located in the F:\Windows\System32 directory, which is not my operating system’s boot drive – Its an almost dead hard drive that used to run my 32-bit Windows XP machine. I’ve been trying to resurrect data off it, and had mounted it in an external USB caddy.
Interestingly enough, I’ve had this old 32-bit XP drive plugged into my Vista 64-bit system for over two months, and have never seen the Event 1060 error. I’m wondering if these two failed Microsoft updates have anything to do with it. On a whim, I renamed the GEARAspiWDM.sys file to GEARAspiWDM.sys.old and rebooted, and got my network connection back.
I did notice GEAR posted updated 64-bit drivers two weeks ago, so maybe I’ll try to install them. I also found the GEAR driver is a part of iTunes, which was not previously supported on 64-bit Vista (who knew?) If updating the drivers and/or iTunes doesn’t fix my problem I may uninstall both, then manually clear up all the GEAR registry entries, then start with fresh installs of both.
My suspicion is something new with the XP 32-bit GEARAspiWDM.sys messed with Vista’s 64-bit driver signing system, which threw the network card offline. I’ll do some more investigation tonight and post an update if I find anything.
On a semi-related note, the GEAR wiki states:
There appears to be an incompatibility between older versions of the GEAR Software drivers and the Intel Application Accelerator with certain combinations of Intel chipsets and operating systems.
To determine which Intel chipset is being used on the motherboard, download the Intel Chipset Identification Utility from Intel’s website.
To date the problem has been detected on systems with the following combinations of chipsets and operating systems:
– Intel 815E chipset and Windows 2000
– Intel 845E chipset and Windows 2000
– Intel 850 chipset and Windows 2000
– Intel 860 chipset and Windows 2000
This issue can be corrected by completing either of the following:
1) Download and install the latest GEAR driver set.
2) Uninstall the Intel Application Accelerator.
I’m using an AMD CPU so this isn’t my issue, but hopefully it will help someone with a similar problem.
A security feature of Windows Vista 64 bit version is that unsigned drivers will not load. I’m all for increased security, until I run across a piece of hardware that does not have signed drivers.
It was easy to disable driver signing before two updates were released. From an elevated command prompt I ran
bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS
and rebooted, and I was able to load the unsigned drivers with no problem.
But that was before KB932596 and KB938979 were released. These two patches broke the bcdedit command listed above. Sure, I could still access the Advanced Boot Options menu by pressing F8 during the boot process and selecting Disable Driver Signature Enforcement, but that just disables driver signing for the current boot only.
I was looking for a permanent solution and came across this guide that explains the bcdedit command will work if if you uninstall the patches from KB932596 and KB938979. You can also use VBCDEDIT to edit Vista’s boot options, which are normally set using the bcdedit command.
Bcdedit /set nointegritychecks ON
E-M@iLinAtoR commented that Windows6.0-KB941649-v2-x64 also needs to be uninstalled.
If all else fails, try Mark’s technique for creating your own driver signing certificate and signing the driver or application yourself. Thanks to Claus for the link.