Creating 2 Windows Partitions with Boot Camp
NOTE: These instructions were written for OS X Leopard. I’m still running my two-partition setup now on Snow Leopard, but haven’t tried them with Lion.
The Goal: A Shared FAT32 Partition for Mac OS X and Windows XP
I had a devil of a time reproducing my standard windows drive setup on a new MacBook Pro 17″:
C:\ for Windows and Applications
D:\ for Data
It’s good to keep your data separate from the applications because it’s a lot easier to back up. This is also a defensive move, just in case you have to reinstall the operating system, you can just nuke the entire C:\ partition and not worry about losing important data, assuming you keep all your work on the DATA drive. You can relocate My Documents to the D:\ drive too with a simple right-click on the icon, which moves it from the default location on C:... but I digress. Let’s get cracking!
My ideal setup, with a dual-boot Mac OS X / Windows XP system is this:
- A 70G Macintosh HD partition
- A 70G Windows HD partition (drive C:) formatted as NTFS for robustness. Mac OS X can read NTFS, but can’t write it, which is fine by me. Plus NTFS is more resilient to data corruption and stores data more efficiently.
- All remaining space in a Data partition (drive D:\ to Windows), formatted as FAT32. This is so I can store project and media files that can be used by either Mac OS X or Windows XP.
Looks simple enough, but it took some trial and error to get this set up.
I figured that it would be easy to install Boot Camp and then add a second partition for my data. That turns out to not be the case AT ALL: The Boot Camp Assistant utility, which prepares your Mac for installing Windows, will not even run if you have anything that doesn’t look like “One Big Fat Drive with Mac OS X on it and Nothing Else.”
While I haven’t done a detailed investigation as to why, my impression is that there no technical reason for this limitation if you know two things:
When you restart the Mac, hold down OPTION to choose what device to boot. This allows you to boot the right operating system or installation CD at the right time. Normally Boot Camp assistant does this for you.
If you add a new partition after you install Windows via Boot Camp Assistant, it will no longer boot. The reason why is because the partition numbering has changed, and since the Windows boot process needs to know the number of the partition, it can’t figure out where to find itself. The solution is to fix the number manually. I did this by putting my Mac into Target Disk Mode to turn it into a firewire drive, then mounting it on a second Windows PC to edit the critical
C:\BOOT.INIfile directly.
At first, I thought that Boot Camp Assistant was writing some kind of special disk signature to the disk partitions, or installed some kind of boot manager that did something to make Windows XP work properly. As I reinstalled—then broke—Windows XP for the 5th time while trying to add the second partition, it occurred to me that this may not actually be the case, but I have not verified this.
ANYWAY, here is what worked for me, pulled together out of several articles I found on the internet (see the OLDER NOTES section at the end of this article for the links).
Creating A Two Partition Windows Installation with Boot Camp
Before you start, you’ll need a firewire cable that will connect to a PC running Windows XP or Vista. You’ll need this connection to edit a file in your Windows XP installation to fix a booting problem. You’ll also need a second Windows computer with a firewire port.
If you don’t have another computer or firewire cable, you can perform STEP 1-5, which is an alternative approach. It probably is easier overall to do, if you follow the partitioning instructions as described. Andy Meldrum was kind enough to forward me his experience with it so I’ve added it to this guide. Thanks Andy!
You’ll also need a Windows installation CD and a Mac OS X Leopard Installation DVD.
Here’s what worked for me:
Step 1: Run Bootcamp Assistant to Install Windows
You’re starting with one partition called Macintosh HD, which you first must prep for Boot Camp using Boot Camp Assistant (BCA) in the Utilities folder of your Mac OS X install. You will be asked how big to make the Windows partition. For my 250GB disk, I wanted each Window and Mac partition to be 70GB (a total of 140GB), with the remainder devoted to the D:\ drive.
You’ll be asked to choose what kind of split to make between the Mac side and the PC side. The first step will be to size the Windows partition to (using my example) 70G. The Macintosh HD partition will be 180GB (250GB-70GB). We will create the separate FAT32 data partition in a later step, by subtracting it from the Macintosh HD partition. So for now, go ahead and click continue.
After repartitioning the drive and creating the BOOTCAMP partition, BCA will prompt you to insert a Windows installation CD. The machine will then act like a PC and start Windows setup.
Go ahead and install Windows XP or Vista. I installed Windows on an NTFS partition (choosing Quick Format NTFS in Windows Setup to prep the partition). After that was done, I installed Boot Camp drivers from the Mac OS X Leopard Installation DVD.
ALTERNATE STEP: You can skip ahead and apply Step 3-3 and 3-4 to edit the
BOOT.INIfile, while you are still in Windows. This saves you from having to use a separate computer and using Target Disk Mode in Step 3-1 and 3-2. Resume with Step 2 after you’re done editing.
Step 2: Use MacOS Disk Utility to add 3rd Partition
With Windows installed on your Boot Camp partition, you’re ready to now create the DATA partition by using the ‘Disk Utility
program on the Mac OS X Installation DVD. Boot the DVD (hold down OPTION while restarting), then choose the installation language and continue until you see the TOOLS menu appear. This is where you'll findDisk Utility`.With
Disk Utility, I resized the existing Macintosh HD partition so it was 70G, which leaves 90GB or so left as unpartitioned space.To resize, select the hard drive from the list at the left of the screen (not the partitions, but the entire disk) and click the
Partitiontab. On this screen you’ll be able to drag the bottom of the Macintosh HD partition to resize the existing partition. Choose it to be as close to 70GB as you can (or any size you like), and clickApplyto make the change.NOTE1: The display may be slightly confusing afterward, with the Macintosh HD partition appearing in the middle of the partition list, but ignore that. Different versions of Disk Utility seem to act up differently.
NOTE2: You may have EXTRA partitions, other than the ones you created, shown in Disk Utility. They are usually very small. I’m not sure why they appear, but you can just ignore them.
While still in
Disk Utility, select the UNPARTITIONED SPACE and create a new FAT32 (or FAT) partition in it by using the drop-down menu. This will become the new DATA drive. I used Disk Utility to ERASE and NAME the new partition as DATA. Apply the changes, then quit Disk Utility.NOTES: If you didn’t follow the instructions and chose to PARTITION the existing volume instead of RESIZING then ADDING a partition, this appears to mess up BootCamp’s boot loader and you may have to start again. Step 3, however, may offer you a way out.
Step 3: Fix Windows BOOT.INI file to recognize new partition structure
If you already edited the BOOT.INI file in Alternative Step 1-5, you can skip to Step 4 (Verify it All Works).
I then rebooted into Mac OS X on the HD. I did this by choosing “Start Disk” from the TOOLS menu. If you try to boot Windows, you’ll find that it will give you an error about not finding a disk. We’re going to fix this by editing a system file,
BOOT.INI, to allow Windows to find the disk again.To start the editing process, put the Mac into Target Disk Mode. I did this by going to System Preferences and choosing “Start Disk”, and selected Target Disk Mode. This will reboot the Macintosh and make it appear as a “firewire hard disk” that you can connect to with another PC.
Why doesn’t Windows XP boot? It’s because the number of partitions on the disk has changed from 2 (‘Macintosh HD’ and ‘BOOTCAMP’) to 3 (‘Macintosh HD’, our new ‘DATA’ partition, and ‘BOOTCAMP’). Windows XP’s bootup procedure refers to the partition number it will find the rest of the Windows system files, so we need to update that information in the secret Windows XP
BOOT.INIfile.By putting the Mac into Target Disk Mode, I can mount the Mac on a Windows XP PC through a firewire port, find the BOOT.INI file, and manually edit it. If I’d left my Windows HD partition as FAT32, then I could have edited it from Mac OS X, but since my boot partition is NTFS I need to edit it from another Windows XP computer (NTFS is read-only in Mac OS X, FAT32 is read and write).
To edit the
BOOT.INIfile on my PC, I opened the volume with the Windows installation on it in Windows Explorer. It’s a hidden system file, so you have to go to TOOLS > FOLDER OPTIONS > VIEW, check the ADVANCED settings for show hidden files and folders, and uncheck Hide extensions for known file types and also uncheck hide protected operating system files. After you do that, you should see BOOT.INI. Just make sure you’re not editing the one on your PC…you should be editing the one on your Macintosh, mounted as a Firewire drive.You’ll see something that looks like this in your
BOOT.INIfile:[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /NOEXECUTE=OPTINWhen you added that new DATA partition, you renumbered them. What used to be partition (2) is now partition (3). So you have to change the (2) to (3), save the file, close it, then safely unmount the disk. If your numbers are different, a good guess is just to take increase the partition number by 1.
If you DON’T do this and try to boot Windows, you’ll find that it crashes with the “I’m sorry, we couldn’t start up Windows. Do you want to start in Safe Mode?” screen. You’ll also see a flicker of the BLUE SCREEN OF DEATH, which flashes an
UNMOUNTABLE_BOOT_VOLUMEerror so quickly you won’t have a chance to read it. This was the hint that the BOOT.INI entries were incorrect; this used to be a problem for me back in the Windows NT days when I would create dual-boot Windows systems. Some things never change.
Step 4: Verify that it all works.
If you’re lucky, everything has worked just fine
There is one irritating side effect of adding the Data drive after installing windows: it has been labeled as drive E:\ instead of drive D:. I like my data drive to be D:\ as a personal preference, and it can be rectified by going into Windows XP’s Disk Manager control panel (under Computer Administration) and changing the assigned drive letters. However, there are some side effects, like being unable to mount that drive in Target Disk Mode afterwards. Oh well. You can leave it alone if you like.
More Information
Since writing this article I’ve become aware of this possibly simpler approach, which uses some interesting MacOS terminal commands to prep the three partitions in a way that the Windows installer would recognize. I haven’t tried this myself, though.
The original research for this article is contained in Mac OS X Boot Camp Background Research. You’ll find the links and informational nuggets that I harvested to create this guide.