Cuando requeria ejecutar Virtualbox en un sistema fedora, la única opción viable era deshabilitar la opción de secureboot en equipo, hasta hace poco, siempre existía la necesidad de firmar los drivers de virtualbox, pero esto no era posible o no había encontrado como hasta ahora.
En esta página se explica el proceso detalladamente. Básicamente los pasos son los siguientes:
Preparar el sistema Fedora:
Pasarnos a modo super usuario
#sudo -i
Ejecutar actualizaciones y limpieza del sistema:
#dnf -y update && dnf -y upgrade && dnf -y autoremove
Instalar cabecéras del kernel y módulos de desarrollo:
#dnf install -y kernel-devel-$(uname -r) kernel-headers
Habilitar los repositorios:
Pasarnos a super usuario
#sudo -i
Importar la firma de Oracle VirtualBox en nuestros RPM
#rpm --import https://www.virtualbox.org/download/oracle_vbox.asc
Agregar el Repositorio oficial VirtualBox vía DNF:
#dnf config-manager --add-repo https://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
Instalar VirtualBox en Fedora 36
Instalamos VirtualBox vía DNF
#dnf install -y VirtualBox-6.1
regresar al usuario sin privilegios y ejecutar
#exit
sudo agregar al usuario normal al grupo vboxusers
#sudo usermod -aG vboxusers $USER
#sudo -i
Preparar el sistema para firmar los drivers en los sistemas EFI con SecureBoot habilitado
Generar el Machine Owner Key MOK
Instalar OpenSSL
#dnf install -y openssl
Crear el directorio para nuestros módulos:
#mkdir /root/module-signing
#cd /root/module-signing
Crear la llave de la máquina (yo usé hostname) pero ese campo CN se puede personalizar a su gusto:
#openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=$(hostname)/"
Proteger la llave creada
#chmod 600 MOK.priv
Ahora vamos a importar la llave generada con la utilidad mokutil, debemos colocar contraseña y reiniciar, esto nos dirigirá a la BIOS donde debemos completar el proceso de importación, colocando la contraseña asignada en este paso.
#mokutil --import /root/module-signing/MOK.der
Al reiniciar presionamos Enter
1. Seleccionamos la opción Enrolar/Inscribir MOK
2. Seleccionamos la opcion View Key 0 (Ver llave 0) para revisar el Machine Owner, si la información es correcta, continuamos.
3. Elegimos continuar y damos la opción YES (si), en seguida se solicita la contraseña que le asingamos a la llave.
4. Reiniciamos el sistema.
Con este MOK agregado a la BIOS nos permitirá firmar nuestros drivers de VirtualBox y así completar el proceso:
creamos el script /root/module-signing/sign-vbox-modules
Nos pasamos a Root:
#sudo -i
Creamos el script con el comando echo.
# echo "
#!/bin/bash
for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
echo "Signing $modfile"
/usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
/root/module-signing/MOK.priv \
/root/module-signing/MOK.der "$modfile"
done
" > /root/module-signing/sign-vbox-modules
Luego de esto Protegemos el script
#chmod 700 /root/module-signing/sign-vbox-modules
Ahora podemos ejecutar el script:
#/root/module-signing/sign-vbox-modules
Con los drivers firmados podemos habilitar nuestro sistema VirtualBox
#systemctl enable --now vboxdrv
Habilitar las Extensiones de VirtualBox
Descargamos las extensiones:
#wget https://download.virtualbox.org/virtualbox/6.1.34/Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack
Las agregamos al sistema Instalado y Habilitado
#VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack
Y así podemos ya Instalar nuestros sismemas de pruebas con VirtualBox en Fedora 35 - 36
Un saludo.