Step 1: Collect the necessary files
Before getting started, we’ll need to download the full, stand-alone installation of Service Pack 2 (as opposed to performing a web-based upgrade). Go to download.microsoft.com and look under the Windows XP section or simply run Windows Update from Internet Explorer.
While you’re at it, grab the latest drivers for your RAID or Serial ATA controller. If you add them to your install CD, you won’t need to use an old-fashioned floppy drive to install Windows. For an add-in RAID or SATA card, look for the drivers on the web site of your controller chip’s manufacture. Some of the most popular controllers are made by Promise, Intel, Adaptec, and HighPoint. If your controller is integrated onto your motherboard, hit up your mobo manufacturer’s web site.
You can roll your RAID drivers into your XP install disc by slipstreaming!
Step 2: Update your setup files
Our next objective is to extract Service Pack 2 to a folder so we can update our existing Windows setup files. Open the command prompt by clicking Start, Run, and typing cmd.exe. Use the cd (change directory) command to navigate to the folder where you just saved the SP2 executable in the previous step. (The syntax for cd is cd <path>, so if you saved the SP2 executable to, say, C:\Downloads, you would type cd C:\Downloads to go there.) Extract the SP2 files by typing xpSP2 –x, where xpSP2 is the name of the SP2 executable you downloaded. When prompted for a destination to extract the files to, enter C:\xpSP2.
Once the files have been extracted, insert your Windows XP setup CD into an optical drive and copy its entire contents to a different folder on your hard drive. For the sake of simplicity, use C:\xpsetupcd as the folder. Now, return to the command prompt and type the following command: C:\xpSP2\i386\update\update /s:C:\xpsetupcd. This will update your existing Windows setup files with the new code contained in Service Pack 2. A message box will pop up to notify you when the process is complete.
Service Pack 2's built-in updater makes it easy to patch y our original Windows setup files with Microsoft's latest code.
Step 3: Add your RAID/SATA Drivers
We’re now ready to add RAID/SATA controller drivers to our CD (if you don’t want to do this, skip ahead to the final step). Open the folder to which you copied your Windows XP CD (C:\xpsetupcd) and create a subfolder called $OEM$. Then, create a subfolder of $OEM$ called $1 and a subfolder of $1 called drivers. The resulting path should be C:\xpsetupcd\$OEM$\$1\drivers. This is where Windows Setup will look for drivers that aren’t contained in its standard driver library. For organizational purposes, make a subfolder within drivers named for the type of driver it will contain—for instance, create a RAID folder for RAID drivers or an SATA folder for Serial ATA drivers. You can use any name, as long as it has fewer than eight characters.
With the aforementioned folder structure in place, copy the Windows XP RAID/SATA drivers directly into the folder you created above (we used C:\xpsetupcd\$OEM$\$1\drivers\RAID). If your drivers came in a self-extracting executable rather than a zip file, you may be able to extract its contents manually by opening it in a program like WinRAR. (Alternately, you can run the self-extracting executable, then dig around in your system’s TEMP directory—usually C:/documents and settings/YourUsername/LocalSettings/Temp until you find the right directory). Finally, locate the SYS file for your RAID/SATA controller from among the files you just extracted; it should be named after your specific controller (e.g. fasttx2k.sys for a Promise FastTrak TX2 RAID controller). The drivers for different operating systems may be split into distinct folders, so make sure you find the SYS file that’s intended for Windows XP. Once you find the SYS file, copy it to the i386 folder of your Windows CD (C:\xpsetupcd\i386).
Adding RAID or Serial ATA drivers to your Windows CD will save you the trouble of using a floppy disc to manually install them every time you reformat.
Step 4 – Introduce Windows to your drivers
Now that we’ve added our RAID/SATA driver files to the mix, we need to tell Windows Setup about the existence of these drivers and how to use them. But unless you happen to have this information memorized—and if you do, this might be a good time to turn off your computer and spend some time in the real world—you’ll need to look it up in your driver’s INF file. This file is usually found in the same place as the SYS file you located in the previous step and will probably have the same name, albeit with an INF extension. Open the INF file in Notepad and copy the PCI identifier string, which is a series of characters beginning with PCI\VEN—for instance, PCI\VEN_105A&DEV_3376. There may be other text on the same line as the identifier string; if this is the case, start at the first occurrence of PCI\VEN and copy the text up to but not including the last period (or the end of the line, whichever comes first).
Next, open TXTSETUP.SIF (situated in C:\xpsetupcd\i386) and paste your PCI identifier string under the [HardwareIdsDatabase] section of that file. At the end of the string, add an equal-sign followed by the driver name in quotes. In the case of our Promise RAID controller, the resulting line is: PCI\VEN_105A&DEV_3376 = “fasttx2k”. Note: If your driver’s INF file contains multiple PCI identifier strings, copy all of them into TXTSETUP.SIF.
Now scroll down to the [SourceDisksFiles] section of TXTSETUP.SIF and add the following text:
driver_filename.sys = 1,,,,,,_x,4,1
where driver_filename.sys is the name of your RAID /SATA driver’s SYS file. Note that you should include the .sys here. Then, under the [SCSI.Load] section, enter:
driver_filename = driver_filename.sys,4
Once again, driver_filename is the name of your driver’s SYS file. Note the lack of a .sys suffix on the left side of the equal-sign.
Finally, in the [SCSI] section of the file, add the following:
driver_filename = "RAID/SATA Device Name"
You can enter whatever you want for “RAID/SATA Device Name,” but we recommend using a meaningful description (such as the name of your RAID/SATA controller). Finally, save and close TXTSETUP.SIF.
Somewhere in the depths of your RAID/SATA controller's INF file lurks the fabled PCI identifier string.
Step 5 – Create a customized setup routine
You’re almost there. In this step, we’ll make a file called WINNT.SIF in the i386 folder of our Windows setup files (C:\xpsetupcd\i386). This file can be used to create an unattended installation routine—a subject beyond the scope of this how-to—but we’ll simply use it to point Windows to the drivers we’ve slipstreamed. Create WINNT.SIF and enter the following:
OEMSkipWelcome = 1
You’ll need to customize the OemPnPDriversPath line by entering the path to the INF file for your RAID/SATA driver (for instance if your drivers are in C:\xpsetupcd\i386\$OEM$\$1\drivers\RAID use: OemPnPDriversPath=drivers\RAID\FastTrack\WinXP).
There are a few other fields you may want to customize before you close WINNT.SIF. Type your product key, name, and company name in the ProductKey, FullName, and OrgName fields respectively to avoid having to enter them during setup. And if you’d like to install Windows to a folder other than C:\WINDOWS, edit the TargetPath field as needed.
WINNT.SIF is a powerful file that allows you to customize and automate many parts of the Windows installation process.
Step 6 – Prepare your bootable CD and burn it
Our next task is to extract the boot image from our original Windows XP disc (or download from here)so we can use it to make our slipstreamed CD bootable as well. With your original XP setup CD inserted, launch ISO Buster and select “Bootable CD” from the left pane. In the right pane, right-click Microsoft Corporation.img and choose “Extract Microsoft Corporation.img.” Extract this file to the folder where you copied your XP setup files (C:\xpsetupcd).
Fire up Nero Burning ROM (or EZ CD Creator, or any other CD burning app) and go to the New Compilation window (click “Close Wizard” if Nero’s wizard comes up). Select “CD-ROM (Boot)” from the left pane and open the Boot tab. For “Source of boot image data” choose “Image file” and use the Microsoft Corporation.img file you just extracted. Check to enable expert settings, and set “Kind of emulation” to “No emulation” and “Number of loaded sectors” to 4. (These instructions will vary if you use another application, of course.)
Next, head over to the ISO tab and set “File/Directory name length” to “ISO Level 2.” Ensure that “Format” is set to “Mode 1” and “Character Set” to “ISO 9660,” and make certain all four checkboxes on this tab are checked (“Joliet,” “Allow pathdepth of more than 8 directories,” “Allow more than 255 characters in path,” and “Do not add the ‘;1’ ISO file version extension”). Finally, click the Label tab and set the “Volume Label” field to the value used by your original Windows XP CD—this is the name that appears next to your CD-ROM drive in My Computer when your XP CD is inserted.
At this point, we’re almost ready to rock. Click the “New” button to open the Nero File Browser, and then locate the folder where you copied your Windows XP CD. Open the folder and add its entire contents to your CD image. When you’re all set, mash the “Burn” button and bask in the glory of your shiny new slipstreamed Windows XP CD, replete with RAID/SATA drivers and Service Pack 2!