DEV Community

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

Posted on

4 1 1

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!

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more