виртуальное ядро поля, не найденное (человечность 16.04, vbox 5.02)

Когда я пытаюсь использовать virtualbox (установленный через диспетчер пакетов), я получаю следующую ошибку после открытия виртуальной машины:

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

'modprobe vboxdrv'

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

Теперь, когда я пытался работать sudo modprobe vboxdrv это ошибки с

modprobe: ERROR: could not insert 'vboxdrv': Required key not available

Я также замечаю в конце установки virtualbox-dkms, с которым она обнаруживается:

DKMS: install completed.
Setting up virtualbox (5.0.40-dfsg-0ubuntu1.16.04.2) ...
vboxweb.service is a disabled or a static unit, not starting it.
Job for virtualbox.service failed because the control process exited with error code. See "systemctl status virtualbox.service" and "journalctl -xe" for details.
invoke-rc.d: initscript virtualbox, action "restart" failed.

Осмотр шоу состояния

● virtualbox.service - LSB: VirtualBox Linux kernel module
   Loaded: loaded (/etc/init.d/virtualbox; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since di 2018-03-20 14:05:46 CET; 6min ago
     Docs: man:systemd-sysv-generator(8)

mrt 20 14:05:45 paul-GP60-2QF systemd[1]: Starting LSB: VirtualBox Linux kernel module...
mrt 20 14:05:46 paul-GP60-2QF virtualbox[15359]:  * Loading VirtualBox kernel modules...
mrt 20 14:05:46 paul-GP60-2QF virtualbox[15359]:  * modprobe vboxdrv failed. Please use 'dmesg' to find out why
mrt 20 14:05:46 paul-GP60-2QF virtualbox[15359]:    ...fail!
mrt 20 14:05:46 paul-GP60-2QF systemd[1]: virtualbox.service: Control process exited, code=exited status=1
mrt 20 14:05:46 paul-GP60-2QF systemd[1]: Failed to start LSB: VirtualBox Linux kernel module.
mrt 20 14:05:46 paul-GP60-2QF systemd[1]: virtualbox.service: Unit entered failed state.
mrt 20 14:05:46 paul-GP60-2QF systemd[1]: virtualbox.service: Failed with result 'exit-code'.

Теперь во время установки была маленькая "аномалия". - процедура установки попросила, чтобы я отключил безопасную начальную загрузку. - Я не желаю этого, я хочу продолжать использовать безопасную начальную загрузку (поскольку она работает и с человечностью и с окнами - и даже virtualbox на окнах - на данный момент).

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

0
задан 20 March 2018 в 06:16

1 ответ

Используйте VirtualBox в безопасной начальной загрузке (UEFI)

Используя сам скомпилированные модули ядра в безопасной загрузочной среде возможно. Все модули имеют, действительно подписан, и ключи должны быть зарегистрированы в безопасной начальной загрузке BIOS (или загрузчик)

Создайте сертификат подписания и ключ

Создайте сертификат и закрытый ключ для подписания модулей ядра (требуемый пакет sudo apt-get install openssl).

## Create a signing key and certificate##
## Signing certificate and keys
sign_key=signing_key.priv
sign_crt=signing_key.x509

## Subject for certificate
sign_sub=""
sign_sub+="/O=Your Name"
sign_sub+="/CN=Module Signing Key"
sign_sub+="/emailAddress=Your.Name@somewhere.com"
sign_sub+="/"

## Create certificate and keys
if [[ ! -f "$sign_key" ]] && [[ ! -f "$sign_crt" ]]; then
    openssl req -new -x509 -newkey rsa:2048 -keyout "$sign_key" \
        -outform DER -out "$sign_crt" -nodes -days 365 -subj "$sign_sub"
fi
## Print certificate
openssl x509 -in "$sign_crt" -inform DER -noout -text

Создайте инструмент подписания ядра Linux

В заголовках ядрa Linux под /usr/src/ инструмент подписания для модулей ядра (требуемые пакеты sudo apt-get install build-essential libssl-dev).

## Build signing tool
gcc "/usr/src/linux-headers-$(uname -r)/scripts/sign-file.c" -L \
   /usr/include/openssl/ -lcrypto -lssl -o sign-file

Подписание модулей VirtualBox

С инструментом подписания должны быть подписаны все модули VirtualBox.

## Sign virtualbox modules
vbox_mod=()
vbox_mod+=(vboxdrv)
vbox_mod+=(vboxnetadp)
vbox_mod+=(vboxnetflt)
vbox_mod+=(vboxpci)

for module in "${vbox_mod[@]}"; do
    echo "Signing module $module"
    sudo sign-file sha256 "$sign_key" "$sign_crt" \
        "$(modinfo -n "$module")"
done

Добавьте сертификат для обеспечения начальной загрузки

Наконец, сертификат должен быть добавлен к безопасной начальной загрузке BIOS (требует пакета sudo apt-get install mokutil)

## Add key to UEFI keyring
sudo mokutil --import "$sign_crt"

Рекомендуется создать сценарий, чтобы сделать это, потому что с каждым обновлением ядра, модули должны быть знаком снова. Сертификат и ключ могут быть снова использованы, таким образом, брелок для ключей UEFI не должен быть обновлен все время.

0
ответ дан 30 October 2019 в 05:28

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

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