Windows XP, Windows 7 and OSX Snowleopard trippleboot
Yes it works and I had it working on my old MacBook.
To follow good habits, I share here, how I did it on my new MacBook Pro.
...crap why didn't I write it down last time ;-)...
0. why?
- i can have a native IE6 and IE8 (with IE7 in simulated mode)
- i can run demo's in native speed
- you name it
1. Requirements
You have already installed OSX on a single Partion on your GUID enabled Volume.
I will use a Windows XP Professional 32bit and a Windows 7 Professional 64bit iso images from msdn.
This tutrial should work fine with retail builds.
2. Prepare installation media
Windows XP does not know about EFI so it will work out of the box.
Windows 7 knows EFI and tries to use it, but only supports Version 2 and will fail on the MacBook.
- Mount your iso (on my machine it's mounted on drive x:)
- download oscdimg (google for it)
- open a cmd prompt and change to the folder where you have oscdimg
- run this command: (you can change the target where the iso is created)
oscdimg -n -m -bX:\boot\etfsboot.com X:\ I:\en_windows_7_professional_x64_dvd_slimed_efi.iso

- burn the iso
3. make some space on your Mac
- open Terminal.app and get root with:
sudo su -
- check how many space you have with:
diskutil list
- resize your disk and create two new partitions.
pea-mbp:~ root# diskutil list
/dev/disk0
#: TYPE NAME SIZE
IDENTIFIER
0: GUID_partition_scheme *160.0 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS OSX_SSD 159.7 GB disk0s2
pea-mbp:~ root# diskutil resizeVolume disk0s2 limits
For device disk0s2 OSX_SSD:
Current size: 159.7 GB (159697911808 Bytes)
Minimum size: 75.6 GB (75631452160 Bytes)
Maximum size: 159.7 GB (159697911808 Bytes)
pea-mbp:~ root# diskutil resizeVolume disk0s2 100G "MS-DOS FAT32" Win7
49G "MS-DOS FAT32" WinXP 10G
Started partitioning on disk0s2 OSX_SSD
Verifying disk
Resizing
Waiting for disks to reappear
Formatting disk0s3 as MS-DOS (FAT32) with name Win7
Formatting disk0s4 as MS-DOS (FAT32) with name WinXP
Finished partitioning on disk0s2 OSX_SSD
/dev/disk0
#: TYPE NAME SIZE
IDENTIFIER
0: GUID_partition_scheme *160.0 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS OSX_SSD 100.0 GB disk0s2
3: Microsoft Basic Data WIN7 49.0 GB disk0s3
4: Microsoft Basic Data WINXP 10.7 GB disk0s4
sudo su -
diskutil list
pea-mbp:~ root# diskutil list
/dev/disk0
#: TYPE NAME SIZE
IDENTIFIER
0: GUID_partition_scheme *160.0 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS OSX_SSD 159.7 GB disk0s2
pea-mbp:~ root# diskutil resizeVolume disk0s2 limits
For device disk0s2 OSX_SSD:
Current size: 159.7 GB (159697911808 Bytes)
Minimum size: 75.6 GB (75631452160 Bytes)
Maximum size: 159.7 GB (159697911808 Bytes)
pea-mbp:~ root# diskutil resizeVolume disk0s2 100G "MS-DOS FAT32" Win7
49G "MS-DOS FAT32" WinXP 10G
Started partitioning on disk0s2 OSX_SSD
Verifying disk
Resizing
Waiting for disks to reappear
Formatting disk0s3 as MS-DOS (FAT32) with name Win7
Formatting disk0s4 as MS-DOS (FAT32) with name WinXP
Finished partitioning on disk0s2 OSX_SSD
/dev/disk0
#: TYPE NAME SIZE
IDENTIFIER
0: GUID_partition_scheme *160.0 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS OSX_SSD 100.0 GB disk0s2
3: Microsoft Basic Data WIN7 49.0 GB disk0s3
4: Microsoft Basic Data WINXP 10.7 GB disk0s4
4. Format the partitions
You need this steps only if one of your windows partitions is bigger then 32GB.
The installer of Windows XP (even with SP3) can't format FAT32 bigger then 32GB.
- download and burn sysrescd
- Insert sysrescd and reboot your compouter holding down the c key.
- On the bootprompt type:
freedos
- once at the freedos promt, format both c: and d: partitions with:
format /S c: format /S d:
- type reboot to reboot the machine:
reboot
5. Install Windows XP
Insert your burned Windows XP image and reboot holding down C to boot the cd.
- Install Windows XP on the last partition.
Here it was labled E:. You can use the size of the partition to identify it. - Windows will reboot
- Hold down alt key on the keyboard and choose "Windows" from the boot menu
- The system will fail to boot, but that is ok (it's windows after all)
6. Install Windows 7
Insert your burned Windows 7 image and reboot holding down c to boot the dvd.
- Accept the license and choose custom (advanced) install method.
- Choose the second last partition (should be Disk 0 Partition 3).
Here it was labled WIN7, the name I used when I formated the partition with freedos.
You can again use the size as a reference.
And hit "Format" as we need NTFS for windows 7. - Hit "next" to start the installation
- On reboot hold alt key to show the boot menu
- choose Windows to finish the installation of Windows 7.
- repeat step 4 and 5 a second time
- finish the installation
7. Bootloader
Back on OSX install install rEFIt.
- Double-click on the “rEFIt.mpkg” package from the downloaded dmg
- I had also to run enable.sh
cd /efi/refit ./enable.sh
7. Make Window XP bootable
- Boot Windows 7 installation CD
- Choose "Repair your Computer"
- It will find some issues, let it "Repair and restart"
- repeat step 1 and 2
- This time select "Use recovery tools ..." and click next
- Choose "Command Promt"
- verify that Windows XP is on drive C:
dir c:
(it outputs only one folder: windows) - fix the boot sector with:
bootsect /nt52 c: /mbr
- type exit to quit the command promt
exit
- Choose "reboot" and boot windows 7
8. Fix needed boot files
- boot Windows 7 and insert the Windows XP cd.
- open a command promt and copy over the needed boot fiels
- create the needed boot.ini file
notepad d:\boot.ini
- paste in the following
[boot loader] timeout=0 default=multi(0)disk(0)rdisk(0)partition(4)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Win XP" /fastdetect
- change the needed file attributes for boot.ini (again im command prompt)
attrib +R boot.ini attrib +S boot.ini attrib +H boot.ini
copy e:\i386\NTLDR d:\ copy e:\i386\NTDETECT.COM d:\
9. Finish the installation of windows XP
Reboot your machine and choose the third boot item
- finish the installation
10. Final steps
If you need drivers for your Mac, insert the snowleopard dvd.
I removed the "bootcamp services" as I don't use bootcamp in my setup
Now it's time to install all updates and the programs you need.
list of references:
[1] base for this tutorial
[2] hint about oscdimg
[3] refit
[4] easy boot cd (ebcd): fixing legacy boot blocks
[5] my howto costomize Windows XP
[6] sysresccd
