We recently attempted to install Windows Small Business Server 2003 onto
a rackmount computer that had a 3Ware
RAID controller not supported by the setup CD, and no CD-ROM or
floppy drive. This machine was housed in a data center 400 miles away,
and even with a USB floppy and CD-ROM drive, we were not able to get
the RAID controller's driver recognized by Windows, and we returned home
from our trek with no success whatsoever.
Frustrated by this, and intending not to make another wasted trip,
we purchased an identical RAID controller — a 3Ware 8006-2LP
— and studied the process from home. We ended up creating
a slipstreamed SBS2003 installation CD with the 3Ware
driver built in.
With the increasing number of machines being shipped without floppy
drives (and the popularity of cheap, high-performance RAID controllers),
we think that this problem is going to get worse before it gets better.
It took some amount of time to figure out all the issues involved,
but it worked the first time: wow! This Tech Tip describes our process.
Our example applies strictly to Windows Small Business Server 2003,
though we're fairly sure that it can be extrapolated to other modern
systems, such as XP or Server 2003. We list some resources these other
versions at the end of this Tip.
The usual Windows Server installation process
During the initial CD-based Windows Server 2003 installation, it allows
for pressing F6 very early in the process to request prompting
for a diskette containing any special drivers needed. This is mainly
used for disk controllers to allow Windows to talk to the hard drive.
It's unfortunate that the time window for pressing F6 is so short,
and offers no confirmation that it was indeed pressed. The installation
script scans the hardware and preloads many drivers, and eventually
prompts the user to insert a floppy disk into A:; it's supposed
to contain the third-party driver.
This process only reads from the A: drive — there
is no "Browse" option to pull a file from the hard drive, the CD,
or the network. It's gotta be the floppy.
If all goes well, the add-on driver is loaded into the running system
and used to access the hardware. One can tell that it's working by
the fact that it actually sees the hard drive and offers to repartition
and format it. Surprisingly (to us), a USB-based floppy drive worked
just as we'd have expected a motherboard-based drive to perform.
Some time later, after the hard drive has been formatted,
the setup program requires the diskette again to copy the
driver files while populating the new C:\WINDOWS\ tree,
but we found that the installer consistently refused to
recognize the same USB floppy drive in any way.
With no avenue for getting the driver onto the hard drive, the
machine is dead in the water: can't continue installation, and
starting over gets the same thing.
A bit of searching the web shows that others have had similar
issues, which suggests that it's not the same code which
accesses the floppy driver in each case (there have been
reports that HP brand USB floppy drives work, but we didn't dig
into this at all).
Faced with the option of (a) giving up on the RAID controller,
(b) opening the case to install a physical floppy
drive, or (c) building a custom installation CD that had the
proper driver built in.
We chose (c).
Building a Slipstreamed CD
Though it took us a while to figure out this process, it's been
a remarkably smooth one. We've run through this a couple
of times and it's been flawless.
-
Locate the custom drivers
-
They're usually found on a CD that shipped with the hardware or available
on the vendor's website, and they must be downloaded to the working
system. This is usually just a few .SYS or .DLL files,
along with at least one .INF file.
-
We extracted ours to D:\3Ware.
- Locate SBS2003 CD disc #1
-
Windows SBS2003 normally requires at least four CDs to install,
but only the first one will be customized with the slipstream
process.
-
Important: This process does not create new licenses - you
have to start with a legal copy in order to make a slipstreamed
version, and you can still only use the install sets only on systems
for which you have a valid license.
- Copy Disc #1 to the working system
-
On the working system, create a work area which will hold the
copy of the installation CD, and for our example we'll use
D:\SBS2003\. It requires just south of 700 megabytes of
space, though we'll probably need twice that if we're creating
an ISO image (though not necessarily on the same partition).
-
The copy can be done with cut-and-paste using Windows Explorer,
or from the command line with XCOPY: our CD-ROM is located
in drive R:, and /S copies subdirectories.
-
C:\> D:
D:\> cd \sbs2003
D:\sbs2003> XCOPY R:\ /S
-
Obtain nLite software
-
One does not just copy a few driver files onto the new image - there
are some setup files which must be modified to describe the driver
and make it available during setup. It's possible to do this by
hand, but it's very tedious and we've not found any directions.
-
We predict many wasted hours trying to figure it out by trial and error
(each one requiring the burning of CD), so we strongly recommend
using some helper software. Fortunately, we found some outstanding
software which serves this need exactly.
-
It's nLite, and it's not clear that
one could even wish for a better tool of this nature. Not only
will it trivialize the process of adding install-time driver support,
but it offers a host of other customization options, such as removing
unwanted components, tweaking settings, filling in required answers in
advance, integrating hotfixes or service packs, and a host of other
features required of those performing unattended installs.
-
Download and install the software just like any other Windows application.
It requires the .NET v2.0 Framework, but it's absolutely worth it.
We can't believe how great this tool was for us.
- Launch nLite
-
Running the program brings up a welcome screen, which should be clicked
through to bring up the business end of this program. There are several
steps, most of them optional, but almost all of them interesting.
-
-
Point to the SBS installation directory (D:\sbs2003).
-
Select "Add Drivers", plus perhaps "Unattended Setup"
and "Make ISO".
-
In Add Drivers: click Insert and navigate to the
directory that contains the .INF file for that driver.
Ours was D:\3ware.
-
In Unattended Setup, select whichever options are desired:
most can be left at default, but some may make installation
a bit easier. Most are self explanatory, and it's worth
wandering around a little to see what's available. However:
getting too aggressive could create an installer which is
actually counterproductive, making changes you have to
unwind later.
-
Label and Burn a CD with the new ISO image
-
The output from nLite is a .ISO file which is ready to be
recorded to a CD, but a separate application is required to do
so. XP's CD-recording features do not support burning a direct
ISO image, so a third-party application is required. We've used
Nero, though Roxio or other
programs of this sort work also.
-
A key aspect of a bootable CD is the boot sector, which
is the first block on the media. This is loaded by the BIOS to
kickstart the whole process, and nLite contains one which works
correctly: we haven't found the need to extract the existing
one from the official CD with a tool such as ISO Buster.
- Boot and Install!
-
If all goes well, booting the CD will start the installation
process, detect the hardware, and run smoothly without prompting
for any additional steps: it's as if the driver was built in
all along.
- Send a donation to the author of nLite
-
The nLite program saves an enormous amount of time in
this process, and it built ours correctly the first time.
It benefits everybody when useful software like this is
available, so it ought to be encouraged. There's a PayPal link
on the website.
-
Note: we have no connection with the folks behind nLite other
than being an exceptionally happy customer.
Is this legal?
We certainly believe so, but we'll note that
we are not
licensing experts.
As noted above, this does not create a
new license, and you can't use the created disc on more
systems than you have actual SBS rights to use. No part of this
process bypasses activation - it's not creating key-free installs.
You certainly can't distribute the installation
discs, but that's a general prohibition on redistributing
all Microsoft software whether you've modified it or
not.
OEMs may have a legitimate need to customize the setup discs
for their own hardware, but Microsoft has a separate System
Builder for creating shippable media. OEMs probably are
not allowed to use this process either.
Other Resources
Though these instructions solve one particular problem (installing
Windows with a customized driver disc), it's part of the much
larger area of slipstreaming in general. There are lots of other
reasons to create discs like this, such as incorporation of a service
pack, pre-customizing the installation environment (to avoid asking
so many questions), and for just tinkering around.
Here are some resources along these lines:
-
nLiteos.com —
the wonderful software which made this process so smooth.
-
ISO Buster —
excellent software for CD/DVD data recovery, including
grabbing the boot block from an existing CD.
-
Windows 2000/XP/2003 SP Slipstreaming — a useful
guide to slipstreaming a service pack instead of an install-time
driver: this will save a LOT of downloading from Windows Update
after an install (from fellow Microsoft MVP
Daniel Petri).
-
Slipstreaming Windows Service Packs — a good
tutorial which also uses nLite, including screenshots.
-
BartPE — an
outstanding tool for building bootable Windows CDs, including
maintenance-boot discs.
-
Microsoft's OEM System Builder
Site — Resources for OEMs who must actually distribute
customized installation CDs.
First published:
2006/07/11
(Blogged)