A Tale of Two Macs
You may have noticed that there has been precious little blogging in this space recently. That’s mostly due to spending the last few weeks trying to get my technology back in line so I could be at least halfway productive. After much gnashing of teeth and cursing the computer gods (both in Cupertino and Redmond) I have finally settled back into something of a groove.
As Sean Skinner detailed in his Unity post, when his Dell gave up the ghost one afternoon it put us in a bit of a bind. He was about to start a client engagement and I was heading off to the UK for a week. That didn’t give us a lot of time to research options or order any customized pieces of kit. So I did a quick image of my Vista disk on my early 2008 MacBook Pro and ran down to the Apple store in hopes that they would have a deal on a similar unit. Alas, every store in our region had sold out of the older units and the only option left was to get one of the new unibody MBP’s, which was quite a bit more than I wanted to spend (the regular MacBook wasn’t an option as they don’t have an ExpressCard slot and the horsepower isn’t quite up to snuff) and, truth be told, I wasn’t all that impressed with the underwhelming spec upgrade from the previous version.
So, having no other options, I bit the bullet and plunked down the plastic for a new hunk of aluminum. Unfortunately, that’s when all my troubles began. I had assumed, quite erroneously, that I could pop my Vista disk into the new machine, install the updated Bootcamp drivers, and be on my merry way. Not quite. It did work that way to an extent – Vista booted up just fine without any BSOD’s or crashes – but it became obvious very quickly that nVidia hadn’t spent very much time on a complete Wintel driver set.
To begin with, the new MBP’s come with two video cards – an onboard GeForce 9400M integrated chip and a discrete 9600M GT card. The Bootcamp drivers only provide support for the 9600, forcing the machine into high performance mode at all times, without providing so much as an option for the 9400. Needless to say, this doesn’t do much for battery life – Vista was reporting an hour and half at best. It was drawing down so much power that the airline adapter couldn’t even keep it powered on my flight across the pond – the battery was dead in just under 80 minutes. Worse, the chipset drivers completely lose their senses when it comes to controlling the fans – the thing ran so hot I swear you could cook a complete English breakfast right on the trackpad.
Speaking of the trackpad, all that no-button goodness is fine for Leopard but what happened to the right-click support in Vista? It took three fingers (not two) for a right-click sequence and the lower-right-corner option was conspicuously absent – although I swear that it worked before I installed the Bootcamp drivers. And don’t event try Tap-to-Click. This was so sensitive and flaky that I had to turn it off immediately (Darrin Bishop reports that he couldn’t use it at all and took the machine back because of it). To add insult to injury, the updates that came out in late November which were supposed to address these things had absolutely no effect.
So now I had a real thorn under my saddle blanket. I obviously couldn’t use the machine to run Vista natively like I had with my old MBP so I was going to have to switch to Mac OS. I had brought along the original drive (just in case) and, thankfully, swapping out disks in the new machines is easy as flippin’ flapjacks – just a few screws and you’re done. I’ve been working in Win2k8 VM’s for almost a year now so I figured I could just swap things out, download VMWare Fusion, and be back in business. Hah! Famous last words, those were.
To begin with, I don’t know diddly squat about Mac OS. I haven’t worked in that since, like, 1999. Sure, I know what Finder is and how to launch all the iApps but that’s where my knowledge ends. Time for a crash course. I managed to get up and running and get VMWare installed before the real nightmares began. You see, Fusion absolutely, positively, refused to run my Win2k8 disk image. What gives? It was VMWare to VMWare, right? Shouldn’t that work? Apparently not. After a full day and night of trying everything I could think of – Windows backups, repair disks, ImageX, you name it – I was forced to admit defeat. There would be no VM transfers for me. So what to do now?
The only solution was to partition the disk and use Bootcamp to run Win2k8 on a physical partition. Ok, great, but how in the heck was I going to get all my apps – and specifically my MOSS farm with tons of custom lists, web parts, app pages, and other such things that are mission critical – from one to the other? I spent the next two days, when I should have been at the pub sampling all the local refreshments (and most of you know what a weakness I have for good beer), trying to copy, clone, image, backup, restore, and manhandle the data off my virtual disk and onto my new Bootcamp partition. Nothing, and I mean nothing, worked. It didn’t help that I was working with one hand tied behind my back – I couldn’t very well run down to the local Fry’s and stock up on external drives and software utilities. Our offices are in the middle of the Cotswolds and there’s only one computer store anywhere close, so you can imagine the prices they charge to a captive audience. All I had was my original Vista disk, some CD-RW’s, my Mac disk and a portable drive with all my backups on it. Kinda like survivor, only with a British accent and pocket protectors.
In sheer frustration I just gave up and re-installed everything – Office, Visual Studio, MOSS, the whole shebang. Luckily, I keep all my MSDN ISO’s on my backup drive for emergencies like this, so I managed to get everything mostly up and running just in time to catch my plane back to the States (which I almost missed, thinking I was coming home on a Tuesday when, in fact, American Airlines was convinced that Monday was the correct day – I only caught the mistake late Sunday night).
Okay, at least I could watch movies and get my slides done for the upcoming Best Practices conferences in February and April. But I still had a problem – I needed to get MOSS restored and it would really be nice if I could use that shiny new SSD drive I had my Vista image on to make my VM’s really snap. So began another week of cursing and fist pounding. My Mac OS X volume refuted all attempts to make a backup image – SuperDuper!, CarbonCopy, CopyCatX, Disk Utility – they all failed me in one way or another (but huge props to Dave Nanian at Shirt Pocket software; even though I couldn’t get SuperDuper! to ever run a clean backup, Dave answered my frantic emails on a Sunday evening with supreme patience). What made it all the worse was that I was expecting an Acronis-type experience under Mac OS – just point the thing at my backup drive and it would make a sector-by-sector copy, shrinking or enlarging partitions as necessary. Oh, no, Charlie Brown – it don’t work that way in Mac land. Only drives the exact same size or larger will do – no stepping down at any time (the biggest SSD’s you can get at the moment are 128GB and the MBP came with a 320GB drive; stupidly, I didn’t partition it correctly the first time so resizeVolume wouldn’t shrink it for me).
Finally – and I can hear Spence snickering in the background – I was found this little gem from Adrian Hoe about using Bash commands to do the clone; to my complete amazement it worked like a charm. Strangely, this should be the exact same thing the Restore function in Disk Utility is doing but apparently there’s a difference ’cause this ran through perfectly the first time ’round. Now that I had my Mac volume on the first SSD partition it was only a matter of using WinClone to move my Bootcamp partition over. Voila! Now we’re getting somewhere.
As with any long and sordid tale, this one doesn’t end there. Once I did manage to make my fancy SSD my primary disk I realized that it was a bit flaky. I had noticed before that it would sometimes fail to initialize and boot into Vista but I blamed it on the hardware – a few power cycles and it would come back to life. But now that it was running Leopard as the primary OS I figured that nonsense would go away. Au contraire, mon frere. I received my first introduction to the Mac version of "Missing or Invalid Boot Record" – the dreaded circle-slash. Crap. Then I noticed that Win2k8 would freeze randomly when I dual-booted into it directly (but never when it was running as a VM). Double crap. All that work and I had to go back to the original Mac disk anyway – I just can’t have the drive bomb out on me in the middle of a presentation.
Many creative curses later I was basically back to where I started from, only with the added aggravation of having to learn Leopard and Office 2008, along with all the other Mac weirdness (do we really need to download, launch, mount, expand, and copy just to install an app? Can’t we just have a nice .exe like those lucky Windows folks? Please???). And why, oh why, does Control+C work in some places, Command+C in others, but never Control+V, always Command+V? I’m not sure I’ll ever get the hang of this.
One last hurdle to clear was getting MOSS restored (that’s right – all that spinning of wheels and I still couldn’t do any SharePoint development). Well, that was a real peach, let me tell you. First of all, if you are under the assumption that the SharePoint backup and restore utilities are really full fidelity, boy am I gonna burst your bubble. Oh, sure it gets all your web apps and content database just fine, but not your solution packages or IIS settings. Remember that if you ever have to do any serious disaster recovery. And, should you be so silly as to use host header web applications to share a single port, you’re gonna be sent to bed without any supper when you try to restore, you little miscreant.
Whoever wrote the restore operation for STSADM needs a baseball bat applied liberally to the side of their head. This genius made the brilliant decision, no doubt by committee, to completely ignore any custom directory names you might have applied when configuring your web applications and force each app on a port into the C:\inetpub\wwwroot\wss\virtual directories\<Port Number> folder. That’s right, boys and girls, if you have four web apps on port 80 and use host headers to identify them, storing each nicely in a directory corresponding to the app name, you will be smacked down during a restore operation with the lovely and oh-so-informative SPUpdatedConcurrencyException error. STSADM will try to force each one into the same folder and the restore will bomb. To workaround this, you must change each web app to run on a different port, then go into IIS when it’s over and set the host headers; plus, if you want to use URL’s that don’t have the port number attached, you’ll need to set up alternate access mappings for each one as well.
Not enough fun for you? Nah, me neither – somehow the restore operation failed to link up all the content database correctly. It put them into SQL and attached them to the web apps but they didn’t show up in Central Administration and no site collections would load. Great. Just because I needed to do it anyway, I installed the Infrastructure Update and some various hotfixes; which, naturally, didn’t install cleanly and I had to fight with post-upgrade errors, PSCONFIG, and more arcane STSADM commands. The Config Wizard finally completed after the August cumulative update. In with my solution packages and all is done. I’ll declare that a victory and call it a day.
Sigh – I suppose I deserve all this punishment for my various and multiple sins but did it all have to happen within a three week period? In the middle of it all I missed a piss-up with Steve Smith, Spence, Nick Swan, and the Drunken Coder himself in London. Word to the wise – don’t try and run Vista natively on a new MacBook Pro or count on moving a SharePoint backup seamlessly from one farm to another unless you have tons of time, a high pain tolerance and lots of whisky. Definitely lots of whisky. Speaking of which, I believe a wee dram or two is definitely in order…