Boot Camp and Partitioning: Cooler than You Think?

Today Apple released a beta software package called Boot Camp to facilitate running Windows XP on an Intel-based Mac. I'm practically speechless. Which doesn't happen too often.

Apple's Boot Camp Beta: Brilliant!
(click for larger view)

Now we all know a few weeks ago this nut was already cracked by some enterprising young hackers, so we all knew it was possible, and in fact probable that installing and booting Windows on Mac would become a fairly trivial and commonplace happening. There were even rumors that the next version of the Mac OS would provide "virtualization" software for running Windows in an emulated environment from within Mac OSX. But I have to admit I was quite taken aback by today's news. Official support from Apple for installing and running Windows on the Mac.


Dual Booting
(click for larger view)

One of the best things about all this is the fact that Apple is providing Windows drivers for Mac-specific hardware. So you no longer need to search the internet to find them. But to me, coolest thing is the portion of the assistant that creates the partitions. Here, for the first time in Mac OS history (at least that I'm aware of), we see an Apple-branded utility that will partition your drive without erasing it. It's uber-smart of Apple to provide this functionality for people who want to test this out without the inconvenience of a full system reinstall. But it also has immensely cool implications if partitions are as important to you as they are to me, or if you happen to use an Xserve RAID. I'll explain.

Space Maker: The Caption Says it All
(click for larger view)

I use partitions on my systems to wall-off user data from system data. So I have one partition with all the system components and applications. Root. The boot drive. I try to keep this drive to as reasonable a size as I think I'll ever need, and then create a second partition with my user data: projects, mail, videos, music — everything else, essentially. This partitioning scheme works great, but it breaks down when someone like Apple decides to release a suite of applications that suddenly takes up eight times more space than the previous version. All of sudden, I no longer have enough space on my root drive for all of my applications. A partitioning system like mine fails when I am unable to accurately predict the amount of space all my apps will require, both now and in the future. And this is becoming increasingly common. A utility that would let me dynamically resize my partitions would be a godsend. Now I don't think the partitioner included in the Boot Camp Assistant does dynamic partition resizing, and it probably never will, and I'll just have to roll with it. But I can dream. And there is another area in which a utility like the one in Boot Camp would have immediate benefits.

I have a client who purchased on of Apple's Xserve RAID systems. This is a pretty cool beast. Fast. Stable. Very reliable. But there's a scalability problem, and it's one reason I won't buy one for my lab. When you read the datasheets and the manuals for the XRAID, you're told that drives can be dynamically added to the RAID in the future, should you ever require more storage. Add the new drive and the RAID will, theoretically, add it to the RAID set and you'll have that much more storage space. This is typical of enterprise-level RAIDs I'm told. It's one of the reasons you get them: scalability. But if you ever try to actually do this on an XRAID you'll run into a little snag. You see, while it is possible to add a drive to the RAID system and have the RAID recognize the new drive and add it to the set, the Mac OS host is responsible for partitioning the RAID. So what happens is, you add the drive, the XRAID sees it and adds it to the set automagically, but the Mac does not recognize the additional capacity. The Mac still sees the original partitioning scheme. I've read through the manuals and discussion forums — hell, I even talked to one of Apple's RAID specialists — and it turns out there is no way to grow the XRAID without repartitioning it from the host Mac. And as you're well aware, I'm sure, there's no way to repartition a Mac drive without wiping it. So, you want to grow your XRAID? Well, you'll have to wipe it. And that just sucks.

Boot Camp on PPC: No Boot Camp for You!
(click for larger view)

Apple's RAID specialist told me that they were working on a solution to this. That was about a year ago, and I've heard nothing since. But the partitioning utility in the Boot Camp Beta gives me great hope that a solution is indeed imminent. It may even be here already, if you have an Intel Mac that is. I've tried it, and no, the Boot Camp Beta will not run on a PPC Mac. No surprise there. But if the information on the Boot Camp page is any indication (Apple calls "Space Maker" the "most elegant hard drive utility ever"), a new and improved partitioning utility is on the horizon for the Mac. And I'm just as excited about this as I am at the prospect of booting Windows on my Mac. Maybe more.

It's been a long time coming.

I'm told by a colleague that growing a filesystem (like on a RAID) and partitioning a filesystem (what the Boot Camp Assistant does) are two different things, growing being the harder and, according to him, requiring a grow-able filesystem, which HFS+ is not. So maybe this is a pipe dream.

Apple has a FAQ up about the Windows installation process for Intel Macs, and there are some interesting things there. Most notable in the context of this article is the fact that Boot Camp Assistant will only work on "an Intel-based Mac that has one hard disk partition." This does not bode well. Still, I remain hopeful that this utility is indicative of possible future utilities that would allow for more flexible, less destruct ive partitioning.

I've been doing some hunting around on Apple's RAID capabilities and discovered that you can now (as of Tiger, I believe) use Disk Utility to create what called a Concatenated Disk Set (also referred to as JBOD, for Just a Bunch of Old Drives). These sets can be combined with other forms of RAIDs as well. Until yesterday I'd never even heard of Concatenated RAID, but apparently it's the oldest form of RAID. Concatenated RAID doesn't have the redundancy advantages of RAID 0 or the performance advantages of RAID 1. All Concatenated gives you is more contiguous disk space. I've read that Concatenated could be used to append a new drive on an XServe to the RAID set, though all it would do would be to add to the set's capacity and would not be a true member of the set. This is recommended as a stop-gap measure more than anything, and it's recommended that the reformat necessary to truly join the new disk to the set be performed later, at a more convenient time. Interestingly, this seems to suggest that a Concatenated RAID can be performed without wiping the disks in question, though I can't find any documentation that states this one way or the other. Also, the disks in a Concatenated RAIDs do not have to be identical, as with other forms of RAID. Concatenated RAID disks can be all different sizes, shapes and colors. As soon as I can find some drive to offer up as sacrifice, I will be testing out Concatenated RAID. I'll let you know what I find.

It appears that a new verb for the diskutil command has been added in 10.4.6. The verb is resizeVolume and it's what allows the non-destructive partitioning done by the Boot Camp Assistant. Don't look for it in the man pages; it's not mentioned there. But if you just run the diskutil programsan arguments you'll see resizeVolume listed as an option. I first read about this on Daring Fireball, which links to a MacGeekery article that outlines, in-depth, the process of using the new option to non-destructively resize volumes. I don't know yet if this works on PPC Macs — the article suggests it's for Intel machines only. But I'm sure going to give it a whirl. I'll post a follow-up on all my partitioning experiments in the near future. Stay tuned!