После обновления Virtual Box исходные коды ядра отсутствуют

Я обновлял VirtualBox с 4.1 до 4.2

всякий раз, когда я хочу загрузить свой Win XP VDI, он выдает следующую ошибку:

Драйвер ядра не установлен (rc = -1908)

Драйвер ядра VirtualBox Linux (vboxdrv) либо не загружен, либо существует проблема с правами доступа /dev/vboxdrv. Пожалуйста, переустановите модуль ядра, выполнив

/etc/init.d/vboxdrv setup

от имени пользователя root. Если он доступен в вашем дистрибутиве, вы должны сначала установить пакет DKMS. Этот пакет отслеживает изменения ядра Linux и при необходимости перекомпилирует модуль ядра vboxdrv.

Я выполнил предложенный шаг для переустановки модуля ядра, и файл журнала выглядит следующим образом:

Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.

Я все еще не могу перезапустить мой win Virtual XP vdi файл.

У кого-нибудь есть подсказка?

4
задан 8 June 2016 в 18:31

2 ответа

Похож на Вас, не установили заголовки ядрa, dkms потребности затем, чтобы установить Виртуальный диск ядра Поля, установить затем выполненный:

sudo apt-get install linux-headers-`uname -r`

Впоследствии,

/etc/init.d/vboxdrv setup

должен работать.

10
ответ дан 8 June 2016 в 18:31

То же самое может произойти в VirtualBox 5. Сценарий vboxdrv теперь называется vboxadd (я полагаю), и логика выглядит следующим образом:

KERN_VER=`uname -r`
KERN_DIR="/lib/modules/$KERN_VER/build"
if [ -d "$KERN_DIR" ]; then
    KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true`
    if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then
        return 0
    fi
fi

Так что в основном вам нужно убедиться, что Вы установили VBoxGuestAdditions, а исходные коды ядра существуют в /lib/modules/$(uname -r)/build. Если они не совпадают, команда не выполнится.

Вот простой тест:

$ sudo sh -x /opt/VBoxGuestAdditions-5.0.16/init/vboxadd setup 2>&1 | grep KERN
+ KERN_VER=2.6.32-573.18.1.el6.x86_64
+ KERN_DIR=/lib/modules/2.6.32-573.18.1.el6.x86_64/build

Поэтому убедитесь, что вы установили все зависимости, например,

sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso

Затем убедитесь, что /lib/modules/$(uname -r)/build указывает на /usr/src/kernels/$(uname -r).

И еще раз проверьте, совпадают ли эти две команды:

$ sudo make -sC /usr/src/kernels/$(uname -r) kernelrelease
2.6.32-642.1.1.el6.x86_64
$ uname -r
2.6.32-642.1.1.el6.x86_64
0
ответ дан 8 June 2016 в 18:31

Другие вопросы по тегам:

Похожие вопросы: