VirtualBox (Oracle) en Ubuntu: arreglar vboxdrv y arrancar VMs rápido
Punto de partida: ya tienes instalada la versión de Oracle (no la de repos).
Objetivo: compilar módulos, evitar conflictos con KVM y dejar la VM fluida.
Tabla de contenidos
- 1 1) Requisitos del kernel y compilación de módulos
- 2 2) Secure Boot (si los módulos no cargan)
- 3 3) Error “VT-x is being used by another hypervisor” (KVM)
- 4 4) Ajustes recomendados en la VM (VirtualBox → Configuración)
- 5 5) Arranque y verificación
- 6 6) Scripts para alternar entre VirtualBox y KVM (opcional)
- 7 7) Resumen rápido
1) Requisitos del kernel y compilación de módulos
sudo apt update
sudo apt install -y build-essential dkms linux-headers-$(uname -r)
sudo /sbin/vboxconfig
Comprueba que el módulo cargó:
lsmod | grep -E '^vbox| vbox'
# Debes ver: vboxdrv (y luego vboxnetflt/vboxnetadp cuando uses red)
Si te sale un error de librería (p.ej.
liblzf.so.1
), instala el paquete:sudo apt install liblzf1
(o el que te pida el mensaje exacto).
2) Secure Boot (si los módulos no cargan)
Comprueba:
mokutil --sb-state
- enabled → desactívalo en BIOS/UEFI (opción más simple) y repite
sudo /sbin/vboxconfig
.
(Firmar módulos con MOK también vale, pero es más largo.)
3) Error “VT-x is being used by another hypervisor” (KVM)
VirtualBox no puede funcionar si KVM está cargado.
Temporal (hasta reiniciar):
lsmod | grep kvm
sudo rmmod kvm_intel 2>/dev/null || true
sudo rmmod kvm_amd 2>/dev/null || true
sudo rmmod kvm 2>/dev/null || true
sudo modprobe vboxdrv
Permanente (bloquear KVM):
echo -e "blacklist kvm\nblacklist kvm_intel\nblacklist kvm_amd" | \
sudo tee /etc/modprobe.d/blacklist-kvm.conf
sudo update-initramfs -u
sudo reboot
(Si algún día quieres volver a KVM, borra ese .conf
y reinicia.)
4) Ajustes recomendados en la VM (VirtualBox → Configuración)
Sistema → Procesador
- CPUs: 2 (en portátiles de 4 hilos, no pases de 2).
- Execution/Processing Cap: 100%.
Sistema → Aceleración
- Habilitar VT-x/AMD-V ✅
- Nested Paging ✅
Pantalla
- Memoria de vídeo: 128 MB.
- Aceleración 3D ✅ (si el invitado la soporta).
Memoria
- RAM de la VM: 4 GB (deja al host ≥4 GB libres para evitar swap).
Almacenamiento
- Disco en SSD si es posible (la diferencia es grande).
- VDI dinámico está bien.
5) Arranque y verificación
virtualbox
Al iniciar la VM, en Registro no deben aparecer:
VERR_VMX_IN_VMX_ROOT_MODE
(significa KVM activo).vboxdrv not loaded
(módulo no cargado).
6) Scripts para alternar entre VirtualBox y KVM (opcional)
Usar VirtualBox:
cat <<'SH' | sudo tee /usr/local/bin/use-virtualbox >/dev/null
#!/usr/bin/env bash
set -e
modprobe -r kvm_intel 2>/dev/null || true
modprobe -r kvm_amd 2>/dev/null || true
modprobe -r kvm 2>/dev/null || true
modprobe vboxdrv
lsmod | egrep 'kvm|vbox'
SH
sudo chmod +x /usr/local/bin/use-virtualbox
Usar KVM:
cat <<'SH' | sudo tee /usr/local/bin/use-kvm >/dev/null
#!/usr/bin/env bash
set -e
modprobe -r vboxnetflt vboxnetadp vboxdrv 2>/dev/null || true
modprobe kvm || true
modprobe kvm_intel 2>/dev/null || modprobe kvm_amd 2>/dev/null || true
lsmod | egrep 'kvm|vbox'
SH
sudo chmod +x /usr/local/bin/use-kvm
7) Resumen rápido
apt install build-essential dkms linux-headers-$(uname -r)
sudo /sbin/vboxconfig
- Desactiva Secure Boot si impide cargar módulos.
- Quita KVM (
rmmod kvm*
) o bloquéalo si usas VirtualBox. - Activa VT-x + Nested Paging, 2 vCPU, 4 GB RAM, vídeo 128 MB + 3D.
- Arranca y comprueba que no haya errores en el log.