Подпишите модули виртуальных блоков (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) Centos 8 - PullRequest
0 голосов
/ 16 апреля 2020

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

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?

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

1 Ответ

0 голосов
/ 16 апреля 2020

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

Решение 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

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

#!/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

5 - добавьте exe c разрешение и выполните скрипт

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

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

modprobe vboxdrv

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

...