LINUX.ORG.RU

VirtualBox Fodora25 Secure Boot

 


0

1

Не могу заставить работать VirtualBox с включенным Secure Boot (eсли выключаешь - все ок). При запуске получаю ошибку: «WARNING: The vboxdrv kernel module is not loaded. » Вычитал, что если ставить с оф. репозитория ситуация решается.

Пробую:

cd /etc/yum.repos.d/

wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo

dnf update

reboot

dnf install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms

dnf install VirtualBox-5.1

/usr/lib/virtualbox/vboxdrv.sh setup

По итогу на последнем шаге получаю те же самые ошибки.

Также большинство ответов ссылаются на https://ask.fedoraproject.org/en/question/34470/virtual-box-on-fedora-19-fail...

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html...

На шаге

keyctl list %:.system_keyring 

Получаю ответ

Can't find 'keyring:.system_keyring'
modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available

Каким образом правильно добавить ключи/подключить модули без лишнего геморроя?


Ответ на: комментарий от SergeySVold

Спасибо за наводку!

1) Пробую, при перезагрузке получаю синий экран аналогичный скриншотам, действия также аналогичны https://sourceware.org/systemtap/wiki/SecureBoot

2) На шаге «The system must now be rebooted» комп залипает. Перезагружаюсь вручную.

3)

$ mokutil --list-enrolled | egrep -i 'SHA1|Issuer'
вижу добавленный ключ

4)

$ lsmod | grep vboxdrv
vboxdrv               434176  0

5)

keyctl list %:.system_keyring
Can't find 'keyring:.system_keyring'

6)

$ vagrant up

Bringing machine 'test.dev' up with 'virtualbox' provider...
==> test.dev: Checking if box 'puphpet/centos65-x64' is up to date...
==> test.dev: Clearing any previously set network interfaces...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "create"]

Stderr: 0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to create the host-only adapter
VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
VBoxManage: error: Context: "RTEXITCODE handleCreate(HandlerArg*)" at line 71 of file VBoxManageHostonly.cpp

zxdx ()

В общем, вопрос закрыт. Действительно тупанул, был невнимателен. Если кто столкнется с тем же вопросом, решение следующее:

При запуске Virtual Box ошибка вида

$ virtualbox
WARNING: The vboxdrv kernel module is not loaded......

Решения два:
1) Отключить Secure Boot в BIOS
2) Создать MOK (Machine-Owner-Key) ключи и подписать ими модули VirualBox

Если идти по второму варианту:
1)Создаем директорию с ключами в любом месте

 
$ mkdir ~/x509; cd ~/x509

2)Создаем конфигурационный файл (взят отсюда, как и сама инструкция).

 
$ cat << EOF > configuration_file.config
[ req ]
days = 36500
default_bits = 4096
#specify the section defining the requested distinguished name
distinguished_name = maarten
prompt = no
string_mask = utf8only
#Specify the section that defines extensions to add to a self-signed certificate.
x509_extensions = myexts
encrypt_key = no

[ maarten ]
countryName = be
organizationName = Maarten Inc
commonName = Maarten
emailAddress = maarten@xxx.com

[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
EOF

3) Генерируем ключи

 
$ openssl req -x509 -new -utf8 -sha256 -batch -config configuration_file.config -outform DER -out public_key.der -keyout private_key.priv

4) Импортируем ключи

 
$ sudo mokutil --import public_key.der

5) Перезагружаемся

 
$ reboot

6) При загрузке видим синий экран.

Выбираем Enroll MOK->Continue->yes->вводим пароль с шага 3->ok

Лично у меня на этом шаге происходит залипание. Перезагрузился вручную

7) Смотрим добавились ли ключи

$ mokutil -l

8) Подписываем модули VirtualBox

$cd ~/x509;
for i in /usr/lib/modules/$(uname -r)/extra/VirtualBox/*ko; do
  sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 private_key.priv  public_key.der "$i";
done

9) Enjoy:)

PS: Если необходимо удалить ключи

$ mkdir ~/tmp; cd ~/tmp
$ mokutil --export
$ ls -1 MOK*
MOK-0001.der
MOK-0002.der
...
$mokutil --delete MOK-0001.der
$reboot

PPS: Ключи слетают при обновлении ядра, повторяем пункт 8

zxdx ()
Ответ на: комментарий от zxdx

Ключи слетают при обновлении ядра, повторяем пункт 8

Блин.Давно это было... вообщем я уже не помню как ставил, но у меня с secureboot ни при обновлении ядра ни при обновлении virtualbox ни чего не слетает. Единственно VB просит расширения новые для подтянуть для USB.

SergeySVold ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.