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

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

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

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

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

[simterm]

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

[/simterm]

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

[simterm]

$ uname -r
4.20.13-arch1-1-ARCH

[/simterm]

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

[simterm]

$ 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

[/simterm]

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

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

[simterm]

$ sudo pacman -S linux-headers

[/simterm]

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

[simterm]

$ 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

[/simterm]

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

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

[simterm]

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

[/simterm]

Готово.