Este conflicto puede surgir especialmente si instalaste previamente herramientas relacionadas con emulación de Raspberry Pi u otros entornos ARM que utilizan KVM como backend, incluso si no los usás activamente. Cuando los módulos kvm y kvm_intel (o kvm_amd) están cargados, toman control de las extensiones de virtualización del procesador, impidiendo que VirtualBox acceda a ellas.
Solución: Un script para descargar KVM antes de iniciar VirtualBox
La solución consiste en descargar estos módulos del kernel antes de lanzar VirtualBox. Para ello, preparé un pequeño script en Bash que hace lo siguiente:
- Verifica si los módulos
kvmykvm_intel/kvm_amdestán cargados. - Si lo están, los descarga usando
modprobe -r. - Luego, lanza VirtualBox como mi usuario normal, para asegurar compatibilidad con el entorno gráfico.
Este es el contenido del script:
#!/bin/bash
echo "🔐 Solicitando permisos..."
[ "$EUID" -ne 0 ] && exec sudo "$0" "$@"
echo "🔍 Verificando si KVM está cargado..."
if lsmod | grep -q kvm; then
echo "⚠️ KVM está cargado. Intentando desactivarlo..."
if lsmod | grep -q kvm_intel; then
modprobe -r kvm_intel && echo "✅ kvm_intel descargado."
elif lsmod | grep -q kvm_amd; then
modprobe -r kvm_amd && echo "✅ kvm_amd descargado."
fi
if modprobe -r kvm; then
echo "✅ kvm descargado exitosamente."
else
echo "❌ No se pudo descargar kvm. Puede estar en uso."
exit 1
fi
else
echo "✅ KVM no está cargado."
fi
echo "🚀 Iniciando VirtualBox como usuario normal..."
sudo -u "$SUDO_USER" virtualbox & disown
exit 0
Lo guardé en /home/efrain/Scripts/VirtualBox.sh y le di permisos de ejecución con:
chmod +x /home/efrain/Scripts/VirtualBox.sh
Crear un acceso directo para el escritorio
Para poder ejecutarlo cómodamente con doble clic, creé un archivo .desktop en mi escritorio con el siguiente contenido:
[Desktop Entry]
Type=Application
Name=VirtualBox - Script de Inicio
Comment=Desactiva KVM y lanza VirtualBox
Exec=konsole -e /home/efrain/Scripts/VirtualBox.sh
Icon=virtualbox
Categories=System;Emulator;
Terminal=false
StartupNotify=false
Luego le di permisos de ejecución también al acceso directo:
chmod +x ~/Escritorio/VirtualBox.desktop
La clave está en que konsole -e lanza una terminal para que pueda ingresar la contraseña de sudo, ya que sin una terminal interactiva el script no puede solicitarla correctamente.
Resultado
Gracias a este pequeño script y acceso directo, puedo usar VirtualBox en Kubuntu sin errores de virtualización, incluso cuando el sistema haya cargado previamente módulos de KVM por otros entornos. Esta solución es sencilla, reversible y no requiere desinstalar nada.
Espero que te sirva si te encontrás con un problema similar. Si tenés dudas o sugerencias, podés dejarme un comentario.
