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.

No comments:

Post a Comment

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

Recommended Products from Amazon