При запуске Vagrant — VirtualBox сообщает об ошибке:
$ vagrant up VirtualBox is complaining that the kernel module is not loaded. Please run `VBoxManage --version` or open the VirtualBox GUI to see the error message which should contain instructions on how to fix this error.8
$ VBoxManage --version
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (2.6.32-504.8.1.el6.i686) or it failed to
load. Please recompile the kernel module and install it by
sudo /etc/init.d/vboxdrv setup
You will not be able to start VMs until this problem is fixed.
4.3.26r98988
А при попытке пересобрать модули:
# /etc/init.d/vboxdrv setup
Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Trying to register the VirtualBox kernel modules using DKMSError! echo
Your kernel headers for kernel 2.6.32-504.8.1.el6.i686 cannot be found at
/lib/modules/2.6.32-504.8.1.el6.i686/build or /lib/modules/2.6.32-504.8.1.el6.i686/source.
[FAILED]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [FAILED]
(Look at /var/log/vbox-install.log to find out what went wrong)
Хотя пакет kernel-headers установлен.
Проблема заключается в том, что kernel-headers устанавливается для последней верси ядра:
... Updating: kernel-headers i686 2.6.32-504.12.2.el6 updates 3.3 M ...
Если проверить каталог /lib/modules/2.6.32-504.8.1.el6.i686/build, о котором говорится в ошибке, то видно, что он является ссылкой на каталог /usr/src/kernels/2.6.32-504.8.1.el6.i686:
# ls -l /lib/modules/2.6.32-504.8.1.el6.i686/build lrwxrwxrwx. 1 root root 48 Mar 7 21:31 /lib/modules/2.6.32-504.8.1.el6.i686/build -> ../../../usr/src/kernels/2.6.32-504.8.1.el6.i686
В котором находятся заголовочные файлы для ядра 2.6.32-504.12.2.el6:
# ls -l /usr/src/kernels/ total 4 drwxr-xr-x 22 root root 4096 Apr 3 19:33 2.6.32-504.12.2.el6.i686
Которые были установлены при установке kernel-headers — но нет файлов для 2.6.32-504.8.1.el6.i686.
А так как текущая установленная версия ядра — 8.1, а не 12.2:
# uname -r 2.6.32-504.8.1.el6.i686
То VirtualBox ищет файлы для него.
Решение — либо обновить систему и ядро:
# yum update ... Installed: kernel.i686 0:2.6.32-504.12.2.el6 ...
Перезагружаем систему:
# reboot
Либо установить kernel-headers для текущей версии ядра:
# yum install kernel-headers-$(uname -r)