Tuesday, February 17 2015

Virtualizing my dead MacBook Pro

My laptop died recently after 5+ years of loyal service, and between the fact that pretty much all the Macs are due for a refresh soon, that I only reluctantly upgraded to Mountain Lion a while back and have no desire to migrate my very stable environment to the iPad-and-Helvetica beta known as Yosemite, and that I just don’t want to spend $3-4K right now, I had the office buy me one instead. My official work laptop had just turned 8 years old, so it seemed a reasonable request.

They didn’t want to spend $3-4K either, so now I’ve got a 13-inch Retina MacBook Pro with a Core i5 and 512GB of SSD rather than the i7 with 1TB that I wanted. Got the 16GB of RAM, at least, which makes it possible to allocate 6-8GB for a VMware session containing my old hard drive. This allows me to split off my work and personal environments (which wasn’t a problem when I owned the hardware…). I’m waiting on a new USB3 enclosure for my old 1TB SSD, so at the moment I’m running the virtual on a Western Digital 2TB USB3 drive, and the spinning disk makes things take a bit longer than I’d like. Fully functional, though.

I have only a few things to complain about migrating my old environment into VMware Fusion:

  1. Added: vmware-vmx can take several minutes to exit after suspending the virtual machine and completely exiting VMware Fusion; this prevents me from ejecting the external drive. Specifically, the logs show that “pagefile sync to disk” starts running after the GUI shows the virtual as suspended, and doesn’t finish until 2-3 minutes later; the GUI doesn’t seem to know about this, and cheerfully exits.
  2. random resolution changes every time I switched between fullscreen and windowed (fixed by manually editing the preferences file to include pref.autoFitGuestToWindow = “FALSE” and pref.autoFitFullScreen = “stretchGuestToHost” and then forcing it to use the non-Retina screen resolution).
  3. iTunes crashes immediately (known problem with workaround: sudo nvram boot-args=’vmw_gfx_caps=0’).
  4. Photoshop CS5.5 doesn’t seem to be working correctly; the most obvious flaw is the lack of item highlighting in menus. Illustrator seems to be fine, though. (update: the iTunes workaround also fixes Photoshop)
  5. Aperture doesn’t work, because it spits on the emulated graphics card.
  6. collision between real and virtual Mission Control hot corners in fullscreen; not much I can do about that one, it seems.
  7. installation hell: I needed a Mac virtual to bootstrap the copy of my old drive into VMware container format, and every single one of the painstakingly-saved installers I have for Lion, Mountain Lion, Mavericks, and Yosemite failed at the end of the install. Re-downloading Mountain Lion fixed that, “somehow”, which led to the next problem, which was incredibly slow copy speeds in SuperDuper. The trial copy of Carbon Copy Cloner worked, although it was originally going to take forever, too, because of a Yosemite bug that I had to work around.
  8. The Yosemite bug: if you create your user account as part of the Yosemite installation, and link it with iCloud, then a mandatory security policy is set that forces screen-locking after five minutes of idle time. This cannot be disabled, even by shutting off iCloud and breaking the link to the account. Performance of your VMware session goes to hell when the screen is locked, which I consider another OS bug. There are only two fixes: create a new user account that has never known the whip-hand of iCloud, or install Caffeine from the app store to fake out the idle timer.
  9. General Mac cruftiness: far too many preferences are tied to your hardware ID. Some of the stuff I had to reconfigure was just stupid.

I’ve migrated most of the work stuff over to the physical machine already, and with Homebrew and Perlbrew I’m almost fully functional again, and no longer need to carry a Mac Mini back and forth every day. I need to carry an external drive now, though, along with Thunderbolt-to-Ethernet and Thunderbolt-to-Firewire adapters. And a USB optical drive for those Special Occasions…