VBoxHeadless Running Virtual Machines With VirtualBox On A Headless CentOS 6x Server Rumi, June 6, 2014 Preliminary Note I have tested this on a CentOS 6.2 server (host system) with the IP address 192.168.0.100 where I’m logged in as a normal user (user name vbox in this example) instead of as root. If you only have a root account, but no normal user account, create one as follows (user admin, group admin)… # groupadd vbox # useradd -d /home/vbox -m -g vbox -s /bin/bash vbox … create a password for the new user… # passwd admin … and log in as that user. Installing VirtualBox To install VirtualBox 4.1 on our CentOS 6.2 server, we need root privileges, therefore we run $ su Then we install the dependencies for VirtualBox 4.1 as follows: # yum groupinstall ‘Development Tools’ # yum install SDL kernel-devel kernel-headers dkms Typicall dkms is not avaialble on the yum repo, download the dkms here- http://linux.dell.com/dkms/ With the last command we have installed the kernel headers of our currently used kernel. The headers are located in the /usr/src/kernels/ directory, but it is likely that its directory is not named <kernel_version>-<architecture>, but has a different name so that the Virtualbox kernel module cannot be built later on because the expected kernel headers directory cannot be found. We are going to correct that now: Check your kernel version… # uname -r [root@server1 ~]# uname -r 2.6.32-220.el6.x86_64 [root@server1 ~]# This means that there should be a directory called 2.6.32-220.el6.x86_64 in the /usr/src/kernels/ directory. We can check this now: # cd /usr/src/kernels/ # ls -l [root@server1 kernels]# ls -l total 4 drwxr-xr-x 22 root root 4096 Jun 25 17:30 2.6.32-220.23.1.el6.x86_64 [root@server1 kernels]# As you see, I have the directory 2.6.32-220.23.1.el6.x86_64, but not 2.6.32-220.el6.x86_64. Therefore we create a symlink called 2.6.18-238.el5-x86_64 that points to 2.6.18-238.9.1.el5-x86_64: # ln -s 2.6.32-220.23.1.el6.x86_64 `uname -r` Next download and register the VirtualBox public rpm key: # wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc # rpm –import oracle_vbox.asc # rm -f oracle_vbox.asc Now we enable the VirtualBox CentOS repository on our system: # cd /etc/yum.repos.d/ # wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo We can now simply install VirtualBox 4.1 as follows: # yum install VirtualBox-4.1 If the installation is successful, the output should end as follows: […] Running Transaction Installing : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64 1/1 Creating group ‘vboxusers’. VM users must be member of that group! No precompiled module for this kernel found — trying to build one. Messages emitted during module compilation will be logged to /var/log/vbox-install.log. Stopping VirtualBox kernel modules [ OK ] Uninstalling old VirtualBox DKMS kernel modules [ OK ] Trying to register the VirtualBox kernel modules using DKMS [ OK ] Starting VirtualBox kernel modules [ OK ] Installed: VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1 Complete! [root@server1 kernels]# (If the installation fails because the correct kernel headers directory cannot be found, output will end as follows: […] Running Transaction Installing : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64 1/1 Creating group ‘vboxusers’. VM users must be member of that group! No precompiled module for this kernel found — trying to build one. Messages emitted during module compilation will be logged to /var/log/vbox-install.log. Stopping VirtualBox kernel modules [ OK ] Uninstalling old VirtualBox DKMS kernel modules [ OK ] Trying to register the VirtualBox kernel modules using DKMS Error! Your kernel source for kernel 2.6.32-220.el6.x86_64 cannot be found at /lib/modules/2.6.32-220.el6.x86_64/build or /lib/modules/2.6.32-220.el6.x86_64/source. [FAILED] (Failed, trying without DKMS) Recompiling VirtualBox kernel modules [FAILED] (Look at /var/log/vbox-install.log to find out what went wrong) Installed: VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1 Complete! [root@server1 kernels]# In this case, try to create the correct kernel symlink (as shown before) and then run # /etc/init.d/vboxdrv setup to create the VirtualBox kernel module. Now we must add the user that will run VirtualBox (admin in this example) to the vboxusers group: # /usr/sbin/usermod -G vboxusers vbox VirtualBox is now installed and ready to be used. More User Privilege: First create a system user called vbox and add it to the vboxusers group: useradd -m vbox -G vboxusers Create a password for the vbox user: passwd vbox Create the file /etc/default/virtualbox and put the line VBOXWEB_USER=vbox in it (so that the VirtualBox SOAP API which is called vboxwebsrv runs as the user vbox): vi /etc/default/virtualbox VBOXWEB_USER=vbox Next create the system startup links for vboxwebsrv and restart it: chkconfig –levels 235 vboxweb-service on /etc/init.d/vboxweb-service restart We need a web server with PHP support to serve phpvirtualbox – I’m using Apache2 here. Install Apache2 and PHP5 as follows: yum install httpd php php-mysql php-pear apr apr-util-sqlite apr-util-ldap apr-util wget Now configure your system to start Apache at boot time… chkconfig –levels 235 httpd on … and start Apache: /etc/init.d/httpd start Installing VirtualBox extension pack: Starting with version 4.0, VirtualBox has introduced so called “extension packs” and has outsourced some functionality like remote desktop connection support (VRDP) that was part of VirtualBox packages before version 4.0 into these extension packs. Because we need remote desktop connections to control our virtual machines, we need to install the appropriate extension pack now. Go to http://www.virtualbox.org/wiki/Downloads, and you will find a link to the following extension pack: VirtualBox 4.1.18 Oracle VM VirtualBox Extension Pack Support for USB 2.0 devices, VirtualBox RDP and PXE boot for Intel cards. Download and install the extension pack as follows: # cd /tmp # wget http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack # VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack (Make sure you grab the latest version from the VirtualBox web site.) Type # exit to leave the root account and become a normal user (admin) again. And then Install PHPVirtualbox and you get the GUI controller Resource: http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.1-on-a-headless-centos-6.2-server http://www.howtoforge.com/managing-a-headless-virtualbox-installation-with-phpvirtualbox-centos-6.2 http://www.howtoforge.com/perfect-server-centos-6.4-x86_64-apache2-dovecot-ispconfig-3-p4 Configurations (Linux) CentOSvirtualbox