TLDR: a) Does a DIY Fusion Drive work? b) How do you resize a .vdi VirtualBox Disk Image? c) What’s up with BootCamp conspiring against USB installs?
I’ve finally settled back in to my digital home on my upgraded 2011 Macbook Pro, I threw in a pair of new drives to both speed things up and free up space… and to clean things up massively. I used to run with two discrete drives in 4 partitions:
Disk0 – Samsung 830 128GB SSD:
– Partition 1: OS X Boot drive and select apps.
– Partition 2: Bootcamp OS partition with select apps.
Disk1 – Seagate 750 GB HDD:
– Partition 1: OS X apps and media storage, part of my User directory also resided here. ~/Desktop was left on SSD.
-Partition 2: NTFS formatted partition for bootcamp. Occasional Steam game installs went here.
But after juggling files manually for some time and hearing that versions of OS X after 10.8.3 had the necessary files to support DIY Fusion Drives, I decided to give Apple’s much lauded hybrid drive solution a spin.
Hero’s Journey: Call to Adventure
I splurged on Black Friday and bought a Seagate 600 250GB SSD and a Toshiba 1TB HDD to start fresh. I had been running pretty close to full capacity on my old setup, especially with video projects cluttering up my HDD, so increasing the size on my HDD and SSD was a breath of fresh air.
As a reminder, I’m using a: Hard Drive Caddy Tray for Apple Unibody MacBook / MacBook Pro 13 15 17 SuperDrive (Replacement Only) to fit a second drive in.
Aside from disclosure that I’m shamelessly throwing in Amazon Affiliate links, I’d like to note that the HDD caddy needed a couple of modifications to fit within my Macbook Pro more easily. I sanded down two key points on the caddy with a Dremel because they prevented it from dropping neatly into position without an distressing amount of SATA cable contortion.
Once I had installed my drives, a few quick commands in terminal fused the SSD and HDD into a single logical drive.
Installing OS X is no different on a Fusion Drive than on any other setup and flew by. My limiting factor was a lack of USB 3.0 ports on my 2011 MBP. Once that was finished, I restored about 300 GB of personal files from a Time Machine backup. I had to specify a new destination, since 3 previously mapped partitions no longer existed… Actually, I had to do a bit more trickery since Time Machine won’t even show drives/directories that don’t exist on the new machine. Shift + CMD + C (I think) will enable you to see all of your files in Time Machine.
I have to add that iCloud’s Keychain sync is killer. I know Windows 8.1 might have a similar feature (since you can tie your Outlook account to your computer and it’ll sync settings like wallpaper) but compared to Windows 7, OS X is amazingly convenient in this regard. All of my Wi-Fi networks, passwords, etc. were immediately imported from iCloud which means I don’t have to ask my friends and relatives for their WPA keys again. 😀
Death and Rebirth
Then came the first of a series of problems with BootCamp. Apple does this thing where they’ll arbitrarily decide what you can and cannot do. I suppose it’s in their DNA, but this limitation is just plain goofy (a.k.a. stupid): If your machine shipped with an optical drive, they won’t let you install Windows via USB. BootCamp Assistant is coded to provide different prompts depending on your machine.
The workaround is to edit your info.plist file to explicitly put your machine configuration on the “approved for USB” list.
Now you can create a bootable USB drive from an ISO and setup your bootcamp partitions! Yay… except when I rebooted, I didn’t see the USB as a boot option. I tried repeatedly to start the windows installer, but neither my first nor my second USB drive showed up. And the second drive had already been used by my brother to reinstall Windows on his desktop.
I suspect Apple’s EFI bootloader was designed not to play nicely with MBR format drives, and I never got around to trying the drive as a GPT, but it doesn’t matter. At that point, I angrily removed my Bootcamp partition and decided I would virtualize Windows instead.
Since my legit copy of Parallels 8 no longer worked on Mavericks (thanks for the long term support, guys…) and VMware Player is a Windows thing (VMware Fusion isn’t free…), I
decided had to go with VirtualBox.
It’s a little more cut-down compared to the other options on the market, but it’s free (as in beer). Some features like drag-and-drop between host/guest didn’t work for me, but Windows 7 worked which is the important part. I ended up having my Os X Downloads folder mounted as a network drive in VirtualBox to pass through files.
Unfortunately, I had overlooked the size of my virtual machine’s hard drive. It had been left at the default size, which meant it was pretty much useless. It was doubly stupid on my part because with a dynamically sized virtual disk image, you’re never going to waste OS X’s hard drive space by unnecessarily reserving a bunch of sectors for the VM. There’s no disk image manager built into the GUI so I had to search online for ways to resize the VDI.
A lot of people were saying that you needed to create a second VDI that was larger, mounting both on the VM, and cloning the the smaller drive to the larger drive. That seemed frankly like a terrible solution. And it turns out it was. VirtualBox includes a couple terminal commands specifically for this task.
VBoxManage modifyhd [drive] [size in MB]
In Windows the syntax may be lightly different, you may need to include the path to VBoxManage or something…
Anyhow, once you do that, you need to let Windows know there’s more free space available. On Windows Vista and later, this is easy. Just open the disk partition manager.. thingy… (it’s under Administrative tools) and expand your boot partition.
It wasn’t until I had finished setting up hundreds of gigabytes of files and applications that uncertainty began to creep into my head. Had my DIY Fusion Drive actually worked? Or was it really just a dumb CoreStorage volume masquerading as a fusion drive?
To find out, I needed to observe disk IO for each physical drive in real time. And luckily, there’s a terminal command for that.
iostat -d disk0 disk1 1
All you have to do is throw an obscene amount of I/O at your Mac and see if both drives are utilized. Since I had started out by dumping more than 250 GB of non-system files on my MBP, if my Fusion Drive wasn’t working, then all future writes would simply be dumped onto the Toshiba HDD.
First I started out with repeated 5GB read/write tests. You can see the SSD and HDD both sharing some of the I/O load (zomg they’re like Jaeger pilots j/k).
Then I tried something different. My VM’s boot time wasn’t really that great, between 30-40 seconds. It’s definitely not native, SSD-fast. But it is still better than most spinning-platter Windows machines. Was Fusion Drive caching the VDI at all? I opened up Firefox in the virtual machine while observing disk usage.
There is indeed some SSD activity as the browser opens… and then it appears that it’s immediately shunted to the HDD. But it does indeed utilize both drives, so this can be considered another success.
There are those who will say that a Fusion Drive array is actually terrible for a system because you have doubled your points of failure. But in reality, the tiny increase in risk of data loss is mitigated by the ease of recovery. With a single logical drive, Time Machine backups become super simple. Recovering apps, files, etc. becomes much less of a chore than if you had been slaving away at manually organizing your files.
System performance is still SSD-fast for the most part (except with larger files like VDIs), although I haven’t started stressing my Mac like I really want to yet. In the next few days I will be installing FCPX on my MBP again and hopefully I’ll see some improvements in project load times, background renders with proxy footage, etc.
Aside from Apple being a stupid butt-stallion about BootCamp and EFI boot (yes, I did try rEFIt and rEFInd, but couldn’t get it working), I am definitely not disappointed about my new setup.