07 November 2009

Marriage of Convenience: Snow Leopard + Windows XP

EDIT: Use a USB installer with Snow Leo Install DVD restored on it and with NetbookBootMaker applied to be bootable for this to work. Explanation found here.

Though I haven't tried it to see for my own self, it's common knowledge that Snow Leopard and Windows XP dual-boot is not exactly without some challenges - piece of cake for the common hackintosher with some experience under his/her sleeve or the great seasoned ones but not exactly that easy for noobs.

First off, Snow Leopard by default will only install on disks which use GUID as their partition scheme; Windows XP doesn't like that, cause being an older OS it wants to play only with MBR.

One solution is to just install Windows 7 instead of Windows XP. But people want to dual boot with Win XP for reasons they only know and that we should respect. It's their choice anyhow.

Ok, so it's gotta be Win XP, another solution is to hack the Snow Leopard installer to make it accept an MBR formatted hard disk as installation destination. It's doable, yes, but still requires work. I myself did not attempt this cause although there are good resources out yonder in the world wide web, there wasn't a thrust compelling enough for me to go down this particular path. Snow Leopard's happily running on the Mini. I didn't care enough to sweat it. Period.

So what do we do now? Look enviously at real Mac heads who can effortlessly configure Windows on their Macs to dual-boot with Apple's big cats? Not anymore.

Who says it's only them who can have the pleasure of using Boot Camp Assistant? Yep, a hackintosher by the name of "modbin" has graciously shared his talent with the community and brought us Boot Camp Assistant that will work on hackintoshes.

In a nutshell, Boot Camp Assistant is just a friendlier front end for the same old Disk Utility we've come to love (and hate at times). We obtain a partition on a GUID hard disk that Windows XP will want to install on.

So, here we go:

How To Dual-Boot Snow Leopard and Windows XP
Download Boot Camp Assistant for hackintoshes and place it in your Applications > Utilities. Also Chameleon V2 RC3 (if you used the revamped Snow Leo EFI guide on this site you already have Chameleon; it's in /SnowLeoHPMini_101709/cham2RC3/)
What you need: your hackintoshed HP Mini, external CD drive, and a Win XP installer (retail version; not the recovery disc that comes with your Mini, cause though I reckon that could work, I haven't tried it plus I think most recovery discs assume that you want what it's gonna install as the sole OS on your Mini)
1) Install retail Snow Leopard and set up EFI boot. (You can use this guide. This becomes another reason why I prefer EFI boot method than the others cause it's easier to reconfigure, you'll see later how.
2) Launch Boot Camp Assistant. Click on Continue.
3) Choose "Create or remove a Windows partition". Click on Continue.
4) You will be asked how much space to allot to Win XP from your hard drive. In my case, Boot Camp specified 5.6 gigs automatically which is more than enough to run Win XP, but, if you plan on installing quite a number or applications, you can customize the partition size to match your requirements. Just click on the divider bar and slide to get your desired size. And then click on Partition.
5) Once that's done, Boot Camp will ask you to start Windows installation - it'll prompt you to insert the Windows installation disk like so:
Just quit the App - at least that's what I did cause I was getting this error message when I try to launch the installation via inserting my Win installation disc and clicking on "Start installation". Apparently, my disc couldn't be recognized though it's perfectly mounted. I guess it shouldn't be that easy after all.
So what you do is this: with the Win XP installer CD loaded in an external CD drive that's, of course, plugged into the Mini, restart the Machine. Hit F9 to choose the external CD drive as boot device.

