VirtualBox error: Kernel driver not installed (rc=-1908) (running ubuntu 20.04 on a chromebook through crouton)
When I try to start a virtual machine in VirtualBox, I get the error above. I tried what it asked me to do, but it didn’t work. My kernel version is 4.4.232. Also, here is the error message:
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please reinstall virtualbox-dkms package and load the kernel module by executing 'modprobe vboxdrv' as root. If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information. where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.
The virtual machine 'linux 2' has terminated unexpectedly during startup with exit code 1 (0x1). Result Code: NS_ERROR_FAILURE (0x80004005) Component: MachineWrap Interface: IMachine
And yes, I am trying to run Linux within Linux, but I know it’s not that because I have tried multiple different virtual machines. Also, I am running this Ubuntu 20.04 on my chromebook, so if that’s the problem, I’d like a workaround for that. I set it up using crouton on howtogeek.com, if that helps. I have had the same error messages on Ubuntu 16.04 and Ubuntu 18.04, so the version is not the problem. also, I noticed while reinstalling virtualbox the terminal mentions that my kernel version likely belongs to a chroot’s host, so that might be a problem too. If I need a different version of the Linux kernel, I’d like directions to do that because it’s probably different for me since I’m using my chromebook. For anyone who tried running VirtualBox on their chromebook using crouton like I tried and got the same error, from what I’ve read is that on some devices the chrome OS kernel does not support running virtual machines.
Fedora 36. Не запускается Kali Linux в VirtualBox
Установил, VirtualBox, загрузил туда образ, при попытке запуска выдаёт ошибку. Подскажите новичку.
Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver (vboxdrv) is probably not loaded.You may not have kernel driver installed for kernel that is runnig, if so you may do as root: dnf install akmod-VirtualBox kernel-devel-$(uname -r)If you installed VirtualBox packages and don’t want reboot the system, you may need load the kernel driver, doing as root: akmods; systemctl restart vboxdrv.service
If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system’s documentation for more information.
where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) — The support driver is not installed. On linux, open returned ENOENT.
kernel установлен и обновлён несколько раз.
Если модуль есть, то systemctl enable —now vboxdrv
Если модуль есть, но не подгружается — отключить secureboot. Или подписывать модули своей подписью с дальнейшем одобрением этого ключа в секуребуте
с дальнейшем одобрением этого ключа в секуребуте
Достаточно, чтобы был в кейринге ядра.
Только не lsmod , а modinfo конечно же
Ну, это я и имел ввиду. Одобрить == добавить в кейринг.
А я имел ввиду, что кейринг ядра немного не связан с db Secure Boot, и одобрять можно именно в ядре.
Как пример, в раче модули подписаны ключём разработчиков рача, и достаточно подписать своим ключём само ядро (или MOKом, или добавить хэш для shim), а ключ найдённый в подписанным бинарнике ядра тоже станет доверённым.
token_polyak ★★★ ( 16.05.22 10:35:18 MSK )
Последнее исправление: token_polyak 16.05.22 10:35:39 MSK (всего исправлений: 1)
На systemctl enable –now vboxdrv мне выдал следующее:
[root@fedora ~]# modinfo vboxdrv filename: /lib/modules/5.17.6-300.fc36.x86_64/extra/VirtualBox/vboxdrv.ko.xz version: 6.1.34_rpmfusion r150636 (0x00320000) license: GPL description: Oracle VM VirtualBox Support Driver author: Oracle Corporation rhelversion: 9.99 srcversion: 4F8CB5BAB694F0C7A59727B depends:
retpoline: Y name: vboxdrv vermagic: 5.17.6-300.fc36.x86_64 SMP preempt mod_unload parm: force_async_tsc:force the asynchronous TSC mode (int) [root@fedora ~]# systemctl enable –now vboxdrv Job for vboxdrv.service failed because the control process exited with error code. See «systemctl status vboxdrv.service» and «journalctl -xeu vboxdrv.service» for details. [root@fedora ~]#
See «systemctl status vboxdrv.service» and «journalctl -xeu vboxdrv.service» for details
× vboxdrv.service — Linux kernel module init script
Loaded: loaded (/usr/lib/systemd/system/vboxdrv.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2022-05-16 12:32:01 MSK; 11min ago Process: 4185 ExecStart=/sbin/modprobe vboxdrv (code=exited, status=1/FAILURE)
Main PID: 4185 (code=exited, status=1/FAILURE) CPU: 262ms
мая 16 12:32:01 fedora systemd[1]: Starting vboxdrv.service — Linux kernel module init script…
мая 16 12:32:01 fedora modprobe[4185]: modprobe: ERROR: could not insert ‘vboxdrv’: Key was rejected by service
мая 16 12:32:01 fedora systemd[1]: vboxdrv.service: Main process exited, code=exited, status=1/FAILURE
мая 16 12:32:01 fedora systemd[1]: vboxdrv.service: Failed with result ‘exit-code’.
мая 16 12:32:01 fedora systemd[1]: Failed to start vboxdrv.service — Linux kernel module init script.
sudo dnf -y install @development-tools sudo dnf -y install kernel-headers kernel-devel dkms elfutils-libelf-devel qt5-qtx11extras sudo /sbin/vboxconfig sudo usermod -aG vboxusers $USER sudo reboot
первые две выполнил, на третью он мне написал: sudo: /sbin/vboxconfig: command not found
А как именно ты VirtualBox ставил?
Я имел в виду, с какого репозитория. Я знаю как минимум 2.
sudo dnf remove VirtualBox sudo dnf install VirtualBox
И заведи баг на этих идиотов из RPMFusion, что в погоне за отказом от устаревших скриптов для sysvinit выкинули и нужный скрипт. К слову, в пакете от Oracle этот скрипт есть (но он, увы, максимум для Fedora 35):
[root@fedora ~]# rpm -ql VirtualBox | grep postinst-common [root@fedora ~]# rpm -qlp /home/user/VirtualBox-6.1-6.1.34_150636_fedora33-2.x86_64.rpm | grep postinst-common warning: /home/user/VirtualBox-6.1-6.1.34_150636_fedora33-2.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 98ab5139: NOKEY /usr/lib/virtualbox/postinst-common.sh
Короче, ты не виноват, это криво собрали в RPMFusion. Они забыли /usr/lib/virtualbox/postinst-common.sh положить в сборку. /sbin/vboxconfig — это просто симлинк на этот скрипт в большинстве Linux.
Что любопытно, проблема проявляется только если ставить сперва неправильно, а потом попробовать исправить. Если ставить сперва модули ядра и прочее, а потом VirtualBox, то всё работает. Вот только без возможности перенастройки без переустановки.
Vsevolod-linuxoid ★★★★★ ( 16.05.22 14:09:50 MSK )
Последнее исправление: Vsevolod-linuxoid 16.05.22 14:11:31 MSK (всего исправлений: 1)
Я попробовал, результат тот же, я так понимаю, кроме как переустановить себе Fedora 35 вариантов нет?
Ну можешь всё же поставить этот пакет, авось и подойдет:
Хотя без гарантий, есть ещё кросс-дистрибутивный пакет. Да и вообще, вот тут список: https://www.virtualbox.org/wiki/Linux_Downloads
мая 16 12:32:01 fedora modprobe[4185]: modprobe: ERROR: could not insert ‘vboxdrv’: Key was rejected by service
Нужно либо подписать модуль ключём, который присутствует в хранилище ключей uefi, либо отключить проверку подписи (secure boot).
Здесь генерируется сертификат подписи, загружается в uefi и модуль подписывается этим сертификатом.
kostik87 ★★★★★ ( 16.05.22 15:03:48 MSK )
Последнее исправление: kostik87 16.05.22 15:05:45 MSK (всего исправлений: 1)
А разве модули не подписываются утекшим ключом от MS автоматически, как и само ядро Linux, ну или ключом от RH? Я имею в виду, Fedora же у него изначально грузилась.
Сомневаюсь, в чём тогда смысл secure boot, если всё подписывается утёкшим ключом?
Если я правильно понимаю как это всё работает, то там выстраивается цепочка доверия.
Если включен secure boot, то в uefi может выполнится загрузчик, который подписан сертификатом, который есть в доверенных ключах UEFI.
А потом уже доверенный загрузчик может загрузить ещё один ключ в цепочку и уже будет доверяться всё, что подписано этим ключом.
По сути для secure boot разработчики fedora обратились в Microsoft и получили подписанный их ключом файл загрузчика, который может загрузить уже ключ разработчиков Fedora.
И они подписывают этим ключом ядро дистрибутива и модули ядра.
Если ты хочешь загрузить свой собранный внешний модуль, то тебе нужно либо отключить secure boot, либо сгенерировать свои ключи и добавить их в доверенные в uefi. Подписать свой модуль этим ключом и тогда ты сможешь загрузить свой модуль в пространство ядра.