You can use Winclone together with BootCamp to resize your partitions from Mac OS X without having to reinstall either Windows of OSX.
If you have a Windows in addition to the Mac OS X (on a HFS+ filesystem) that you have created with Boot Camp then you can also nondestructively repartition your system to keep the original bootable filesystems and add a new FAT32 partition that both Mac and Windows can read and write. I am attaching a howto below.
I started out having two drives HFS+ for MacOSX (10.5.4) and NTFS for XP. Both had a size 93 Gb. BootCamp was used previously to set up these partitions and Windows XP has been installed on NTFS using BootCamp. In this state MacOSX can mount the Windows partition but cannot write to it, and Windows cannot see the Mac partition. I wanted to create an additional FAT32 partition that both operating systems can read and write to, while keeping both MacOSX and Windows bootable.
This can be done without having to reinstall either Mac OS X or Windows, in about 60 minutes using Mac's Winclone, BootCamp, and diskutil programs as follows.
1. Download and install Winclone on Mac (this is a free software that allows to backup
windows from mac).
http://winclone.en.softonic.com/mac
2. Run Winclone to "shrink the Windows volume" and "create image".
The first step reduces the size of the image that will be used to create the image,
and allows the image to be reloaded on a volume which is smaller than the original size.
Creating the image took about 10 minutes for my small XP drive (approx. 5GB).
3. Use BootCamp to wipe out the windows partition, and create a full Mac-only system.
This is necessary since BootCamp can only handle 2 partitions (1 for Mac and 1 for Windows).
In the following we will not use BootCamp.
4. Follow
http://wiki.onmac.net/index.php/Triple_Boot_via_BootCamp in the following.
First, run the following in terminal to verify the starting point is one chunk of partition.
w151151:~ blind$ diskutil list
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *186.3 Gi disk0
1: EFI 200.0 Mi disk0s1
2: Apple_HFS Macintosh HD 186.0 Gi disk0s2
6. run diskutil in the Mac terminal as follows (note that Windows has to be the last partition in order)
w151151:~ blind$ sudo diskutil resizeVolume disk0s2 75G "MS-DOS FAT32" "Work" 31G "MS-DOS FAT32" "Windows" 80G
Password:
Started resizing on disk disk0s2 Macintosh HD
Verifying
Resizing Volume
Adjusting Partitions
Formatting new partitions
Formatting disk0s4 as MS-DOS (FAT32) with name Windows
Formatting disk0s3 as MS-DOS (FAT32) with name Work
[ + 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% ]
Finished resizing on disk disk0
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *186.3 Gi disk0
1: EFI 200.0 Mi disk0s1
2: Apple_HFS Macintosh H 74.9 Gi disk0s2
3: Microsoft Basic Data WORK 31.0 Gi disk0s3
4: Microsoft Basic Data WINDOWS 80.1 Gi disk0s4
This is used to repartition the drives. Note that when running diskutil with "MS-DOS FAT32" "Windows" the type name has been set to "Microsoft Basic Data WINDOWS". Note that this does not mean that it will use a FAT32 filesystem, but in fact is necessary for Mac OS X to recognize and mount NTFS. See
http://wiki.onmac.net/index.php/Triple_Boot_via_BootCamp for an explanation.
7. Run Winclone to restore the previously saved Windows image to the Windows drive (i.e. disk0s4). This clones the presaved NTFS partition, but leaves the third partition (i.e. disk0s3) as FAT32. This took about 5 minutes for me.
8. Restart computer. It can still boot in Mac OS X. If holding down the option key during reboot, it offers to choose between Mac and Windows.Choose Windows. The Windows startup screen appears, but then warns that it needs to check the hard disks for consistency. This ran for about 1 minute, and then restarted the computer. Holding down the option key again, and then choosing Windows starts XP with no problems. Don't get scared if it takes two or three minutes for Windows to load, that is normal. Windows XP readily mounts the WORK drive as E: in addition to Windows.
We are done. Rebooting in Mac identifies the WORK partition without any problems, it mounts it and can write to it, just as Windows.