Upgrading an impossibly old system to Windows 8
The madness began as much insanity does, with a nominally simple idea: Upgrade a Windows XP system to Windows 8 and write about the experience. Then my mouth started moving, even before my imprudent brain realized what it was saying. "I have an old Pentium 4 system at home, complete with an AGP graphics card and 2GB of RAM. It's running tons of software. Maybe we should install Windows 8 on that, and see if everything sticks together!"
In reality, performing a Windows 8 upgrade on an ancient Windows XP machine is not a good idea. But the exercise allowed me to explore the boundaries of what's possible—and to learn some valuable lessons about the Windows 8 setup process along the way.
And now I can share what I've learned with you.
'Old' isn't quite the word for a system like this
Okay, I know: It's an ugly case. But I built this machine when I was younger and more prone to admire tacky garishness. The good news is that you can't order one of these enclosures any longer. You can pay good money for custom case painting, but this kind of psychedelic silk-screening seems to be unavailable in 2012. That's probably a good thing.
Regardless, what lives inside the case is more interesting. I built the system in 2004, not long after the Northwood variant of the Pentium 4 shipped. The components inside are more than just elderly--they're positively geriatric by modern PC standards. To wit:
- 3.4GHz Pentium 4 CPU (socket 478!)
- Abit IC7-G motherboard with Intel 875P chipset
- Two 1GB DDR-400 DRAM modules (2GB total)
- Radeon HD 9800XT AGP graphics card with 512MB frame buffer
- 320GB Western Digital hard drive (IDE)
- Two 250GB Western Digital hard drives in RAID 1 mode
- Sony DVD recorder (16X)
- Two Asus 52X CD-ROM burners
- 520W Vantec power supply
Note that Abit is now out of business. Vantec still makes low-cost peripherals, but it is no longer in the power-supply business. As I'll detail shortly, this system is a little problematic when it comes to Windows 8.
Windows 8 setup: first run
In its original state, this P4-based system ran the 32-bit version of Windows XP--and the last time I used the PC was several years ago as a license server for 3ds Max 8. I uninstalled the license server and a few other applications, mainly to make the system small enough to back up to the secondary 250GB RAID array. Then I ran Windows 8 setup from a DVD.
I first tried 64-bit Windows 8, but was informed that only a clean, fresh install would be performed. So I resigned myself to installing 32-bit Windows 8. Even so, the Windows 8 setup retained none of my applications—only data files! Well, that was a rude awakening.
Windows 8 setup runs a compatibility checker the first time it's activated. The only incompatibility I encountered was the RAID array. I sighed, rebooted the system into the Intel RAID BIOS and deleted the RAID array. Then I had to repartition and reformat the pair of 250GB drives, and then run another image backup.
Once that prep work was done, I fired up the Windows 8 setup in earnest. Everything progressed as it should, until the first reboot. What appeared on the screen was a 0x0000005 error, followed by "Press CTRL-ALT-DEL to restart."
Of course, restarting did nothing but re-create the same error.
Diving into a Google search, I discovered that Windows 8 requires Data Execution Prevention (DEP), a feature of CPUs and motherboards that helps prevent malware or poorly designed applications from running program code out of parts of memory specifically allocated for data. The motherboard BIOS, in particular, must offer a DEP setting, which has to be enabled.
That's when I knew I was doomed.
The Abit IC7-G is a motherboard built by a defunct company, and it was already running the last available BIOS update. I verified the lack of a DEP setting. So it seemed as though this little project had come to a premature end.
Pillage your parts bin in a pinch
Then I remembered the image backup. All was not lost.
I decided to try to replicate the system as closely as possible, but with enough hardware updates to enable Windows 8 to run. I rummaged through my pile of parts and uncovered an Asus P5B Deluxe motherboard and an Intel Pentium D 965.
The Pentium D is built on an updated version of Intel's Netburst architecture, the same architecture used to create the original Pentium 4. Unlike the P4, however, the Pentium D is a dual-core CPU—though it's really two separate CPU cores combined in a single package. The Pentium D shipped in an LGA775 package, and these are still readily available.
The Asus motherboard is built on a P965 chipset. which is several generations newer than the 875P used in the Abit board. In practical terms, that meant the 320GB IDE boot drive used in my old P4 system wouldn't work. The optical drives needed the lone IDE connector on the P5B.
The two Western Digital 250GB drives were SATA, however, so I swapped in a 320GB Seagate SATA drive. The Seagate drive is faster than the original, but I knew it wouldn't have a major impact. In a similar vein, I used two 1GB DDR2 modules, since DDR1 wouldn't work with the P5B. My final equipment change involved the graphics card: I replaced the AGP 9800XT with a Radeon HD 6450, a very low-end card that required no power connection.
After making all of these changes, I checked the system BIOS and, sure enough, DEP was now an option. So I turned it on. Then I recovered the original Windows XP partition. After a reboot, I updated the chipset drivers and then installed new graphics drivers.
At this point, Windows XP began generating memory errors. These weren't due to a hardware incompatibility, but to a bug in which a Microsoft service would crash repeatedly. That told me that I was running Windows XP Service Pack 2, which had some problems when Data Execution Prevention was turned on.
It's never simple, is it? I updated to XP Service Pack 3. The errors continued, but less frequently.
Windows 8 redux
Keeping my fingers crossed, I popped in the Windows 8 DVD and walked through the setup process. This time, it all went smoothly. The system rebooted a couple of times, and soon I was running a very hot, very noisy Windows 8 system. A quick run of the Windows Experience Index generated a whopping 4.4 score, with a processor score of 5.5. Modern CPUs tend to max out at around 7.0 to 7.8. Still, that 5.5 rating was better than I had expected.
To be fair, the hardware build that I started with wasn't the hardware build that I ultimately used for Windows 8. The graphics card swap introduced a particularly significant change. Even though the Radeon HD 6450 is an entry-level, low-end graphics card, it's DirectX 11.1 capable, which instantly made my system more responsive in Windows 8.
Still, even discounting the GPU, the system seemed more responsive when running Windows 8. The 2GB of memory and the slow hard drives certainly made things drag, and the old CPU didn't help, but the whole affair hung together much better than I thought it would.
Bottom line: not a great idea
Few Windows XP users are likely to make the jump to Windows 8 by upgrading an existing XP system. Still, I learned some things from this crazy little project:
- An in-place upgrade of Windows 8 over Windows XP isn't really an upgrade. It's really a clean install that saves all of your user files, but kills your applications.
- Despite blowing away your software, you can't do an in-place upgrade with 64-bit Windows 8, even if the CPU is 64-bit capable.
- For Windows 8 to work, the system must support data execution protection, and DEP must be enabled.
- Windows 8 can actually run on 2GB of RAM!
In the end, it's probably worth the effort to back up your data and perform a clean install of Windows 8 if you're so inclined. If you're running hardware that's more current—perhaps a Core 2 Quad—Windows 8 is certainly a viable path. But if you're running a 32-bit OS, I recommend backing up and installing a 64-bit OS instead. That way, you'll be able to install more usable memory. And while Windows 8 may not be a big memory hog, modern applications often are.