Linux: The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv

Автор: | 03/05/2019
 

Каждый раз после установки VirtualBox на новую систему — натыкаюсь на одни и те же грабли, которые заставляют гуглить:

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv

Попытка загрузить vboxdrv вручную тоже приводит к ошибке:

sudo modprobe vboxdrv
modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/4.20.13-arch1-1-ARCH

И, вроде бы и с версией ядра всё нормально, и машину перезагружал:

uname -r
4.20.13-arch1-1-ARCH

И rcvboxdrv не помогает (впрочем — ожидаемо):

sudo rcvboxdrv
Unloading modules:
Loading modules: modprobe: FATAL: Module vboxnetadp not found in directory /lib/modules/4.20.13-arch1-1-ARCH
modprobe: FATAL: Module vboxnetflt not found in directory /lib/modules/4.20.13-arch1-1-ARCH
modprobe: FATAL: Module vboxpci not found in directory /lib/modules/4.20.13-arch1-1-ARCH
modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/4.20.13-arch1-1-ARCH

И каждый раз мысль — dufuck?!?

Решение, внезапно — установить linux-headers, постоянно забываю про него:

sudo pacman -S linux-headers

Который и включает в себя необходимые модули:

pacman -Ql linux-headers | grep vbox
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/drivers/staging/vboxvideo/
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/drivers/staging/vboxvideo/Kconfig
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/drivers/virt/vboxguest/
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/drivers/virt/vboxguest/Kconfig
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/include/config/drm/vboxvideo.h
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/include/config/vboxguest.h
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/include/linux/vbox_utils.h
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/include/uapi/linux/vbox_err.h
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/include/uapi/linux/vbox_vmmdev_types.h
linux-headers /usr/lib/modules/4.20.13-arch1-1-ARCH/build/include/uapi/linux/vboxguest.h

И он же указан в опциональных зависимостях для пакетов virtualbox-guest-dkms и virtualbox-host-dkms.

Ещё раз загружаем модули:

sudo rcvboxdrv
Unloading modules:
Loading modules: vboxnetadp vboxnetflt vboxpci vboxdrv

Готово.