Installing and using VirtualBox on CentOS
VirtualBox (VB) development is progressing rapidly and the information on this page may be outdated. The Linux Downloads page now has yum repo configs. Unfortunately the RPM packages do not handle major version upgrades gracefully. The built-in update notifications when running VB are also deficient and will only notify of minor updates (i.e. 5.1.6->5.1.8), if that, and not more major version upgrades (i.e. 4->5). For now, older versions should be uninstalled before installing a new major version or the package upgrade will encounter RPM conflicts. The VB user manual should be read carefully; however, at this writing it does not do a good job of addressing RPM installations. See the VB site for the latest details. The good news is that the new versions have significant improvements and new features, and backwards compatibility with existing VMs has been excellent. |
VirtualBox-7.0 (VirtualBox-7.0-7.0.10_158379) and VirtualBox-6.1 (VirtualBox-6.1-6.1.46_158378) is currently available and supported. To get full 7.0/6.1 functionality you may also need the VirtualBox Extension Pack which provides support for USB 2.0/3.0 devices, and RDP and PXE boot for Intel cards. |
See CentOS as a Guest OS in VirtualBox for information about using CentOS as a VB guest.
See also this Red Hat Developer article on VirtualBox.
Please note that VirtualBox is a product of Oracle Corporation. It is neither provided nor supported by the CentOS Project, although questions may be answered at the Fora or on the virtualization mailing lists.
Contents
1. What is VirtualBox?
VirtualBox is a set of x86 virtualization products for various OS platforms. It is a machine/hardware virtualization product or hypervisor, similar in function to VMware Server, Parallels Workstation, QEMU, KVM and Xen. It can support a variety of guest operating systems including but not limited to Windows (Server 2003-2012, Vista, 7, 8 and 10), DOS/Windows 3.x, Linux (2.4, 2.6 and 3.x), Solaris/!OpenSolaris and OpenBSD. Its proponents claim it to be "the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL)".
VirtualBox is available on a variety of platforms in "native" packages. This includes i386 and AMD64 (x86_64) RPM packages for RHEL5/RHEL6/RHEL7 that should work on CentOS-5/6/7 (or Scientific Linux and other RHEL derivatives), as well as .deb packages for Debian, Ubuntu and derivatives, Mac OS-X, Windows, Solaris & OpenSolaris and as source.
2. Why use VirtualBox?
While not as efficient as operating system-level virtualization based on a modified Linux kernel like Xen, KVM, OpenVZ, or Vserver it is easy to install and use. Benefits include:
- Available in RPM packages
Active community support
- Runs a variety of guest OS's
- Good access to hardware including sound, USB, and serial ports
- Available on a number of host OS's
- Allows running Redmond OSs and applications without messing up your computer or dual-booting
3. Installing VirtualBox
The (VirtualBox) website has a lot of quality documentation including:
- End-user documentation
- Technical documentation
- Source code repository timeline
- List of changes (changelog)
This article will briefly cover the installation process. Both i386 and AMD64 (x86_64) versions are available.
You will need to be the root user for the following tasks. Login to a root shell or "su -" in a terminal window.
Download the RHEL repo config.
- Note: As an alternative, you may choose to download and install individual RPMS rather than configuring the repository. That procedure is documented on the VB web site and will not be covered here.
cd /etc/yum.repos.d wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
- Optionally add a line "enabled=0" if you do not want the repository to be enabled by default. This will require adding "--enablerepo virtualbox" to yum commands to access the repository.
The installation of VB will require the building of kernel modules. If DKMS (Dynamic Kernel Module Support) is installed it will be used and will simplify kernel upgrades. Installing DKMS from the EPEL repository is recommended before installing VirtualBox. Don't forget to configure the yum-priorities plugin. Installing DKMS will pull in required development dependencies.
yum --enablerepo=epel install dkms
A forum user notes that all but the latest version of DKMS from Dell may be buggy. |
If DKMS is not used and the development environment and kernel source are not already installed:
yum groupinstall "Development Tools" yum install kernel-devel
You may also choose to only install a minimum set of individual development tool packages (at least gcc and make are required) rather than the groupinstall which some may consider overkill. Replace "kernel-devel" with "kernel-PAE-devel" if using a PAE kernel. If you are not using a standard CentOS kernel, you must acquire and install the source for your kernel from wherever you got the kernel. Do not try to use VirtualBox with a Xen kernel, nor to install a Xen kernel in a Guest OS.
- Note: For CentOS as a Guest OS the same packages are used to build the "Guest Additions" drivers.
Install the RPM:
yum install VirtualBox-5.2
The installer will create the "vboxusers" group and create the necessary kernel modules if the development environment has been correctly configured.
For each "username" that will run VirtualBox:
usermod -a -G vboxusers username
or use the GUI Users and Groups tool.
4. Running VirtualBox
Run VB as a user that is a member of the "vboxusers" group. For VirtualBox-4.0 or 4.1 you may install the optional VirtualBox Extension Pack from a running instance of the GUI interface via the File / Preferences / Extensions menu. The root password will be required for this operation.
From a terminal command line enter "VirtualBox &"
In GNOME or KDE run under "Applications / System Tools / Oracle VM VirtualBox"
Accept the license, optionally register, and create a new VM. VMware virtual machines should be usable with Virtual box. Google "vmware to virtualbox" for information.
Help is available from the menu or online.
5. Making USB Work in VirtualBox
VirtualBox requires the user have write access to "usbfs" devices for USB access. As root perform the following:
mkdir /vbusbfs echo "none /vbusbfs usbfs rw,devgid=$(awk -F : '/vboxusers/ {print $3}' /etc/group),devmode=664 0 0" >> /etc/fstab mount -a
- If running CentOS as a guest OS in a VM the same development and DKMS packages should be installed in the VM prior to installing VBox Guest Additions.
VB users may also be interested in the phpVirtualBox implementation of the VirtualBox user interface written in PHP.
Please do not email the CentOS mailing lists (except CentOS-virt) or visit the CentOS IRC channel with VirtualBox related questions. Use the VirtualBox community support resources or the CentOS Fora instead.
This page was initially created by PhilSchaffner and is currently maintained by ChristophGaluschka. Other Wiki contributors are invited to make corrections, additions, or modifications.