What Does Error rc=-1908 Mean?
The rc=-1908 error with the message "Kernel driver not installed (rc=-1908)" occurs when trying to start VirtualBox or a virtual machine in Linux. This means the vboxdrv kernel module (the main VirtualBox driver) is not loaded into the system or is missing. Without this module, VirtualBox cannot manage virtual machines, and you will see this message immediately upon opening the program or when starting a VM.
The full error text usually looks like this:
Failed to create the VirtualBox COM object.
The VirtualBox kernel driver (vboxdrv) is not loaded.
Please load the kernel module by executing 'modprobe vboxdrv' as root.
Or:
Kernel driver not installed (rc=-1908)
This error is typical for most Linux distributions (Ubuntu, Fedora, Debian, Arch) and often appears after a kernel update, system reinstall, or when necessary packages are missing.
Causes
- Kernel headers (linux-headers) are not installed. The
vboxdrvmodule requires header files for the current kernel version to compile. If they are missing, VirtualBox cannot build the module. - Kernel and module version mismatch. After a kernel update, the old
vboxdrvmodule becomes incompatible. DKMS (Dynamic Kernel Module Support) should automatically rebuild the module, but this doesn't always happen. - Insufficient privileges to load the module. The kernel module requires superuser rights. If you run VirtualBox without
sudoor without proper udev configuration, loading may be blocked. - Corrupted or incomplete VirtualBox installation. For example, installing from your distribution's repository might result in a VirtualBox version that differs from the Oracle repository version, causing a conflict.
- Secure Boot blocks module loading. On systems with Secure Boot enabled (UEFI), unsigned kernel modules like
vboxdrvmay be rejected without explicit confirmation. - Module is loaded but inactive. Sometimes the module exists but isn't loaded automatically at boot.
Solutions
Method 1: Install Kernel Headers and Rebuild the Module (Recommended)
This is the primary method that solves the problem in most cases. It ensures all necessary components are available for building and loads the module.
For Ubuntu/Debian and derivatives:
# 1. Install kernel headers and build tools
sudo apt update
sudo apt install linux-headers-$(uname -r) build-essential dkms
# 2. Rebuild the VirtualBox module
sudo /sbin/vboxconfig
# 3. Load the module manually (if not loaded automatically)
sudo modprobe vboxdrv
# 4. Verify the module is loaded
lsmod | grep vbox
If the vboxconfig command is unavailable, use:
sudo /etc/init.d/vboxdrv setup
For Fedora/RHEL/CentOS:
# Install headers and tools
sudo dnf install kernel-devel kernel-headers gcc make dkms
# Rebuild the module
sudo /sbin/vboxconfig
# Load the module
sudo modprobe vboxdrv
For Arch Linux:
# Install headers and dkms
sudo pacman -S linux-headers dkms
# Rebuild the module (VirtualBox from the repository)
sudo modprobe vboxdrv
If you installed VirtualBox from AUR, rebuild the package: sudo pacman -S virtualbox-host-modules-arch.
Method 2: Reinstall VirtualBox from the Official Oracle Repository
If the module fails to build due to version incompatibility, reinstall VirtualBox from Oracle's official repository. This ensures the VirtualBox and kernel module versions are aligned.
For Ubuntu/Debian:
- Remove the current version:
sudo apt remove virtualbox virtualbox-* - Add the Oracle repository (replace
focalwith your Ubuntu version, e.g.,jammyfor 22.04):echo "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian focal contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list wget -q https://www.virtualbox.org/download/oracle_vbox_2016.gpg -O- | sudo apt-key add - - Install the latest version:
sudo apt update sudo apt install virtualbox-7.0 # or the current version - During installation, the system will offer to build modules automatically. Confirm.
For Fedora:
sudo dnf remove VirtualBox
sudo dnf install https://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
sudo dnf install VirtualBox-7.0
After installation, run sudo /sbin/vboxconfig to build the module.
Method 3: Manual Module Loading and Dependency Check
Sometimes the module is already compiled but fails to load due to missing dependencies or blocks.
- Check if the module exists:
find /lib/modules/$(uname -r) -name "vboxdrv.ko"
If the file is missing, return to Method 1. - Load the module manually:
sudo modprobe vboxdrv - If the command fails, check kernel logs:
sudo dmesg | grep vbox sudo journalctl -xe | grep vbox
Common errors:Invalid module format(version mismatch),Permission denied(Secure Boot issues). - Ensure the module is set to load at boot:
echo "vboxdrv" | sudo tee /etc/modules-load.d/virtualbox.conf
Method 4: Disable Secure Boot or Sign the Module
If your logs (dmesg) mention Secure Boot or module verification failed, the issue is a block on an unsigned module.
Option A: Temporarily disable Secure Boot in UEFI/BIOS
- Reboot, enter UEFI/BIOS settings (usually F2, Del, F10).
- Find the Secure Boot option and disable it.
- Save changes and reboot.
- Run
sudo modprobe vboxdrv.
Option B: Sign the module with your own keys (more complex) This is recommended if you don't want to disable Secure Boot. Brief steps:
- Create MOK (Machine Owner Key) keys:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv) - Register the key in the system via
mokutil. - Sign the module and load it. Detailed instructions may vary by distribution. For most users, disabling Secure Boot is simpler.
Prevention
To avoid the error recurring after updates:
- Install DKMS. This daemon automatically rebuilds kernel modules when the kernel version updates. On Ubuntu/Debian it's usually installed with VirtualBox, but verify:
sudo apt install dkms # or sudo dnf install dkms - Use Oracle's official repository to install VirtualBox, not your distribution's repository. Distribution versions often lag and may be incompatible with newer kernels.
- Don't skip kernel header updates. When updating the kernel via your package manager, headers are usually offered too. Install them alongside the kernel.
- After a major system update (e.g.,
dist-upgrade), check if the module is loaded:lsmod | grep vbox
If not, runsudo modprobe vboxdrv. - Create a helper script (optional). Save as
~/fix_vbox.sh:#!/bin/bash sudo apt install -y linux-headers-$(uname -r) build-essential dkms sudo /sbin/vboxconfig sudo modprobe vboxdrv
Make it executable withchmod +x ~/fix_vbox.shand run it when needed.