First Look: The XP experiment: Running Windows on a Mac
By Rob Griffiths
First, Intel-built processors wind up in the Mac. What’s next—Windows XP running on an Apple-built machine? Exactly, thanks to the Windows XP on Intel Mac challenge. That contest, to get the Microsoft operating system running on an Intel-based Mac, has been won, meaning it’s now at least theoretically possible to run Windows natively on your Intel-based Mac (while still retaining a separate OS X installation). After drawing the short straw volunteering to help out, I set out to see what it would take to install the hack, get XP up and running on my Intel-powered Mac mini, and then see what kind of Windows XP machine I had on my hands.
What follows is a description of my experience, both good and bad, with the entire process from start to finish. This isn’t meant to be an installation guide, but I will talk about installing the patch, discuss what it takes to get XP working, the risks involved in a project such as this, and finally, how well the finished product works.
If you’re thinking about trying this on your own Intel-based Mac, you should know that Really Bad Things are possible. I’m not sure if permanent damage is possible—I don’t think that it is—but you can easily get in a position where you might need to boot into single-user mode to recover. It’s also possible to wind up in a situation where you have an unusable OSX, an unusable Windows XP, and the OS X installer refuses to see your drive as an available destination—in fact, this happened to me twice. Thankfully, recovery is relatively straightforward, though you will lose all data on the machine. Finally, something as simple as installing a new driver in Windows XP may render XP unbootable, and recovering from that may require starting over again—including formatting the drive and installing both OS X and Windows XP.
In short, this is very new technology, and things can still go very wrong with the process. If you have but one Mac, and you rely on it to make a living, I would not recommend installing Windows XP on it just yet. Over time, the process should get easier and safer, but as of today, it’s still highly experimental.
Part One: Installing the hack
All of the information and code needed to install Windows XP on an Intel-powered Mac is available on the Windows XP on Intel Macs download page. To some degree, though, that’s a bit like saying, “Here, take Jeff Gordon’s NASCAR race car, and you too can win the Daytona 500.” While it’s probably technically true, there are a lot of little details to be filled in.
Before you begin: If you’re considering trying this patch, here’s my own list of prerequisites that you should have, above and beyond the downloaded files:
An original Windows XP Pro SP2 CD-ROM. If you haven’t priced it lately and you don’t own it, that’ll set you back $299 (the cost of roughly 2.3 copies of Tiger).
A PC with a CD burner (about $40) and Nero, CD-R burning software for Windows. The good news is that Nero has a fully-functional 30 day demo available. Without that, set aside another $80.
Internet access from another machine, either the PC with the burner or a Mac.
Time. A whole lot of time. Really. Set aside some time, then set aside a bit more, and add perhaps a bit more on top of that, and then you might have enough to finish the job. In my case, I set aside a few hours on Saturday morning to do the job. When all was said and done (and re-done), the whole task took me about 12 hours the first time, though that time has fallen dramatically now to just about an hour. Experience is a harsh, but good, teacher.
Patience. This is nearly as important as the time aspect, as you’ll be waiting for things to happen fairly often, and you’ll also often feel like it’d be more fun to visit the dentist for a root canal than to try to get your XP mini working. Keep in mind that the version number on the patch is “0.1,” and it definitely feels like it at Times-Mirrors.
I should mention at this point that, if you’ve had to purchase Windows XP Pro, a burner, and Nero, you’re up to $419…which, and I’m not making this up, happens to be exactly today’s price for an entire Dell Dimension B110 with 1GB of RAM, a CD/DVD burner, and an 80GB hard drive. But more than likely if you’re trying this, you’ve already got a PC lying around your home, and you’re just hoping to replace it with the small, silent, and elegant-looking mini.
Once I’d gathered all the prerequisites—except for time, I clearly didn’t gather enough of that—it was almost time to dive into the modification. The last thing I did prior to starting was to attach a FireWire drive and make a clone of my perfectly-functional mini setup using SuperDuper. That way, if everything went horrendously, terribly wrong, recovery would be a simple process. I strongly recommend a similar plan if you attempt this project. Keep in mind that the very first thing you’re going to do is to erase the mini’s hard drive, so you’ll have to have a backup of some sort. Might as well make it a full clone, and then—and this is very important—verify that the clone is working before you start.
The actual installation
Here’s a short summary of the steps required to install Windows XP on an Intel-based Mac. This document isn’t meant to be an installation walk-through, but rather a very summarized version of the step-by-step process:
Create the modified Windows XP installation CD (using Nero on a PC).
Prepare the hard drive in the mini (bye-bye, data!). You’ll be making two partitions, one for OS X, one for XP.
Install OS X on the mini.
Install the dual-boot code on the mini.
Install Windows XP. Hint: make the partition FAT32, and you can read/write to it in OS X. This may make it possible to recover from no-boot situations.
Make XP functional. This step is so complex, it’s got its own section in this write-up.
Use Mac OS X and Windows XP on the same machine, though not at the same time.
In each and every one of these steps, things can happen that deplete the “time” and “patience” you brought to the project. Here are just a few examples of such things:
My original Nero-burned CD-R, the one containing the modified Windows XP installer, was bad. The program looked like it worked, the CD would mount, and I could read the files on it, but it would not work to install XP. Of course, there were no error messages, just a machine stuck on a black screen doing nothing.
During my first install attempt with a good CD-R, the installer hung up and crashed. I had to go back to the reformatting step.
Read each and every step in the instructions very carefully, especially if you’re not used to burning CDs on PCs or working in Terminal. I didn’t have any Terminal mess-ups, but I did spend a lot of time making sure I followed the directions correctly for the PC burn steps.
Use a wired USB keyboard and mouse at all times. You may have Bluetooth and/or wireless USB devices now, but set them aside before you start this project.
Disconnect everything but power, monitor, keyboard, and mouse.
Set the OS X resolution to the native monitor resolution before installing XP. At one point, I couldn’t make the installer work at all, and I think I traced it down to having left my (newly installed) OS X resolution at 1024×768, not the LCD’s native 1280×1024.
With that out of the way, how is the actual installation of Windows XP? It’s not overly difficult, but it is quite detailed and time consuming. The first step, after installing a fresh copy of OS X, is to install the boot loader on your mini. Since you just formatted the mini’s hard drive, you’ll have to copy the boot loader onto it from elsewhere—the original patch file on the Internet, or like me, off another machine on your network. After copying the boot loader (it’s just one file) to the mini, you use two Terminal commands to move it into the proper folder, and then bless that folder so that OS X sees it as bootable. The boot loader is a tiny program that lets you choose whether to boot Windows or OS X at startup, simply by tapping on the arrow key.
Press Return when the appropriate logo is showing, and that’s what OS you’ll boot into. Choose the Windows logo with your customized XP installer CD in the drive, and the install process starts. Well, it eventually starts. The instructions warn you that fully three minutes will pass before anything at all happens. Eventually, though, you’re presented with the Windows XP installer. After choosing the partition to use (it’s partition No. 2, not No. 1 or No. 3!), the Windows XP installer starts. At some point, the installer will reboot the machine,, and you then have to press F2 (repeatedly, to be sure) to make Windows boot from the hard drive, not the CD. The second part of the install then runs, and seems to run fine. When it’s done, though, your machine will crash. Really. This is normal. Just turn it off manually.
When it boots again, assuming you select Windows, you’ll be in Windows XP. When my machine finally reached this point, many many hours after starting (details on why it took so long follow), I was simply amazed—this is Windows on an Apple system. No VirtualPC, no OpenOSX WinTel, nothing except pure Windows XP. “Excellent,” you think, “I’m done! XP’s up and running, OS X boots, I’m set!” Oh if it were only that simple.
Part Two: Make XP usable
The big difference between what you’ve just installed and what you’d get on any retail Windows machine is this: drivers. The version of XP you just installed knows about your CD-ROM drive, your monitor, and your USB ports, but that’s about it. (It may also know about the FireWire port, but I didn’t test that prior to completing my setup.) Bluetooth, Ethernet, AirPort, and audio are all missing in action after the initial installation.
So what you have on that first boot of Windows XP on your Intel Mac is a very functional, but not very useful, operating system. The next step of the process involves visiting the Drivers page at the Windows XP on Intel Mac site. Here you’ll find links to drivers and/or instructions for all the interesting parts of your Mac, the parts that actually make it a usable system—things like Bluetooth, AirPort, and Ethernet. Depending on which Mac you’re installing XP on, which drivers may be available will vary—such are the risks of using a very early release of a very bleeding edge technology.
The most important driver to get working, of course, is Ethernet. Without it, getting anything into the mini means using USB or some other storage medium you can transfer between machines. I downloaded the Ethernet drivers on my G5, and then burned a CD-RW, which I then used to install the drivers on XP. They worked great on the first try, once I recalled the convoluted steps I had to follow to enter my IP address information. Once that was running, I was able to then download and install the remaining drivers. While that sounds routine, it really wasn’t—there are caveats, exceptions, and “maybes” with many of the drivers.
The Bluetooth drivers, for instance, have notes that indicate you have to re-run a small program on every reboot, and that they still may not work with Apple keyboards or mice. In fact, to even get them working at all, you have to edit a file in the Windows directory and add two lines to specify some Apple-related info for the Bluetooth chipset. (And this info differs between the iMac and the mini!). After doing that, and running the small program, you then cross your fingers, plug in your Bluetooth stuff, and see what happens.
In my case, I got a very pleasant surprise—my Macally mouse and Apple keyboard work just fine, though I do need to re-run one executable file each restart. What really surprised me is that the Bluetooth keyboard works immediately after power-up; early enough that it can be used to choose which OS to boot. I believe we have Apple to thank for that one.
By reading all the associated notes with each driver, and installing only one at a time and then rebooting to test each one, I eventually got almost everything up and running. I had XP on the mini running with Bluetooth, USB, FireWire, AirPort, and Ethernet.
While I was doing all of this work, I was also on the IRC channel a lot, asking questions, and just listening to the chatter. Someone mentioned that there were now native video drivers for the mini available, and a page had been added to the wiki explaining how to get them working.
Native video support is currently the big hole in running XP on Intel Macs. Without it, you’ve got no accelerated video, no games, and no DirectX (though it’s not clear if that will work even with native drivers on all cards). Excited by this prospect, and having caught the news just after completing the basic XP install, I decided to give it a shot. If you read the above-linked page, you’ll see the procedure is far from clear cut; it requires drivers from two different manufacturers, a few reboots, and lots of install/point steps. I took my time, and carefully followed every step.
When it was time to reboot for the last time, nothing happened. Black screen. Nothing helped; there was no getting into safe boot mode, no way to disable the things I’d added that had broken XP. So…I had to wipe the disk and start over, including the OS X installation. Ugh.
That’s when I ran into problem number two. When I went to reinstall OS X, neither partition was listed as available. After much futzing about, I finally managed to fix that problem. (This page in the wiki now describes the problem and two solutions; I used the method in solution two to fix the problem.) All of this took time, of course, but I was finally back on track, and managed to install XP completely for the second time.
I then decided that I would leave the native graphics drivers alone until a more practical and detailed installation process was available. Another several hours passed while I installed the drivers, as discussed above, finally winding up with a completely functional Windows XP installation. Well, functional but still not complete, as seen in the image at right. All those yellow-iconed objects shouldn’t be there, if everything were ideal. But, nothing in that list seemed to be affecting the functionality of the OS, so I chose to just leave well enough alone!
Disaster strikes again
After my first rebuild, I was running some benchmarks for this article. One of the test suites tested my hard drive, and died halfway through. Upon reboot, XP…didn’t. It just locked up. I booted into OS X, and it kernel panicked within about a minute. Uh oh. You got it. Erase, format, reinstall, and do it all over again.
Being somewhat experienced at it by now, it only took about an hour or so to get back up and running. Still, if this had been my production machine, I would have lost all my data, as well as an hour of my time.
Overall, from start to finish, it probably took me about 12 hours’ worth of initial work to get the mini set up with a functional XP installation. That includes 30 minutes to install the burner, which my PC lacked, maybe four hours on recovering from my two disasters, and another two or three were spent in research, IRC discussions, and just reading. Hopefully, I won’t have to do this again, but if I do, the process has gotten simpler with replication. Most of the install time is now just waiting on the OS X (six minutes, minimum install) and XP (20ish minutes) installers.
Part Three: The risks involved
Beyond the two specific disasters described above, there are general risks whenever you install an unknown piece of software. As seen in my benchmarking test, a simple software app brought down the whole machine, OS X and Windows XP.
Even when working well, there are oddities. One version of my XP install would start up strangely on my mini—it booted into something that looks like single-user mode (black screen, white text), and then presented a series of hexadecimal numbers and a prompt. I had to type g and press Return, then more numbers show up. When I pressed g and Return again, XP booted normally. On my most recent install, however, XP simply boots, with none of that garbage. I have no idea what’s different. Also, you cannot restart an XP’d Mac; it will lock up when you try to do so. It will, however, shut down perfectly, so that’s what I’ve been doing instead.
As noted in the introduction, if you only have one Mac, and you rely on it to make a living, now is not the time to turn it into a dual-boot machine. There are simply too many risks involved, given everything that can go wrong.
So does that mean I think this whole process was a waste of time? Far from it—if nothing else, I feel like I learned a lot, and as you’ll see in the next section, the end result is very usable. It just means that I think more time is required to let the technology mature before it’s “production ready.”
Part Four: Using Windows XP on a Core Duo mini
So overall, was it worth the effort? I certainly think so now. You probably would have gotten a different answer at 12:30 a.m. Sunday morning, in the midst of my struggles to figure out what had gone wrong with my hard drive after the video driver disaster. But after getting everything installed and now having used the system for a couple of days, the end result is impressive.
Hardware that works: Once you have drivers installed, since they’re the native Windows drivers, stuff just works. For instance, I have tested the following things on my XP mini, and they all work either perfectly or close to it.
Bluetooth: As noted earlier, I’m using a Macally Bluetooth mouse and the Apple Bluetooth keyboard, and both are working fine. I do have two issues with the mouse, but I’ve noticed the same issues on the mini running OS X as well. Both are relatively minor—the mouse is sometimes slow to be found when I turn it on, and if I let the machine go to sleep with the mouse still powered up, then the sleeping machine wakes again when the mouse powers itself off after two minutes of inactivity.
AirPort: The wireless connectivity is working perfectly; Windows XP finds my network and logs in successfully using my WEP key.
Printers: Both my Brother HL-1270N laser printer and Epson Stylus Photo 890 worked perfectly in testing.
FireWire: I was able to connect, format as FAT32, and use an external FireWire drive without any problems.
SuperDrive: The SuperDrive shows up in Windows XP as a “DVD-RW” device, and I tested its ability to burn both DVDs and CD-RWs (using both the Windows embedded burner and Nero; see below for more on that). It worked fine with both.
Ethernet/AirPort: I had no troubles moving files to and from the mini and both my other PC and my G5; sharing seemed to work well in both directions.
Overall, pretty much everything necessary to actually use the mini in XP works—as long as you’ve jumped through the requisite hoops to get the drivers installed.
Hardware that doesn’t work: There are really only two areas that are troublesome, and I’ve touched on both already. The first, and biggest, is the lack of native video drivers. While this has little effect on day-to-day use, it does mean that games and other applications that rely on accelerated video are presently off limits—there’s no acceleration for DirectX or OpenGL graphics, for instance. The mini has a better chance of having native graphics sooner than the other Intel Macs, as it uses a standard Intel chipset; the other machines use ATI video boards. As I noted earlier, there’s already a partial solution for native mini graphics which has worked for some people. I suspect it’s only a matter of time until a safe and workable solution is available.
The second is audio output. Apparently this is working on the iMacs and MacBook Pros, but the mini has a small problem—it seems the chipset is outputting optical (you can see red light emanating from the headphone jack) instead of an analog signal. USB audio devices work, however, so if you need sound, you can get it. I also expect a solution will be found to this issue relatively quickly.
Finally, the IR port isn’t functional, and I don’t have a sense for whether or not someone will be able to resolve that issue. To me, though, that’s not a big problem.
Application compatibility: Here’s where I would normally talk about application compatibility, etc. Except it’s not an issue. You’re running the real, honest-to-goodness Windows XP, as seen in the screenshot below (click for a full-size version):
(Visible in that shot are ESPN’s Bottom Line sports ticker, the official Windows Update site, my G5’s home folder, the network connections window, and the About box showing the Intel CPUs.)
If your application doesn’t require DirectX or accelerated graphics (i.e. it’s not a game or high-end video application), it will more than likely run just fine. This even includes stuff that I didn’t think would work, such as Windows Media Player 10 and QuickTime Player. QuickTime Player can even play back HD clips (those at 480p resolution) without any slowdowns. Windows Media high-def played at about half the desired speed, but they only offer 720p clips, so that explains the slowdown (remember, this is all without native video drivers—the fact that any HD stuff plays at all is pretty amazing).
I tested Word, Excel, and PowerPoint from Office 2003, and they all ran fine and very fast. The applications opened in about a second, and everything works. I seem to have figured out that there’s a scroll “speed limit” in Word, too. I opened my large test document from last week’s mini report, and it took as long to scroll on the mini in XP as it did on my G5 as it did on my genuine Athlon3200 PC—right around 22 seconds.
I installed jEdit, a Java-based text editor, to see how it worked. Unlike OS X, of course, Java isn’t included so you have to install a runtime first. But after that, jEdit installed and ran perfectly well.
Microsoft’s Windows Update and Office Update websites worked perfectly, patching my version of Windows and Office to the current levels. Internet Explorer seemed to run fine, but I quickly ditched it (other than needing it for the Windows and Office update stuff) in favor of Firefox, which runs like a champ.
As a final ultimate test of software and hardware, I created a DVD project containing a number of high definition video clips. Using Nero, I brought the clips in, created a main menu structure, added some labels, and then told Nero to start encoding and burning.
iDVD has nothing to worry about relative to Nero stealing its title as friendliest and best-looking DVD authoring application. On the other hand, Nero offers a ton of control over the project, and has a reputation for having excellent encoders. Just don’t expect an iDVD-like experience when you’re creating your project.
I figured as a stress test, this was about as tough as it could get—encoding video is hard work, and Nero was keeping both CPUs pegged during the whole process. It’s also a slow process, so I went about my other duties for 90 minutes or so. When I took a look at the machine again, I had a finished DVD which played perfectly in our home player, and on my G5.
I had also plugged in my temperature probe during the encoding and burning process, as there have been reports that XP’d minis have been running hotter than they did under OS X. The maximum temperature I recorded was 113F, which is only three degrees warmer than the exhaust air got while simply playing a DVD under OS X. As such, at least for this mini, there doesn’t seem to be a temperature issue.
Once you get through the potentially-complicated setup and have a working Intel Mac XP machine, you’ve got the best-ever “Windows XP on Apple hardware” solution. Emulators such as WinTel and the current version of VirtualPC won’t come close to native speeds, whereas this solution is native. The only real downside is it requires a reboot to run Windows XP. Down the road, the next version of VirtualPC may be super-fast as well, and not require the reboot, given that there’s now a common chipset. But we’ll have to wait to see if the potential speed increase comes true or not.
Once I had a sense that the mini was now a full-blown Windows machine, I decided to see how it would stack up against my Dual G5 and my Athlon 3200+. I downloaded a trial version of Photoshop CS2 for Windows, and then designed a simple filter test to run on all three machines (G5, XP mini, and XP Athlon). Browsing NASA’s site, I found a 3,200-by-2,400-pixel version of a shuttle launch (1.4MB download), and then created a liquify filter to distort the image:
I saved the filter, and then copied both the image and filter to the other two machines. Then I timed how long it took to apply the filter to the image on each system. Just for fun, I rebooted the XP mini and ran the same test in Rosetta.
PHOTOSHOP CS2 LIQUIFY FILTER TEST
Mini OS X
Testing by Rob Griffiths, very unofficial!
Now, this wasn’t a completely fair test, as my Athlon has only 512MB of RAM in it, while the mini has 2GB and the G5 has 2.5GB. However, it’s more of a CPU test than a memory test, as the image wasn’t huge, and the manipulation was math intensive. I was impressed with how quickly the Mini XP box finished, three seconds ahead of the Athlon and not that far behind the Dual G5. One possible conclusion here might be that if someone’s looking for a mini and wants to work in Photoshop on it today, they could do so by installing XP and using that until a Universal version comes out.
After the encouraging Photoshop results, I went looking for some benchmarking programs. Unfortunately, one of the ones I found was responsible for my second disaster, so that sort of sapped my desire for further testing. However, I did manage to run CPUBench2003 before the machine spit up and died. Given that this test is CPU intensive, I wasn’t surprised to find the dual-CPU mini bested my Athlon in the overall score—about 43 percent better (11,115 vs 7,741). The results in the graphics subset of the test were similar—ray tracing, which is CPU-intensive, was faster on the mini, by about 30 percent. 3-D graphics, though, were much slower, as there aren’t any native drivers installed.
Macworld Lab plans to conduct more extensive testing along with our colleagues from PC World. Those results will be posted at Macworld.com as soon as they become available.
Even without native graphics drivers, the XP mini is a fast machine. It feels snappy, windows resize quickly enough, Word and Excel both scroll as fast as you’d ever want them to, applications launch in a hurry, and CPU-intensive tasks are done nearly as quickly as they are on the Dual G5. In short, I was quite satisfied with the performance of Windows XP on this little box.
So after too many hours of installing, testing, reinstalling, testing, reinstalling, testing, and so forth, how do I feel about using XP on a mini? Here are some of my take-aways, summarized in a few bullet points.
Super fast, fully native Windows XP running on your own Mac.
Most hardware and nearly all software works (for better or worse) as it does in Windows.
One hardware box can do the job of two.
Choose which OS to run with a simple keypress during startup.
Perhaps the quietest and most elegant Windows XP box you’ll ever use.
Must reboot to use Windows XP, so no easy sharing of data between the two systems.
Installation and configuration is not for the faint of heart.
While XP is quite stable, installing some drivers may have severe consequences.
As expensive as a new PC if you have to buy all the required hardware and software first.
Missing video drivers limit usefulness for games, high-end graphics applications.
Assuming resolution of the remaining issues, I think the ability to run Windows XP at full speed on an “as needed” basis could be a huge selling feature for Apple. Anyone will be able to specify a Mac instead of a PC to Purchasing, and there will no longer be any legitimate technical reasons to say “no.” Once the machine is in the building, it could then be used in OS X most of the time, only rebooting into XP when needed.
With that said, I don’t think that installing and using Windows XP on an Intel Mac is at a point today where I could recommend it to anyone other than a hardcore dedicated techie type. If everything goes perfectly, yes, almost anyone could get XP installed on an Intel Mac. But when something goes wrong, which it invariably will given the complexity of this project, you’re going to want some technical know-how to at least recover from the disaster, if nothing else. You also have to have a bit of a cavalier attitude about your system, knowing it could be rendered unusable at some point by some seemingly innocent action, like installing a new driver.
Once the project matures a bit, and solves the remaining technical hurdles, I would then not hesitate to recommend this solution to those who need Windows XP access but prefer to keep using the Mac as their primary machine. I don’t know, however, how much simpler the installation can get. If the XP installer can eventually recognize the installed hardware and install the requisite drivers during setup, that will make this modification accessible to many more users. Otherwise, it will remain on the fringes of computing, accessible only to those with a strong technical bent (or those who have such relatives), and perhaps those supported by a corporate IT department.
When I started this experiment, I was certain I was going to wipe the drive when I was done with this article, and restore my cloned OS X install. Now, I’m not so certain. Having a fast, super-quiet and 100-percent authentic Windows XP environment a simple reboot away sure beats firing up my Athlon noise-generator PC when I need to do something in Windows. Maybe it’ll get to stay after all.
[When not devoting several hours to installing strange operating systems on Macs, Contributing Editor Rob Griffiths offers up Mac OS X tips and tricks in both his blog and at macosxhints.com.]