22.3 FreeBSD as a Host OS

For a number of years, FreeBSD was not officially supported as a host OS by any of the available virtualization solutions. Some people were using older and mostly obsolete versions of VMware (like emulators/vmware3), which utilized the Linux® binary compatibility layer. Shortly after the release of FreeBSD 7.2, the Open Source Edition (OSE) of Sun's VirtualBox appeared in the Ports Collection as a native FreeBSD program.

VirtualBox is an actively developed, complete virtualization package, that is available for most operating systems including Windows®, Mac OS®, Linux and FreeBSD. It is equally capable at running Windows or UNIX® like guests. It comes in two flavors, an open source and a proprietary edition. From the user's point of view, perhaps the most important limitation of the OSE is the lack of USB support. Other differences may be found in the “Editions” page of the VirtualBox wiki, at http://www.virtualbox.org/wiki/Editions. Currently, only the OSE is available for FreeBSD.

22.3.1 Installing VirtualBox

VirtualBox is available as a FreeBSD port in emulators/virtualbox-ose, and may be installed using the following commands:

# cd /usr/ports/emulators/virtualbox-ose
# make install clean

One useful option in the configuration dialog is the GuestAdditions suite of programs. These provide a number of useful features in guest operating systems, like mouse pointer integration (allowing the mouse to be shared between host and guest without the need to press a special keyboard shortcut to switch) and faster video rendering, especially in Windows guests. The guest additions are available in the Devices menu, after the installation of the guest OS is finished.

A few configuration changes are needed before VirtualBox is started for the first time. The port installs a kernel module in /boot/modules which must be loaded into the running kernel:

# kldload vboxdrv

To ensure the module always gets loaded after a reboot, add the following line to /boot/loader.conf:

vboxdrv_load="YES"

Versions of VirtualBox prior to 3.1.2 require the proc file system to be mounted. This is not needed in recent versions, which utilize the functions provided by the sysctl(3) library.

When using an older version of the port, follow the instructions below to make sure proc is mounted properly:

# mount -t procfs proc /proc

To allow this setting to persist reboots, the following line is needed in /etc/fstab:

proc   /proc   procfs  rw  0   0

Note: If an error message similar to the following is observed when VirtualBox is run from the terminal:

VirtualBox: supR3HardenedExecDir: couldn't read "", errno=2 cchLink=-1

The most likely culprit will be the proc file system. Please use the mount command to check whether it is mounted properly.

The vboxusers group is created during the installation of VirtualBox. All users that need access to VirtualBox will have to be added as members of this group. The pw command may be used to add new members:

# pw groupmod vboxusers -m yourusername

To launch VirtualBox, either select the Sun VirtualBox item from your graphic environment's menu, or type the following in a terminal:

% VirtualBox

For more information on configuring and using VirtualBox, please visit the official website at http://www.virtualbox.org. As the FreeBSD port is very recent, it is under heavy development. For the latest information and troubleshooting instructions, please visit the relevant page in the FreeBSD wiki, at http://wiki.FreeBSD.org/VirtualBox.