DEV Community

Cover image for Assinando módulos VirtualBox Kernel
João Pedro
João Pedro

Posted on

Assinando módulos VirtualBox Kernel

Ao enfrentar os problemas de assinatura e erros nos módulos "vboxdrv, vboxnetflt, vboxnetadp, vboxpci". Essas foram as etapas que segui para ativar o VirtualBox em minha máquina Fedora 38 sem desativar o UEFI Secure Boot.

Instalar o pacote mokutil:

sudo dnf update
sudo dnf install mokutil

mokutil será usado para assinar seus próprios módulos para usar com a Inicialização Segura UEFI, e adicionar certificados ao chaveiro de certificados confiáveis do kernel.

Criar pasta para assinatura de módulos e chave RSA:

sudo su
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 700 MOK.priv

Criar a senha para o MOK (será necessário esta senha para a reinicialização):

sudo mokutil --import MOK.der

Reinicie o equipamento e siga os processos do MOK:

  • Seleciona Enroll MOK
    Image description

  • Selecione Continue
    Image description

  • Selecione Yes para adicionar as chaves
    Image description

  • Coloque a senha
    Image description

  • Continue para o Reboot
    Image description

Criar o script para fazer as assinaturas:

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

Adicione dentro de 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


Enter fullscreen mode Exit fullscreen mode

Verifique se há algum erro no script com o comando:

find /usr/src -name sign-file

Adicione as permissões ao script e o execute:

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

Execute o VirtualBox:

modprobe vboxdrv

Conclusões finais:

Caso o processo não funcione, uma opção é desligar o Secure Boot, porém por diversos motivos não é uma prática recomendada.

Outra opção é verificar a qualidade das VM's que está tentando rodar. Em alguns casos ela pode estar corrompida ou até mesmo a ISO na qual tenta instalar.

Top comments (1)

Collapse
 
jerresilva75 profile image
Jerre

Obrigado. Valeu!