Sun (Now Oracle) VirtualBox: An Observation
Ok, I recognize and greatly appreciate the tremendous contributions of open source software. I really do. I use it every day, and have done so for many years. I’m a Linux person from the word go. But, I work for a Windows Shop. All Windows, All The Time. So, to fill out my time sheet in order to get paid, or to follow all the Track Changes in a Microsoft 2007 proposal document, I have to run Windows, because the company I work for uses 100% Windows software to run their business.
I accept that. And to ensure that I can fill out my time sheet, and track all those changes in MS Word documents, I run Windows in a virtual machine. (As an aside, I also use Open Office, have done so for years, but OO is not 100% compatible with MS Word. It’s also not always too swift with track changes, and I cannot count the hours I have wasted trying to make an OO Presentation look like anything other than the dog’s dinner when viewed in MS Power Point.)
Back to the issue: for my virtual machine, I used to use VMWare, but I switched over to Sun (now Oracle) VirtualBox several years ago. Generally, I’ve been quite happy with VirtualBox. I run the latest patched version of Windows XP in it; it’s got 2-D hardware acceleration, sound, virtual networking etc., so you basically can’t tell that you’re on a virtual machine when you’re using it.
Today I ran up against one of those apparently persistent, long-lived bugs in VirtualBox that threatens to derail my productivity for at least a few more hours. Here’s the background: I created the VirtualBox VM that I am currently using about 3 years ago. At that time, it seemed like a good idea to use a fixed 10GB virtual disk drive for the XP C: drive in VirtualBox when I was building it. Don’t ask why, it just seemed like a good idea at the time.
It turns out though that in the three years that I’ve been using this virtual disk image, successive software installs and upgrades have filled my virtual drive C: all the way up to the brim. I noticed that my automatic SP2 upgrade to MS Office 2007 kept failing because there is not enough space left on the device. I needed a bigger virtual disk.
After a fairly extensive search, I found what appeared to be just the ticket. Someone else who had experience this problem figured out a fix and then took the time to write it up for others to use (thanks, Nick!) Here’s the link, which describes nicely how to copy a virtual system disk over to a larger virtual system disk.
Oh, and here’s the catch:
Remove any snapshots you may have – VirtualBox can go a bit wonky when re-sizing a VDI with snapshots attached (thanks to Darren for pointing this one out).
How’s that a catch, you ask? Well, it turns out that there has been a bug or two in VirtualBox for years that can (usually does, apparently) prevent a user from deleting snapshot files in virtual machine.
Yes, I use snapshots, why wouldn’t I? Snapshots allow you to roll back to a previous instantiation of your VM. Let’s say your Windows VM gets a virus. No problem: roll back to the snapshot you took a couple of weeks ago. No more virus. Now patch against that particular virus.
Bottom line: I’m now unable to successfully copy my too-small virtual drive C: over to a larger disk, because the resultant copy is, indeed, wonky.
Now, let me make it perfectly clear: I am not complaining about the maintainers of Sun (now Oracle) VirtualBox. It’s free software, I’m grateful to have it. It’s generally an excellent product. I’d like to point out from the perspective of being a developer and maintainer of free software myself (see this previous LJ article for a description of one of my FOSS packages): producing and maintaining Open Source Software is a royal pain in the Kazoo. You are always working with limited resources, and all you ever seem to hear is complaints.
Let me therefore say, “Thanks, VirtualBox developers and maintainers for getting us this far.” I'm sure you already have plenty of Kazoos to deal with. I’ll be happy to figure out a meatball surgery approach to get myself out of this latest Catch-22. And then I’ll write about the solution, too.