VirtualBox Kernel Modules – Unable to Install VirtualBox Due to Missing Kernel Module


I am trying to install VirtualBox on my Ubuntu.

I first tried to sudo apt-get install virtualbox-ose in a terminal, but after the configuration step, it fails with an error:

No suitable module for running kernel found
When proceeding with starting virtualbox, I get this error:
WARNING: The character device /dev/vboxdrv does not exist.
Please install the virtualbox-ose-dkms package and the appropriate
headers, most likely linux-headers-generic.

You will not be able to start VMs until this problem is fixed.

So I tried the package from, but starting VirtualBox fails with:

WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (2.6.38-8-generic-pae) or it failed to
load. Please recompile the kernel module and install it by

  sudo /etc/init.d/vboxdrv setup

You will not be able to start VMs until this problem is fixed.

So I ran sudo /etc/init.d/vboxdrv setup, but it fails too:

* Stopping VirtualBox kernel modules                                                           [ OK ] 
* Uninstalling old VirtualBox DKMS kernel modules                                                            [ OK ] 
* Trying to register the VirtualBox kernel modules using DKMS                                                       
Error! Your kernel headers for kernel 2.6.38-8-generic-pae cannot be found at
/lib/modules/2.6.38-8-generic-pae/build or /lib/modules/2.6.38-8-generic-pae/source.

* Failed, trying without DKMS
* Recompiling VirtualBox kernel modules                                                                             
* Look at /var/log/vbox-install.log to find out what went wrong

The contents of /var/log/vbox-install.log.

As I am stuck, I also tried to install kernel-devel with yum, still fruitless:

root@ubuntu# yum install kernel-devel
Setting up Install Process
No package kernel-devel available.
Nothing to do

Now I've no idea how to correct this. Any ideas?

Best Answer

Doing everything as root by using su and the yum package manager is something that fits for Redhat-based distros, but not Ubuntu. In Ubuntu, you run command as root by prefixing commands with sudo. The package manager used by Ubuntu is apt.

To install VirtualBox, run:

sudo apt-get install virtualbox-ose

This will take care of dependencies like the kernel headers which is included in the package linux-headers-generic. If you've a PAE kernel, you need to install the headers first (in your case linux-headers-2.6.38-8-generic-pae), which can be done with:

sudo apt-get install linux-headers-$(uname -r)

uname -r gives the loaded kernel version and saved you from manually entering the kernel version.

Related Question