Installing Windows XP on a SATA Drive

This is probably the 1000th article on the Internet about how to install Windows XP on a SATA drive; believe me, I’ve read most of them. The trouble is that most of them tell you about 80 percent of what you need to know, and leave the rest for you to figure out on your own. I hope this one is different – better, that is.

I have several computers in my home. One of them is a family computer that the kids use to play games and write school papers. It’s in the library, which is basically an unused room in the center of our house that is open enough to be watched by my wife and me when the kids are on the Internet, and yet private enough to give them the peace they need when doing an undesirable homework assignment (of which they indicate they have too many).

A few months ago, my son complained to me that he couldn’t install a game because the computer was “out of space”. I checked it out, thinking that I could just delete some other unwanted things. As I went through the “Add/Remove Programs” menu with him, it quickly became apparent that everything there was “too important to delete”. You see, I’d already used this trick several months earlier for the same reason, and apparently the hard drive really was full this time – not surprising since it was a only 16 GB hard drive. This always amazes me, since my first computer had a whopping 40 MB hard drive – I thought I’d died and gone to computer heaven at the time. However, I really do know better. While some complain that software has simply gotten out of control these days, the real problem is the content; multimedia-rich data files take up most of our hard drive space. On top of that, my daughter stores her iTunes music files on that drive: Need I elaborate?

A New Hard Drive

So I moved over to my laptop at the desk in the same room, opened a browser and logged into one of my favorite hardware sites: ZipZoomFly. Picking up a new hard drive was child’s play, and choosing a fast SATA drive to replace the old slow IDE drive was a no-brainer. I haven’t done this in a while, and so I was surprised that I could pick up a Western Digital 250 GB SATA II drive for only 69 bucks – with free shipping, no less!

The first thing I did was was to ensure that my library computer’s motherboard had a SATA connector; it did, but only SATA I connector. SATA I has a 1.5 Gb/s transfer rate, as opposed to the 3 Gb/s transfer rate of the SATA II interface. So I did a little more research to see if the drive could be configured for the lower transfer rate. Western Digital indicates that the drive is “self-regulating”, which means it’s supposed to be backward compatible – automatically. I’ve heard statements like this before, so I didn’t trust this one any farther than I could toss it. However, a little more research showed that WD drives also have a jumper setting to force it to 1.5 Gb/s transfer rate – that’s better.

I could have just spent a little less money and bought a SATA I drive, but hey, I figure the kids are going to want a motherboard upgrade pretty soon anyway, at which point I can just remove the jumper, and upgrade my hard drive at the same time for free.

Installing Windows – Almost

The drive came in the mail yesterday, and I happened to be working at home. So I thought I’d just allow the Windows XP install to run while I worked on my laptop. I popped the new drive into a spare bay, plugged in the SATA cable and the power connector, and booted up the Windows XP installation CD. I left the old hard drive in place so I could copy my kids’ data files after the installation, but I disabled the primary IDE channel in the BIOS so it wouldn’t get in the way during Windows setup. I’ve been burned by this scenario before. Windows will assign drive letters (on a rather permanent basis) to devices based on the order in which they are found during a hardware probe.

When I built my main home computer, I inadvertently had my Zip drive plugged into to a USB port during the installation, and Windows configured it as drive C, of all things! After a little research on Microsoft’s support site, I found I had to reinstall from scratch just to get C: reassigned to the hard drive. Now, you might think I was a little “Type-A” here in “needing” the hard drive to be C: rather the F: it was actually assigned. Well, I’ll tell you, I’m leaving out some details in this story. You see, I actually left it the way it was for about 4 months before reinstalling, and I ran into several software packages during that period that had trouble with the concept of F: being the primary hard drive. Dumb programs (read “programmers”), I know, but it was my pain in the neck, not theirs.

Back to my story: The installation CD whirred and hummed for a minute loading various device drivers in preparation for installing Windows. While this was happening, I sat thinking to myself that it’s always been amazing to me that Microsoft could find just the right set of drivers for the installer to be able to interact with all the hardware in the world… When it finally finished, it popped up a message indicating that no hard drives were found. Hmmm, I guess I thought too soon; SATA drives are apparently not supported by the Windows XP installer.

Oh well. I already knew about the “Press F6 to load additional drivers…” trick. This message is displayed near the beginning of the installation process – just before the installer loads all of the pre-configured drivers on the CD. My family computer’s motherboard is made by MSI, so I went to MSI’s tech-support web site and found that they have a really nifty web-based hardware probe utility (beware: Explorer 5+ and ActiveX are required) that will tell you exactly what driver upgrades are available for your hardware. There are only two problems with this approach. First, you need to access the site from the machine you want to probe – this is understandable. But the second problem is that Windows XP installation drivers are not provided in this service, and quite frankly, the rest of MSI’s support site is a bit of a nightmare.

I booted up Windows from the old IDE hard drive, downloaded a probe utility from MSI and found the manufacturer and model number of the on-board SATA interface. Turns out it’s a VIA VT8237 SATA RAID controller – a fairly popular on-board device in today’s motherboards, although this one is probably a little out of date, as it’s only a SATA I device. But VIA Technologies has a web site dedicated to VIA hardware support. The latest Windows XP SATA RAID drivers for my VT8237 were easily located on this site. In addition, it has some really interesting articles on cutting-edge hardware on the front page.

Floppy Troubles

