Wednesday, September 18, 2019

A Tryst with FreeBSD as VirtualBox Host

Supratim Sanyal's Blog: Oracle VirtualBox OSE on FreeBSD
Oracle VirtualBox OSE on FreeBSD

I have been playing on and off with FreeBSD forever, but had never used it seriously as a primary hypervisor platform. Most of my time with FreeBSD has been with the derived TrueOS distribution (which has recently refocused to become a server operating system, handing off Desktop usage to Project Trident) as a deskstop operating system.

Curious to see how good FreeBSD is as a virtualization host, I wiped my Dell PowerEdge 2950 clean and installed FreeBSD 12 with Lumina desktop environment, and subsequently built and installed VirtualBox OSE, overcoming a couple of minor gotchas due to my unfamiliarity with FreeBSD:

  • The FreeBSD source code is needed to build the kernel driver for VirtualBox. Since I had skipped the source code checkbox in the installer options during installing FreeBSD, this is what I did later based on recommendations of the thriving online FreeBSD community:

# fetch`uname -s`/releases/`uname -m`/`uname -r | cut -d'-' -f1,2`/src.txz
# tar -C / -xvzf src.txz

  • Grabbed the latest FreeBSD operating system updates:
# freebsd-update fetch
# freebsd-update install
... reboot ...
# freebsd-update install

  • Grabbed the latest updates / patches to the FreeBSD ports.
# portsnap fetch update

Then, building VirtualBox for FreeBSD was just a matter of following instructions in the fabulous FreeBSD Handbook. It is important to mention here that as a prolific user of VDE (Virtual Distributed Ethernet) for connecting different hypervisors via ethernet over internet, I made sure the VDE option in the VirtualBox build configuration menu was checked.

I proceeded to test out three of my VirtualBox virtual machine guests on the FreeBSD host:
  • TrueOS (also a FreeBSD-based desktop distribution)
  • OS/2 Warp 4.5 for e-Business
  • Solaris 11.4
Virtual networking for these appliances was achieved through VDE support built into VirtualBox. I describe the VDE2-based networking environment separately in this  post.

All of them came up fine, but with a prominent difference with VirtualBox on Linux: there is no VirtualBox Extensions port to FreeBSD! As a result, a lot of the seamless screen resolution and virtual display adapter integration and flexibility is not possible with VirtualBox on FreeBSD as host. Installing the special VirtualBox guest operating-system drivers from the Guest Additions CD into the guests has no effect in terms of USB 2.0 or later, keyboard, mouse or display improvements.

The VirtualBox Extensions are a proprietary binary distribution from Oracle and unless Oracle decide to port them, there really is no way to use them on FreeBSD. Many a topic in the FreeBSD online communities lament the lack of it.

Given rock solid security and performance of FreeBSD, a VirtualBox hosting environment on FreeBSD is therefore an excellent choice for server-class operating system guests that do not rely on snazzy graphical interfaces.

TrueOS Guest on FreeBSD VirtualBox Host

SANYALnet Labs | TrueOS Guest on FreeBSD VirtualBox Host

TrueOS installs and runs just fine as a VirtualBox guest on a FreeBSD host. Unfortunately, given the lack of the Extension Pack for FreeBSD, I could not find a way to use a higher display resolution. The VirtualBox .vbox XML configuration file specifies "<Display VRAMSize="16"/>".

OS/2 Warp 4.5 for e-Business Guest on VirtualBox FreeBSD Host

SANYALnet Labs | OS/2 Warp 4.5 Guest on VirtualBox on FreeBSD Host

The OS/2 Warp VirtualBox appliance was the most troublesome to bring up on the FreeBSD host. The appliance was originally running on a Linux host, with the OS/2 VirtualBox Guest Additions installed inside it. This prevented the appliance from continuing to boot after the splash screen on FreeBSD host. I had to get into the startup menu (Press Alt-F1 when the top-left of the screen shows "OS/2") and reset to the default display driver to get it to work. Unfortunately, this means the OS/2 Warp 4.5 for e-Business desktop is limited to very few colors in a rather low-resolution display.

The .vbox configuration file for the OS/2 Warp 4.5 VirtualBox guest contains "<Display VRAMSize="32"/>". The original configuration file for the OS/2 Warp guest on Linux host contained "<Display controller="VBoxSVGA" VRAMSize="32"/>". Sadly, the VirtualBox VBoxSVGA display driver seems to require the Extension Pack, which does not exist for FreeBSD.


Later on, going into OS/2 Warp's Screen configuration tool (OS/2 Warp -> OS/2 System -> System Setup -> System -> "Screen" tab) to set the resolution to 1024 x 768 x 16777216 and reboot did bring up a higher-resolution 1024x768 desktop with 24-bit color depth (SVGA True Color).

SANYALnet Labs: OS/2 Warp 4.5 SVGA True Color display 1024 x 768 24 bit colors VirtualBox on FreeBSD Host

Oracle Solaris 11.4 on FreeBSD VirtualBox Host

SANYALnet Labs | Oracle Solaris 11.4 running on VirtualBox on FreeBSD 12 Host

Surprisingly, the Solaris 11.4 guest runs in a high-resolution high-color display, although the VirtualBox .vbox configuration file has a simple "<Display VRAMSize="12"/>". The default VBoxVGA graphics controller used for Windows versions before Windows 7 and for Oracle Solaris turns out to work great on FreeBSD hosted VirtualBox Solaris 11.4 guest.


  1. Thanks for this very practical article.

  2. What operating systems are you successfully running inside virtualboxes on FreeBSD and how are they performing?


"SEO" link builders: move on, your spam link will not get posted.

Recommended Products from Amazon