The Pitfalls of BootCampA Windows user gone Mac
Once you go Mac, you’ll never go back.
First, a little background on me. I am an IT guy. I’ve spent more than a decade making it my business to know how to deal with and support various operating systems in endlessly complex environments. Personally, I use Linux flavors in areas where they excel. But as an IT professional, I use Windows because that’s what I’m called on to support and test the most. As a musician and graphic artist, I also know that Macs have always excelled in audio/video applications. Most such software was written for Macs and eventually (sometimes poorly) ported to PC. However, Macs have been historically more expensive and less expandable.
I was excited when OS X came about. After all, it is built on BSD and could therefore run some of the programs and scripts on which I had thus far relied upon Linux. In one package, one could get a great machine for A/V applications and a nice *nix system. However, the PC emulation left something to be desired.
Then Apple decided to start using Intel chips. This is when everything changed for me. The advent of software like Parallels and BootCamp was the final straw – if I can run Windows in tandem with OS X and/or boot directly to Windows on a Mac, I could not see any reason to continue to have a PC. Finally, things converge – everything on one box, running natively. I was beyond excited.
That should bring you up to three weeks ago, when my Dual Core MacBook Pro arrived.
I know, long-time Mac users are wincing that I am installing Windows at all. I can almost hear the chorus of, “What a cop out!” It’s the non-committal way of using a Mac. However, as I stated above, in my professional life, there is simply too much a saturation of PC environments where I have to use Windows. Mac still lags sorely behind in Active Directly tools (and rightly so), so I spend most of the day in Windows.
So when my Mac arrived, I excitedly and quickly set up BootCamp. One of the first things one must decide is how large a partition to use for BootCamp. I, being used to using virtual machines and partitioning in Windows, just entered some number, thinking that I could resize it later if need be.
Sadly, this is NOT the case.
While being a great program, as of this writing BootCamp is on version 1.3 and is still considered “beta” software and is not supported. It will not be supported until it is included in the next major OS update from Apple. So when I discovered that I needed more space for my Windows partition, imagine my dismay when it seemed like the only “solution” to this issue was to blow away the BootCamp partition and start over. This is simply unacceptable, as it took me weeks to get my Windows installation and accompanying programs to the point I needed them to be. Starting over is just not an option.
So I started digging.
I ran across several articles and hints, all using different methods to resize the partition. After going over them all, I decided to dive in and start trying things.
I tried the “easy” things first.Boot from a CD that recognizes all different types of partitions
I saw this suggestion in several places. It seemed logical – find a partition manager that recognizes HFS+, NTFS, etc., and use that to non-destructively resize the partition. Reboot, done. However, recent practical experience says otherwise.
I tried the one that made the most sense to me first – boot from a <insert flavor of Linux here> CD and start the install process to the point where you can specify an installation partition. At this point, you can re-size to your heart’s content, stop the install short of copying files, reboot, and play happily with your newly-increased space in Windows. I chose to try Ubuntu first. I downloaded the most recent “live” CD, 7.04. I loaded it in a virtual machine on my Windows install just to confirm it worked. Then I tried booting from it. I saw the boot screen, I chose “Start or Install Ubuntu”, and I sat staring at a black screen after it started loading for thirty minutes before I gave up. It would never boot. Being in a bit of a hurry, I discarded this option. I didn’t have time to download fifteen different flavors of Linux to find one that liked the MacBook Pro’s hardware.
Next, I started creating boot disks for all the partition manager software I had access to, just to see what would and wouldn’t boot. I tried AvanQuest Partition Commander Pro 10, Hiren’s Boot CD 9.1, Symantec Partition Magic 8, and Acronis Disk Director 10. Hiren’s is a great utility and has saved me numerous times over the years. However, I experienced some issues when trying to use it on the Mac. For those of you unfamiliar with Hiren’s, it has a list of programs that are included on it that you can run after booting from the CD. It’s quite a list. Once you pick a program, it creates a temporary drive in memory in which to unpack the files it needs to load the program. This is the point at which it hung on the Mac. My guess is it came across something that it didn’t expect, hardware- and HAL-wise. It could not create the temporary “R” drive, thus it was not useful in the least. AvanQuest, Symantec, and Acronis all had a different but identical problem – they don’t recognize the MacBook’s keyboard or mouse. They would all boot/load fine, but I was stuck looking at the screen with no way to interact with it. I tried external keyboards and mice to no avail. The only option I have for hooking them up was of course USB. Thus, none of these utilities were useful, either. Backup, blow away, re-create at new size, restore
This was the next option. One could approach this in a variety of ways and I did plenty of research on what would be the best, most reliable, non-destructive way of backing up and restoring this Windows partition. In the end, the option I chose was the one that worked. I reached a point where I thought it would work flawlessly and be completely free, but ran into a “glitch” that I could only get around by acquiring a pay-for utility. At the $35USD price tag, this is the cheapest, most effective and reliable way I found to re-size a BootCamp Windows partition and leave the Mac partition and Windows partition functioning perfectly, unmolested.
The rest of this article assumes the reader has a decent working knowledge of both Mac OS X and Windows systems, has already successfully set up a BootCamp environment, and has no desire to alter the Mac installation in any way.
1) Boot into Windows and run SysPrep. The SysPrep utility is available on the install CD. This essentially “packages” your Windows installation for creating an image and restoring it on new hardware. This step may not be mandatory, but not really knowing how BootCamp works, I was unsure if the new partition would show a new GUID and/or HID, so I performed this step. It is basically the safest thing to do. If you don’t know how to run SysPrep, there are several KB articles on it. It is pretty self-explanatory. The most important thing is this: once you run SysPrep, DO NOT boot into Windows again until after this entire process is complete. SysPrep will prompt you to shut down. From that point through the rest of this article, do not boot into Windows until specifically instructed or you will have to re-run SysPrep.
2) Boot into Mac and download and install NetRestore (http://www.bombich.com/software/netrestore.html
). This is an open-source imaging utility for Mac. We will be using select portions of their documentation from the section, “Deploying Windows on Macs”.
3) Download and install ntfsprogs from linux-ntfs.org, as per the documentation. This will enable NTFS deployment support.
4) Using NetRestore Helper, create a master image of the NTFS partition. It will prompt you to specify a location to store the image. I would recommend an external drive, however in my case, all of my external drives are still formatted using NTFS, which is not writable (natively) in Mac, so I stored mine on the Mac partition of my hard drive. Depending upon the size of your Windows partition, this may take awhile. I had a 20 GB partition (18.5 used) and it created the 17+ GB image in under two hours.
5) Start the BootCamp Assistant. Select “Restore the startup disk to a single volume”. I know, this is big. If this fails at this point, you have lost everything. While I assume no responsibility for you destroying your existing data, I can tell you that this method worked for me without question. As I said at the beginning of this article, BootCamp is still unsupported software and we are attempting to do something that is outside the realm of BootCamp. This is the safest way I found to do so. Follow the instructions/prompts onscreen. This is a fairly quick process. It will prompt you to reboot.
6) Now, start the BootCamp Assistant again. Create a new Windows partition at whatever size you want (in my case, I used 50 GB, up from 20 GB) and go through the process. You will need your original Windows disk. When it prompts you to insert the disk and reboot, do so. Don’t worry about creating a new Windows drivers CD, as the drivers are already on the system you backed up.
7) Follow the familiar Windows install procedures up to the point where it reboots the computer after copying the files. When the computer reboots, boot into Mac.
8) Start the NetRestore Helper and restore the ASR image you created to the newly created NFTS partition. Depending upon the size of your previous Windows partition, this may take awhile. In my case, it restored my near-20 GB partition in around an hour, I believe.
9) When NetRestore is complete, it will generate an error. Don’t panic. The error will say something about NetRestore being unable to resize the partition (sorry, I don’t have the text in front of me anymore). This happens because NetRestore is expecting the partition to be the same size it was previously. This is not a fatal error – the data is still there. Close out of the log windows and exit NetRestore.
10) Reboot the machine to Windows. The first thing that will happen is a filesystem integrity check. This is a function of SysPrep more than anything else in this article, and is normal behavior. Allow the check to run and complete.
11) At this point, the boot process will continue. If you are unfamiliar with SysPrep and how it looks upon first boot, don’t panic. It will normally take quite awhile to boot after a SysPrep is performed. Eventually, you will be presented with a series of dialog boxes where you will be prompted to enter the Product ID number, the computer name, and a few other details. This is desired behavior, as for all intents and purposes you have a new machine with a “fresh” Windows install. The new information – including information about “new” hardware, although emulated – has to be written to the registry. This is why I believe that the SysPrep (step 1 above) is necessary. I have not tested this method without using SysPrep.
12) After SysPrep does its thing, Windows will boot normally and you will rejoice.
This is where I thought I lucked out. Everything seemed normal, and it had not cost me a penny, other than the time it took to finally get to this point. However, while poking around and re-mapping my drives, I noticed something disturbing. In Drive Manager (XP), the graph on the bottom said my C drive was in fact the new size (in my case, 50 GB), but the text mapping in the top half of the screen still said the C drive was the old size (20 GB)! Baffled, I opened Explorer and checked the properties of the C drive – sure enough, that also reported 20 GB, almost full. I had never seen anything like this before – at the hardware level, the HAL sees the 50 GB partition, but Windows still thinks it’s 20 GB. This must be a function of how BootCamp does the hardware/BIOS emulation within the Windows install.
So now, here I am, back at square one, basically. Once again I started going through all the partition utility software I had, trying to find something that would A) recognize all the partitions, B) see that there was an issue, and C) help me fix it. Once again I cycled through all the software listed above, to no avail. Then, I started searching the Internet again for other software. Isn’t this where I was two weeks ago??? I was beginning to come to terms with the fact that I would just have to start over, so to speak, with a fresh re-install of Windows via BootCamp. But then I came across a little utility that I had never heard of before called BootIt NG (http://www.terabyteunlimited.com/bootitng.html
). Reading the features, it seemed that this might work, so I downloaded it and made the boot CD. Of course I’m expecting no keyboard support yet again, but lo and behold – I have keyboard support, both built-in and external USB! Wow, imagine my surprise. Here’s what I did with this software:
13) Boot from the BootIt NG CD. After some confirmation screens, the software will want to install. DO NOT install this software – it is unnecessary and MIGHT damage existing partition data. (I say “might” because it may very well not, but I was in no position to test this with live data. Again, I write this assuming that you don’t want to risk destroying any data on your existing Mac and/or Windows install. This is not an article analyzing the workings of any software.) For what you need to do, you can run this software directly from CD. Keep going through/around the prompts and when it asks you if you want it to automatically pick where to install the software or if you want to manually choose where to install it, choose manually. At this point you should be at a screen where you will see three partitions – the partition you booted from (the “CD”), your Mac partition (HFS+), and your Windows partition (NTFS).
14) In the right-hand column, there is a button that says “Resize”. Highlight your Windows partition and select “Resize”. You will be presented with a screen with two sliders – one to select the starting point, and one to select the ending point. Since I didn’t want to actually resize this partition, I chose the left-most option for starting point (“0”) and the right-most option for ending point (number will depend on the size of your partition) and clicked “Resize”. It went through some error-checking and the re-size process, then some more error-checking all very quickly since it wasn’t actually resizing anything. After this, I booted into Windows and BAM, Windows now recognized the entire 50 GB!
I know what you’re thinking – if BootIt NG can resize partitions, why not just do that in the first place? Well, all partition managing software works differently and having never used this before, I am disinclined to trust that it will “play nice” with both the HFS+ and NTFS partitions, resizing both non-destructively. Even so, if I did want to go down that route, I’d still make a backup of both partitions first, which would put me back at the beginning of this article anyway. If someone out there is brave enough to test whether or not BootIt NG will simply resize the partitions and that’s it, please do let us know.
I am elated that this worked. After going through several hurdles and pitfalls from the beginning of my research on how to resize a BootCamp partition through the final success, I wanted to share my experience with everyone. If someone else has a better/faster way to do this, please do let us know. Information on this subject is in short supply out there, and where it does exist my experience shows that it was written in theory and not actually practiced.
At the end of the day, I am extremely pleased with my “all-in-one” computer. I now have everything I need at my fingertips and could not be happier. Granted, I still have a massively beefy PC gaming system at home that I built, but given the octo-core options for the G5, I’m hoping that by the time Leopard hits the streets, I’ll be in a position to get a proper Mac at home.