I opened the zip file and found a utility that creates an XP installation driver floppy image. I popped a blank floppy into drive A and pressed the go button. And nothing happened. After a bit of debugging, I found that the floppy drive in the machine was defective. In fact, I have several computers in my home, but there’s not a working floppy drive in the entire house. Back to the Internet. This time, I downloaded a freeware utility (open source, in fact) that installs a device driver on XP that emulates a floppy drive in either RAM or a disk file. Cool. I’m back in business – at least until I needed to “Press F6 to load additional drivers…” from my non-existent floppy drive. But I’m getting ahead of myself.

Setting up this floppy emulator is a bit tricky, as there are several steps involved in getting it to finally show up in your system as drive A:.

  1. Run the vfdwin.exe program. Click on “Install”. You’ll see a message in the output status box at the bottom of the dialog, “The VFD driver is installed.”
  2. Click “Start”. You’ll see another message added to the output box, “The VFD driver is started.”
  3. Click on the “Drive0” tab at the top and press the “Change…” button in the upper right corner to change the drive letter assigned to your virtual floppy drive. By default, no drive letter is assigned, so while you have properly installed the driver and started it, you won’t be able to access the virtual floppy drive until you’ve assigned it a drive letter. Select A:, and another message will be added to the list at the bottom of the dialog, “Drive 0: A drive letter is assigned.”
  4. Now you have to back up your RAM disk with a file. Select the “Open…” button (also found on the “Drive 0” tab). Browse to a location on your hard drive, and enter the file name, “drive_a.bin” (or whatever you want). One more message will be added to the list at the bottom, “Drive 0: A virtual floppy image is opened.”
  5. Click the “Format” button to format the image. You’ll get the usual “Warning…” dialog that you always get when you attempt to format a disk of any kind. Click “OK”, and you’ll get another dialog almost immediately that says formatting is complete. A final message is added to the list, “Formatted the current image.”

This is all a bit pedantic, I know, but it gives you the most flexibility at the expense of a degree or two of simplicity. You can check your final results by opening a command window and typing, “A:<enter>”, or open an explorer window and choose the “3-1/2 Floppy (A:)” entry under “My Computer”. If everything worked properly, you should be looking into your virtual floppy drive. What’s more, no program that’s written properly should be able to tell the difference between your virtual floppy and a real floppy drive.

I went back to my VIA utility to create a floppy image of my installation drivers and sure enough, it wrote a bunch of files to my virtual A drive, which I then copied off into a folder on my desktop – after all, I only needed the files, not the floppy disk!

Installing XP Without a Floppy Drive

Remember that this all started because I needed a way of installing Windows XP onto a SATA drive. And now I had the added problem of not having a working floppy drive in which to add the drivers during the installation process. My virtual floppy driver won’t work – it requires Windows! But there is a way. I downloaded another freeware utility called nLite, which allows you to configure a Windows XP installation image with whatever drivers you want, as well as provides some other really cool features.

You’ll need to ensure that the machine you’re using has .NET framework 1.1 installed. But the nLite installer will tell you if you need it, and even ask if you want to get it and install it before it continues. Just select “Yes” if you need to, but you’ll have to restart the nLite installation after installing .NET. Since I keep my Windows machines pretty much up to date using Windows Update, I didn’t have to worry about this part – I already had it.

nLite comes up as a dialog which allows you to select a Windows XP installation image source. Select “Browse” and navigate to the root of your Win XP install CD. Then – slightly confusingly – another file selection dialog immediately opens asking for the location in which to WRITE the image. Select a location on your hard drive. You ought to have at least 1 GB free to do this because it’s going to copy the entire Windows XP CD image to your hard drive.

Once it completes the copy process, press the “Next >>” button and then skip the pre-install options screen by pressing it again. Now you can select which portions of the installation image you wish to modify. For my purposes, I selected “Bootable Image” and “Add Drivers”, then pressed “Next >>” again. With these options selected, the first screen is the “Add drivers” screen. I pressed the “Insert” button at the bottom, and browsed to the folder on my Desktop containing the VIA SATA drivers that I copied from the virtual floppy image.

Now, the most important thing to realize here is that there’s a difference between regular Windows XP drivers and the “text mode” drivers used by the Windows installation program. Make sure you select the text mode drivers, or you will generate an image that does exactly the same thing as your original XP installation CD – nothing. If you properly select text mode drivers, nLite will open a second dialog window that asks you whether you want text mode or regular drivers. Again, select the text mode drivers, and press “OK” to continue. If you don’t get this additional dialog, then you’ve selected the wrong type of drivers. Select the “Next >>” button again, and you’ll be prompted to choose how you want your image generated. nLite is so cool it will even burn a CD for you. I just popped a blank CD into my CD burner and selected “Burn CD” from the drop-down menu in the upper left. Then pressed the “Burn” button.

Really Installing Windows

When the burn finished, I just rebooted, disabled the primary IDE controller again in the BIOS setup, and then rebooted to the new CD I’d just created. This time I was able to install Windows XP on my new SATA drive – without a floppy drive.

Other cool things you can do with nLite include preconfiguring administrator password and additional user accounts and passwords, pre-configuring the timezone you’ll need, and answering other questions that the XP installation process normally asks you during a typical installation. If you choose carefully, you can create an installation image that will run by itself with no prompting. I can’t even conceive of the amount of information you would need to know about the Windows installation process in order to write such a utility, but I’m sure glad someone else cared enough about it to learn it and write nLite.