VirtualBox

From Gentoo Wiki
Jump to: navigation, search
External resources

VirtualBox is a software that allows the user to run a guest operating system inside of a host operating system, without having to reboot.

Terminology

Host operating system - the computer you are actually working on. (i.e. Gentoo Linux)

Guest operating system - the operating system you want to install or have installed within the VirtualBox emulation environment. (i.e. You want to use MS Windows from within your Gentoo Linux box.)

VirtualBox Guest Additions - drivers for the Guest Operating system. These drivers provide smoother operation with the Host operating system compared to the standard drivers installed by the Guest operating system.

Installation

You can choose between a source based package (app-emulation/virtualbox) and a binary package (app-emulation/virtualbox-bin). The binary version is available so 64bit no-multilib users can use VirtualBox, too. The binary package contains some extensions which are not available in the source package. To get identical functionality with the source package, emerge it with the extensions USE flag being enabled.

The qt4 USE flag controls installation of the graphical user interface (GUI) which is enabled by default.


→ Information about USE flags
USE flag Default Recommended Description
additions Yes Yes Install Guest System Tools ISO
alsa No Yes Adds support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
doc No Adds extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
extensions No Yes Install extension module packages
headless No Build without any graphic frontend
java No No Adds support for Java
opengl Yes Adds support for OpenGL (3D graphics)
pam No Yes Adds support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
pulseaudio No Adds support for PulseAudio sound server
python No Adds optional support/bindings for the Python language
qt4 Yes Yes Adds support for the Qt GUI/Application Toolkit version 4.x
sdk Yes Enable building of SDK
vboxwebsrv No No Build and install the VirtualBox webservice
vnc No Enable VNC (remote desktop viewer) support
root # emerge --ask app-emulation/virtualbox


Or

→ Information about USE flags
USE flag Default Recommended Description
additions Yes Yes Install Guest System Tools ISO
chm Yes Install kchmviewer binary to enable online help (in MS CHM format)
headless No Install without any graphic frontend
python No Adds optional support/bindings for the Python language
rdesktop-vrdp No Install the rdesktop client integration
sdk No Enable building of SDK
vboxwebsrv No No Install the VirtualBox webservice
root # echo "app-emulation/virtualbox-bin PUEL" >> /etc/portage/package.license
root # emerge --ask app-emulation/virtualbox-bin

Windows Guests

Enable the additions USE flag when installing VirtualBox on the host system to get the ISO image which contains all necessary Windows guest drivers.

Linux Guests

If you want to run Gentoo as a guest system simply run the following command in the Gentoo guest system:

root # emerge --ask app-emulation/virtualbox-guest-additions

To enable the shared clipboard, display resizing, seamless mode and drag & drop make sure that the user running the X.org session belongs to the "vboxguest" group.

root # gpasswd -a <user> vboxguest

Changes will not take effect until the user re-logins.


If you want to install other Linux distributions as guest system please refer either to the distribution's documentation on how to install the drivers needed by VirtualBox or consult the official VirtualBox documentation.

Running

Users will not be able to run and use VirtualBox if they are not a member of the "vboxusers" group.

root # gpasswd -a <user> vboxusers

Changes will not take effect until the user re-logins.

Load the required driver module from app-emulation/virtualbox-modules:

root # modprobe vboxdrv

Optional modules:

root # modprobe vboxnetadp
root #
modprobe vboxnetflt

Load the modules upon boot. If you are using OpenRC, edit /etc/conf.d/modules:

File/etc/conf.d/modules

modules="... vboxdrv vboxnetadp vboxnetflt ..."

If you are using systemd:

root # echo 'vboxdrv' >> /etc/modules-load.d/virtualbox.conf
root #
echo 'vboxnetadp' >> /etc/modules-load.d/virtualbox.conf
root #
echo 'vboxnetflt' >> /etc/modules-load.d/virtualbox.conf

Usage

There are many options which can influence behavior and performance of your virtual machines. If you don't know what these options are doing, leave them to their defaults. You can even make your virtual machines unbootable when setting wrong options.

Here's a list of options that are safe to use:

  • Host I/O cache can safely be enabled for all virtual storage controllers.
  • In case your host system's CPU supports hardware virtualization, enable the 'VT-x/AMD-V' option. It can drastically increase performance of your virtual machines.

Common Problems

Performance problems; Microsoft Windows Guest

  • Do not enable APIC for Microsoft Windows guests! VirtualBox also has a bad habit of enabling this option at it's own will. The fix is to select the System Processor Driver (i.e. ACPI Uniprocessor PC) and manually upgrade (change) to the Advanced Configuration and Power Interface (ACPI) PC. Shutdown (not reboot), restart VirtualBox and ensure APIC is off, then boot the guest. As usual, always make a backup before playing with Windows.
    Note
    Not true for all Windows operating systems. Windows XP and Windows 7 play nice with APIC as long as they got installed with APIC being enabled.
  • Using a SATA controller, it is necessary to choose the right driver version from Intel's SATA drivers. Using a wrong version will cause performance problems along with blue screen errors! Refer to this post for a list of working SATA drivers.
  • Slow performance using SATA driver? Only use the SATA controller interface for the hard disk. Remove any CDROMs from the SATA controller and place them onto a IDE Controller.
    Note
    This can be a problem of wrong SATA-driver version, too.
  • When installing the VirtualBox Guest Additions into your Windows operating system, do not select to enable Direct3D (experimental) option as this will cause resizing problems and other anomalies. Also, you need to install the Guest Additions from Safe Mode.
  • Don't use the ICH9 chipset with Windows. It's still considered experimental. It can cause temporary freezes of the whole VM when used with Windows7. See this post for more informations.

Performance problems; Linux Guest

  • When running Gentoo as a guest system make sure you start the virtualbox-guest-additions init script during bootup.

Kernel driver not installed

VirtualBox-Error: Kernel driver not installed

This may occur after building a new kernel and causes an error message:

Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing
'/etc/init.d/vboxdrv setup'
as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.
Solution: Rebuild the VirtualBox kernel modules with
root # emerge -1 @module-rebuild

You may need to restart your computer to validate the change.

Nonexistent host networking interface, named 'vboxnet0'

root # VBoxManage hostonlyif create

See also

External resources