Подпишите модули виртуальной коробки (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) Centos 8

Недавно я начал использовать Centos 8 и установил VirtualBox для управления своими виртуальными машинами. Проблема, с которой я столкнулся, заключается в том, что мой VirtualBox не может загрузить какие-либо виртуальные машины, и он сказал мне выполнить этот скрипт /sbin/vboxconfig от имени пользователя root, когда я запускаю этот скрипт. появляется следующее сообщение:

vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: You must sign these kernel modules before using VirtualBox:
  vboxdrv vboxnetflt vboxnetadp vboxpci
See the documenatation for your Linux distribution..
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may 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.

Обратите внимание, что моя безопасная загрузка включена. Мой вопрос: как подписать эти модули ядра в Centos 8?

Спасибо и с наилучшими пожеланиями, Юнес.


person Younes LAB    schedule 16.04.2020    source источник


Ответы (3)


После некоторых исследований я нашел решение.

Решение 1: отключить безопасную загрузку.

Решение 2:

1- Установите mokutil пакет

sudo dnf update
sudo dnf install mokutil

2- Создайте ключ RSA в новой папке.

sudo -i
mkdir /root/signed-modules
cd /root/signed-modules
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"
chmod 600 MOK.priv

3- Эта команда попросит вас добавить пароль, этот пароль вам понадобится после следующей перезагрузки.

sudo mokutil --import MOK.der

4- Перезагрузите систему, и появится синий экран, выберите Enroll MOK --> Продолжить --> введите предыдущий пароль, и ваша система запустится.

5- Поместите предыдущие команды в скрипт, чтобы запустить его позже (после обновления системы)

cd /root/signed-modules
vi sign-virtual-box

Добавьте в этот скрипт следующий cmd:

#!/bin/bash

for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
  echo "Signing $modfile"
  /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
                                /root/signed-modules/MOK.priv \
                                /root/signed-modules/MOK.der "$modfile"
done

Используйте приведенный ниже текст, чтобы найти сигнальный файл, если вышеуказанный способ не работает, и соответствующим образом отредактируйте сценарий.

find /usr/src -name signfile

5- Добавьте разрешение на выполнение и запустите скрипт

chmod 700 sign-virtual-box
./sign-virtual-box 

6- Запустите VirtualBOx

modprobe vboxdrv

Для получения дополнительной информации см. эту ссылку (для пользователей Ubuntu) https://stegard.net/2016/10/virtualbox-secure-boot-ubuntu-fail/

person Younes LAB    schedule 16.04.2020
comment
Последний шаг: update-initramfs -u -k all && reboot - person Dunaevsky Maxim; 26.09.2020
comment
$ sudo cd /root/signed-modules sudo: cd: команда не найдена $ sudo /root/signed-modules sudo: /root/signed-modules: команда не найдена После ввода команды, рекомендованной вами, я получаю сообщение об ошибке. - person lovalim; 03.01.2021
comment
@lovalim Вы можете выполнить sudo -i, чтобы войти в систему как пользователь root, а затем выполнить cd .... - person Ajeet Shah; 12.06.2021

Я следую решению, предоставленному @Younes LAB, но мне нужно было изменить путь sign-file в скрипте sign-virtual-box, чтобы он работал нормально:

#!/bin/bash

for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
  echo "Signing $modfile"
  /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
                                /root/signed-modules/MOK.priv \
                                /root/signed-modules/MOK.der "$modfile"
done

Я использую Ubuntu 20.04.2 LTS и VirtualBox 6.1.

person Beatriz Fonseca    schedule 04.07.2021

Я обновился с virtualbox 6.0 до 6.1, и vboxconfig запустился без ошибок (или необходимости подписывать модули ядра).

person ThorstenS    schedule 01.11.2020
comment
Извините, это не работает для меня - person Alex8752; 20.04.2021
comment
Соглашаться. Запускаю виртуалбокс 6.1 на xubuntu. Кажется, мне нужно подписать кое-что - person Mike Bell; 06.05.2021