Я обновляюсь с Ubuntu 15.10 до 16.04, и с тех пор VirtualBox 5.0.18 больше не запускает мои виртуальные машины. Он жалуется, что vboxdrv не загружен. Поэтому я пытаюсь загрузить его и получаю следующую ошибку:
$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available
Я считаю, что это связано с безопасной загрузкой, которую я использую и которую я хочу продолжать использовать. На самом деле с Ubuntu 15.10 безопасная загрузка и VirtualBox работали просто отлично.
Также я попытался $ sudo apt-get --reinstall install virtualbox-dkms
, который успешно собрал модуль ядра, но не решил эту проблему.
Есть идеи, как загрузить vboxdrv при сохранении безопасной загрузки?
Обновление 2 : Также я пытался выполнить sudo mokutil --disable-validation
. При выполнении этой команды во время следующей загрузки мне предлагается отключить безопасную загрузку, добавить ключ или хэш с диска. Поскольку я не хочу отключать безопасную загрузку, похоже, это тоже не решает мою проблему. Также я хочу оставить UEFI активным для параллельной установки Windows.
Примечание : Если вы не против отключить безопасную загрузку, см. Почему я получаю «Требуемый ключ недоступен» при установке сторонних модулей ядра или после обновления ядра? вместо этого.
В моей системе я сделал следующее, чтобы работает:
Запустите mokutil:
sudo mokutil --disable-validation
Затем mokutil попросил меня установить пароль для MOK Manager. После перезагрузки ПК в BIOS появилось диалоговое окно для настройки MOK Manager. Я отключил SecureBoot в этом диалоговом окне, он запросил несколько символов из пароля (например, введите символ (5) и т. Д.).
После загрузки модули vboxdrv загружены правильно.
lsmod | grep vboxdrv
vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci
Любопытно, что mokutil все еще показывает, что SecureBoot включен :
sudo mokutil --sb-state
SecureBoot enabled
Начиная с версии ядра 4.4.0-20, было предписано, чтобы модули ядра без знака не могли работать с включенной безопасной загрузкой. Поскольку вы хотите сохранить безопасную загрузку, следующим логическим шагом будет подписать эти модули.
Итак, давайте попробуем.
Создайте ключи подписи
openssl req -new -x509 -newkey rsa: 2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/ CN = Общее описательное имя /"
Опция : для дополнительной безопасности пропустите переключатель -nodes, который запрашивает пароль. Затем, прежде чем переходить к следующему шагу, убедитесь, что export KBUILD_SIGN_PIN = 'yourpassword'
Подпишите модуль (vboxdrv для этого примера, но повторите для других модулей в ls $ (dirname $ (modinfo - n vboxdrv)) / vbox * .ko)
для полной функциональности)
sudo / usr / src / linux-headers - $ (uname -r) / scripts / sign-file sha256 ./MOK.priv ./ MOK.der $ (modinfo -n vboxdrv)
Подтвердите, что модуль подписан
tail $ (modinfo -n vboxdrv) | grep "Подпись модуля добавлена"
Зарегистрируйте ключи для безопасной загрузки
sudo mokutil --import MOK.der
, который запросит пароль для подтверждения импорта на следующем шаге.
Перезагрузитесь и следуйте инструкциям по регистрации MOK (ключ владельца машины). Вот образец с картинками. Система перезагрузится еще раз.
Подтвердите, что ключ зарегистрирован
mokutil --test-key MOK.der
Если VirtualBox по-прежнему не загружается, это может быть связано с тем, что модуль не загрузился ( sudo modprobe vboxdrv
исправит это) или что ключ не подписан. Просто повторите этот шаг, и все должно работать нормально.
Ресурсы: Подробная статья на веб-сайте для Fedora и Реализация подписи модулей в Ubuntu . @zwets для дополнительной безопасности . @shasha_trn для с упоминанием всех модулей .
Дополнительный ресурс: Я создавал сценарий bash для собственного использования каждый раз, когда virtualbox-dkms
обновляется и, таким образом, перезаписывает подписанные модули . Посмотрите мой vboxsign изначально на GitHub .
LANG=C
для получения английского вывода.
– dessert
10 September 2017 в 20:01
Вы можете отключить проверку валидации с помощью
sudo apt install mokutil
sudo mokutil --disable-validation
После этого должны быть установлены пакеты DKMS.
Я получил сообщение об ошибке vboxdrv после обновления rade тоже. Но возникла проблема со старой версией (5.0.14) Oracle VM VirtualBox Extension Pack. Я загрузил и установил более новую версию (5.0.18) этого пакета, и проблема исчезла.
Хорошо, после небольшого тестирования я почти уверен, что это проблема безопасной загрузки.
Если он включен, то выдается следующее:
ПРЕДУПРЕЖДЕНИЕ: модуль ядра vboxdrv не загружен. Либо нет модуля доступно для текущего ядра (4.4.0-21-generic) или не удалось нагрузка. Перекомпилируйте модуль ядра и установите его с помощью sudo / sbin / rcvboxdrv setup
. Однако, если безопасная загрузка отключена, виртуальный бокс загружается нормально, без ошибок.
В моей BIOS все еще установлен UEFI.
flashplugin-installer
установлен при установке системы, Вы, принимают решение установить некоторое внешнее программное обеспечение.
– Gunnar Hjalmarsson
11 September 2017 в 04:53
У меня сегодня была такая же проблема, у меня были Windows 10 и Ubuntu 15.10 при двойной загрузке с включенным uefi в Bios (я не отключал его, чтобы запустить предустановленную Windows) .
После обновления до Ubuntu 16.04 VirtualBox перестал загружать мои виртуальные машины с тем же сообщением об ошибке:
modprobe: ERROR: could not insert 'vboxdrv': Required key not available
Я подозревал проблему с UEFI, потому что при обновлении установщик спросил меня, хочу ли я отключить его, на что я ответил «Нет» (поскольку «Да» может сделать мою Windows непригодной для использования).
Я зашел в Bios и включил поддержку устаревшей загрузки BIOS БЕЗ отключения безопасной загрузки.
Virtualbox теперь работает нормально.
Обновление : как правильно указал @zwets в комментарий, включение устаревших модулей вызывает отключение безопасной загрузки.
Я знаю, что этот вопрос слишком старый, но поскольку нет принятого ответа, и ни один из этих ответов не решил проблему в моем случае, я пишу, как я решил эту проблему сегодня , не отключая безопасную загрузку :
При запуске этой команды получите эту ошибку:
$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available
Проблема в том, что модуль не подписан и, следовательно, не загружен вместе с ядром. Это произойдет, если на вашем компьютере активирован режим SecureBoot, что очень часто встречается в современном оборудовании.
Вот почему я получаю эту ошибку при открытии любой машины в виртуальном ящике
Драйвер ядра не установлен (rc = -1908)
Выполните следующие шаги, чтобы подписать драйвер, и он загружается как модуль ядра в системах Ubuntu, а также в Debian 9:
1. Установите пакет mkutil, чтобы иметь возможность подписывать.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mokutil
2. создать файл подписи:
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"
3. Затем добавьте его в ядро:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
4. Зарегистрируйте его для безопасной загрузки.
ВАЖНО! Вам будет предложено ввести пароль, введите тот, который вы хотите, вам нужно будет использовать его только один раз при следующей перезагрузке.
sudo mokutil --import MOK.der
5. Наконец, перезагрузите компьютер. Появится синий экран с ожиданием клавиатуры, нажмите клавишу, которая просит вас прервать загрузку.
Когда вы находитесь внутри синего экрана, выберите
Enroll MOK > Continue > and it will ask you for the password
, который вы ввели ранее, вы введете его, и вы будете сообщил, что операция была успешно завершена.
Теперь ваша операционная система запустится, и теперь вы можете использовать VirtualBox без проблем :)
Надеюсь, это кому-то поможет.
У меня была эта проблема с Ubuntu 20.04 (после новой установки). Я не запускал UEFI в BIOS и выполнял автоматический вход в Ubuntu.
Исправлено то, что я изменил автоматический вход, чтобы не входить автоматически, и включил UEFI в BIOS.
У меня это сработало (сборка 5.11.0-27-generic)
sudo apt-get autoremove virtualbox-dkms sudo apt-get install virtualbox
он был перекомпилирован с новым ядром :)