running oracle virtualbox on macos 11.6 big sur

I run Linux virtual machines on my MacBook Pro. The MBP is a mid-2019 machine with an i9, 64 GiB of memory, and 4 TB of SSD. It is a powerful developer machine that has been in constant use since I purchased it last June.

One of the tasks I use the MBP for is running Linux virtual machines. For that purpose, there are two well-known tools; Oracle’s VirtualBox, which is open source and free, and Parallels Desktop, which is commercial. Both are capable of running most Linux distributions I care about, and Parallels is known for running Windows, and rather seamlessly, on the macOS desktop. The only problem is I have no need to run Windows as a VM, as the critical application Office is available as a native macOS application.

One major difference between VirtualBox and Parallels is that VirtualBox appears to need a kernel extension installed for its VMs to operate. VirtualBox ran just fine until I updated macOS to 11.6. It ran without issue on every release before that. When I stepped up to Big Sur 11.6, VirtualBox VMs would no longer boot.

Every time I would attempt to start a VirtualBox VM, I would get something like the following:

along with this:

Very annoying to say the least. I finally solved the problem thusly:

  • Boot the MBP into macOS recovery mode following these directions: https://support.apple.com/en-za/HT201314
  • When in recovery mode, open a terminal (Utilities > Terminal), using the menus on the upper left.
  • In the terminal execute csrutil enable --without kext
  • In the terminal execute spctl kext-consent disable

Then reboot out of recovery mode and back into macOS. The next time you attempt to start a VirtualBox VM, you will succeed.

I ran into another issue when I upgraded from VirtualBox 6.1.26 to 6.1.28. Under 6.1.28 I ran into the same VM boot issue, even though the documented changes were still in place. When I downgraded back to 6.1.26 it all started to work again.

If you’re wondering why I just don’t run everything under Parallels, it’s because Fedora and some of the other distributions I need to run don’t work very well with Parallels. The only distribution that works without issue under Parallels, regardless of version, is Ubuntu or Ubuntu derived distributions. Most of the time I’m quite OK with Ubuntu, but every now and then I need to I need to dip into Fedora.

My final thoughts on all of this: I spent six grand on this MBP. It’s my MBP, and as far as I’m concerned it will do what I want it to do, not what someone else feels it should be doing. Installing and running a kernel extension on macOS should not be a problem, and blocking it from installing is laziness on someone’s part who’ve decided perhaps it’s too much trouble to make sure that capability continues to work from release to release. I’m sure that trying to get a kernel extension running on top of Apple Silicon probably doesn’t work at all, which is why I’m not rushing out to get a new machine using it. I’m not interested in finding out that I can no longer dive into the internals and do what I want it to do.

fedora 32

I downloaded the latest desktop release of Fedora from https://getfedora.org/en/workstation/download/ the other night and installed it in a VirtualBox VM. It installed without any hassles whatsoever, almost as if it was based on Ubuntu.

When it booted into the desktop the first time after installation I was able to pretty much get right to work, checking out its various features and capabilities. Out-of-the-box so to speak it was able to mount the shared macOS folder defined in its VirtualBox VM definition. When I added my Fedora account to the vboxsf group, I was able to see all the files in the shared folder. This was achieved without having to install the VirtualBox guest additions. It looks like the kernel work with VirtualBox shared folders really works, which is amazing after all this time.

The only reason I might want to install the VirtualBox guest additions is to gain the ability to have the Fedora desktop resize when I resize the VM window. Right now it won’t do that. I have it configured for 1680 x 1050 scaled to 150% (this is a MacBook Pro with a 15″ Retina Display). The Fedora desktop fits the MacBook screen quite well, and the mouse cursor moves seamless between the MacBook desktop and the Fedora stock Gnome desktop. I can’t think of a really good reason to install the guest additions so I’ll just leave it as is for the time being.

The Fedora desktop is also running with the Wayland manager/compositor, and I discovered it runs much smoother than either other desktop manager (classic Gnome and Gnome with X.org).

I’m also quite pleasantly surprised by the version of the tools that comes with this distribution. GCC/G++ are both at version 10, as is Clang/LLVM. Python and Git are also right at the top, release-wise. I managed to install Visual Studio Code right from the Fedora repositories without having to add any other repos to def. That also included htop. I have yet to not be able to install anything I might need. I even went looking to see what versions of Java I might be able to install, and I found Java 8, 11, and 14. All of these are OpenJDK, not Oracle, which makes me quite happy. I’ve not installed them yet, but I know I can if I need them.

All joking aside this looks to be one of the best Fedora releases I’ve touched in years. I haven’t been this satisfied with Fedora since 2013, when I installed Fedora versions 16, 17, and 18 starting late 2011 on a bog standard Dell laptop where I was working at the time. When I took a look at Fedora again, it was 2014, and it was an attempt to install on a VirtualBox VM. From that point things were touchy and I just stayed with Ubuntu. But now I have to admit its pretty (shockingly) good. This particular Fedora VM is a keeper — so far.