Ошибка VirtualBox — драйвер ядра не установлен (rc=-1908)
Сегодня я обновил свою систему Ubuntu 14.04 LTS до Linux Kernel 4.4.4. Процесс обновления пока прошел без каких-либо ошибок. Однако Oracle VirtualBox не работал после обновления до ядра 4.4.4.
Всякий раз, когда я запускал новую виртуальную машину, она показывала следующую ошибку и не позволяла запустить гостевую машину.
Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing
'/sbin/rcvboxdrv setup'
as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.
Where: sublibOsInit what:3
VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support
driver is not installed, On linux, open returned ENOENT.
Ошибка VirtualBox — драйвер ядра не установлен (rc=-1908)
Как вы можете видеть на скриншоте выше, мастер ошибок сообщает, что вы можете решить проблему, выполнив команду:
sudo /sbin/rcvboxdrv setup
Но и это не помогло. После выполнения приведенной выше команды я получил следующую ошибку:
Stopping VirtualBox kernel modules ...done.
Uninstalling old VirtualBox DKMS kernel modulesError! Could not locate dkms.conf file.
File: does not exist.
...done.
Trying to register the VirtualBox kernel modules using DKMSError! DKMS tree already contains: vboxhost-5.0.16
You cannot add the same module/version combo more than once.
...failed!
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules ...failed!
(Look at /var/log/vbox-install.log to find out what went wrong)
Я не хочу возвращаться к старому ядру. После небольшого поиска в Google я получил решение на форумах Askubuntu.
Я точно выполнил все шаги, и все сработало так, как я ожидал.
Вот что я сделал, чтобы устранить вышеуказанную ошибку.
Добавьте следующий репозиторий:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Обновите список источников и установите gcc/g++:
sudo apt-get update
sudo apt-get install gcc-5 g++-5
Мы установили GCC. Теперь выполните следующую команду, чтобы просмотреть установленные версии.
ls -lh /usr/bin/gcc*
Пример вывода:
lrwxrwxrwx 1 root root 7 Apr 8 2014 /usr/bin/gcc -> gcc-4.8
-rwxr-xr-x 1 root root 758K Jan 27 13:10 /usr/bin/gcc-4.8
-rwxr-xr-x 1 root root 858K Dec 6 04:31 /usr/bin/gcc-5
lrwxrwxrwx 1 root root 10 Apr 8 2014 /usr/bin/gcc-ar -> gcc-ar-4.8
-rwxr-xr-x 1 root root 27K Jan 27 13:10 /usr/bin/gcc-ar-4.8
-rwxr-xr-x 1 root root 27K Dec 6 04:31 /usr/bin/gcc-ar-5
lrwxrwxrwx 1 root root 10 Apr 8 2014 /usr/bin/gcc-nm -> gcc-nm-4.8
-rwxr-xr-x 1 root root 27K Jan 27 13:10 /usr/bin/gcc-nm-4.8
-rwxr-xr-x 1 root root 27K Dec 6 04:31 /usr/bin/gcc-nm-5
lrwxrwxrwx 1 root root 14 Apr 8 2014 /usr/bin/gcc-ranlib -> gcc-ranlib-4.8
-rwxr-xr-x 1 root root 27K Jan 27 13:10 /usr/bin/gcc-ranlib-4.8
-rwxr-xr-x 1 root root 27K Dec 6 04:31 /usr/bin/gcc-ranlib-5
Как вы видите в приведенном выше выводе, моя машина имеет версии gcc-4.8 и gcc-5.
Затем обновите альтернативы, используя следующие команды:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20 --slave /usr/bin/g++ g++ /usr/bin/g++-5
Вы должны добавить свои собственные альтернативы.
Наконец, выберите альтернативу gcc, как показано ниже.
sudo update-alternatives --config gcc
Пример вывода:
Type the selection. Here I choose gcc-5, so I entered number 2.
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.8 40 auto mode
1 /usr/bin/gcc-4.8 40 manual mode
2 /usr/bin/gcc-5 20 manual mode
Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/gcc-5 to provide /usr/bin/gcc (gcc) in manual mode
Вот и все.
Теперь попробуйте перекомпилировать модули ядра VirtualBox с помощью команды:
sudo /usr/lib/virtualbox/vboxdrv.sh setup
Пример вывода:
Stopping VirtualBox kernel modules ...done.
Uninstalling old VirtualBox DKMS kernel modulesError! Could not locate dkms.conf file.
File: does not exist.
...done.
Trying to register the VirtualBox kernel modules using DKMSError! DKMS tree already contains: vboxhost-5.0.16
You cannot add the same module/version combo more than once.
...failed!
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules ...done.
Starting VirtualBox kernel modules ...done.
Вуаля! На этот раз это сработало.
Теперь я могу без проблем запускать гостевые машины.
Для Arch Linux и его производных перейдите по этой ссылке:
- Устранение ошибки VirtualBox «Код результата: NS_ERROR_FAILURE (0x80004005)» в Arch Linux
Возникли проблемы при обновлении пакета расширений Oracle VirtualBox? Вот решение.
- Как исправить ошибку «Не удалось установить пакет расширений» в Ubuntu