I’ve been using OS X for a very long time, and one of the Applications that is invaluable in my day to day work is VirtualBox. It’s a great application allowing you to work with various Oracle versions and products, and I have quite a few linux VMs with differing DB versions inside them.
I’m also a bit rash when it comes to upgrading my OS X version, and with OS X Mavericks released on the 22nd of October and best of all FREE, it was a hard combination to resist. Well, resist I did for all of a morning! As I had recently upgraded to VirtualBox 4.30 I was quietly confident there would be no issues….
Oh boy, I often get into trouble with my sunny optimism.
The first issue you might hit with VirtualBox 4.30 on OS X 10.9, could be a “kernel driver not loaded” has actually been well covered in this forum posting. The script works quite well at loading drivers.
However, when I did this, I was still getting this error pop up, and no VMs starting:
This was not good. Now, I then reinstalled VirtualBox 4.30 and voila I could start a VM again. Happy days. Then, as this was on my desktop, I close it down for the evening, and come back the next day. Same issue as above, no VM’s will start. Grrrr. Once again a reinstall fixes the issue.
I knew something was getting loaded differently at boot time, than when VirtualBox was freshly installed. The forum posting above gave me a clue as to what it might be. So it was kextstat to the rescue!
kexstat will show you what kernel extensions you have running. Just like the linux lsmod command.
So I ran kextstat after a fresh a reboot:
jarneil> kexstat . . 118 3 0xffffff7f8226b000 0x43000 0x43000 org.virtualbox.kext.VBoxDrv (4.2.18) 119 0 0xffffff7f822ae000 0x5000 0x5000 org.virtualbox.kext.VBoxNetFlt (4.2.18) 120 0 0xffffff7f822b3000 0x6000 0x6000 org.virtualbox.kext.VBoxNetAdp (4.2.18) 121 0 0xffffff7f822b9000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (4.2.18) . .
So among a whole bunch of other kernel extensions there were the 4 VirtualBox modules and all loaded from the previous version I had been running before upgrading to 4.30 which was *days* before I had upgraded to OS X 10.9!
Now it was just a case of making sure this lot did not load again, in fact they clearly were not removed properly upon upgrading from 4.2.18 to 4.30.
I used locate to find out these 4.2.18 kext were being loaded from /Library/Extensions there was a directory for each kext above in there. If you read the Info.plist file for them it was clear these were the 4.2.18 versions.
After doing rm -rf on these old VirtualBox directories in the /Library/Extensions directory I can now happily reboot and *still* have my VM’s working! :D