6) Just follow the normal Win XP installation procedure but choose the partition that Boot Camp has kindly made for you (it's defaulted as FAT32 by the way) to install XP on. Also, you can change the format of that drive to NTFS - choose "Quick format NTFS" option. Again, proceed as with the usual Win XP installation (you can cover your eyes to avoid reading about how great and amazing XP is as an OS and all that BS stuff)
7) After XP is done installing, your Mini will reboot and you'll notice that it goes straight to that Windows boot splash screen. And before you ask, yes, Chameleon boot loader is no longer working. Good thing you've got your OS X installer usb hard drive or your Chameleon on a stick. Just let the Mini boot into Win XP for configuration and stuff - user account, driver installations and more reboots (really, it should be plural).
8) When everything's pretty much done on the Windows side, get your OS X Installer USB HD or Chameleon on a stick and use that to boot up your Mini with - you know the drill (plug to usb port, restart Mini, F9, press any key, choose Mac HD, press Enter).
9) Once you're logged into Mac OS X again, reinstall Chameleon to EFI. In Terminal:
$ sudo -s
# mkdir /Volumes/EFI
# mount_hfs /dev/disk0s1 /Volumes/EFI
# cd /SnowLeoHPMini_101709/cham2RC3/
or if you don't have these files, you can download cham2RC3 separately here and type this instead in Terminal:
# cd /path/to/where/you/unzipped/cham2RC3/
# fdisk -f boot0 -u -y /dev/rdisk0
# dd if=boot1h of=/dev/rdisk0s1
# cp boot /Volumes/EFI
10) Umount EFI and mark it as active for it to become bootable:
# umount -f /Volumes/EFI
# rm -rf /Volumes/EFI
# fdisk -e /dev/disk0
# p
# f 1
# w
# q
and then quit Terminal.
You no longer to recopy extensions, boot plist, etc. in the EFI partition cause they're intact. It's just the boot files for Chameleon that got screwed up a bit (and Windows is the culprit) and just needed some straightening out. And I love EFI more because of this :D
Restart and enjoy dual-booting Snow Leopard with Windows XP.


tomisha said...

Your guides are awesome!

I got OSX running on my Mini 1151nr wonderfully. However, I haven't had success with the dual boot (a week of trying.) I get both OSs running, but it's an either/or situation. I installed MacOS first, and it runs great from disk0s1 (EFI) and disk0s2 (MacHD), but after installing Win on disk0s3, only Windows will start. After redoing the EFI on disk0s1, only MacOS will run, and I can't start Win from Chameleon. I've tried both WinXP and Win7 (I need Win for work...)

Any ideas?


LeMaurien19 said...

That's via modbin's hacked Boot Camp Assistant right?
and you can see another disk (BOOTCAMP or FAT32) in Chameleon boot disk options right?
Can you take a look at your com.apple.Boot.plist?
Make sure that when you redo your EFI, there's no "boot-uuid" key and and string in the Boot.plist. That'll tell Chameleon to go always boot into that partition whose uuid (Universal Unique Identifier) is specified in the Boot.plist no matter which startup disk you choose.

tomisha said...

Yes, I tried the hacked Boot Camp Assistant - no dice. I also tried doing it without the Boot Camp Assistant. I don't have "boot-uuid" in my Boot.plist either.

The Windows partition does appear in Chameleon (I've tried both FAT32 and NTFS.) I think my problem is that Windows gets upset when I change the active partition to disk0s1 (EFI.)

I have noticed that there is a small bit of unpartitioned space when I install Win7. I'm going to try to delete that and "absorb" that into the Win partition.

Fingers crossed!

LeMaurien19 said...

I forgot to mention that installing Win XP screws up config for the active partition. You gotta set it up again:
In Mac OS X
$ sudo -s
# fdisk -e /dev/disk0
# p
# f 1
# w
# q

tomisha said...

But doesn't the XP partition have to be the active one, or else XP won't boot? At least that is what I'm finding.

LeMaurien19 said...

I just know that installing XP renders my EFI partition inactive, when I switch on the mini, the windows bootloader kicks in immediately.
So I had to make it active again. That way, it's Chameleon that loads by default during start up, leaving me with the option to choose which OS to load. If choose XP, then that's the time that the Windows bootloader would start.

LeMaurien19 said...

Also, I haven't tried dual-booting Win 7 you see. Only Win XP. That might have something or a whole to do with the problem here; maybe this guide doesn't work for Win 7 + Snow Leo dual boot (Win 7 creates more partitions than Win XP, so there)

LeMaurien19 said...

Make sure you're using gptsync with formatting your GUID hard drive. You do this by installing from a install medium with NetbookBootMaker applied.
For explanation, read here.