Pestañas

19 marzo 2025

Error en Virtualbox "can't operate in vmx root mode"

Hace unos días se actualizó el kernel Linux en LMDE 6 (Debian) a la versión 6.12.12 . Desde entonces al arrancar las máquinas virtuales de Virtualbox me devuelve este error: 

        VBoxManage: error: 

        VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension,                    recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE)

Después de mucho buscar he encontrado un par de soluciones en internet.
La primera solución es editar un archivo

        sudo nano /etc/modprobe.d/blacklist.conf

    y añadirle estas dos lineas

        blacklist kvm
        blacklist kvm_intel  (si es Intel)
        blacklist kvm_amd  (si es AMD)

    guardamos y reiniciamos. 
Esto funciona, pero tiene un inconveniente. Si utilizas otra aplicación que necesite kvm, como Qemu/kvm, esta no va a funcionar. Si no utilizas nada de esto, esta es una solución al problema con Virtualbox.

Y vamos con la segunda, que es la que he utilizado. Consiste en ejecutar en consola estas dos lineas antes de ejecutar Virtualbox

    Si el procesador es Intel

        sudo modprobe -r kvm_intel
        sudo modprobe -r kvm

    Si el procesador es AMD

        sudo modprobe -r kvm_amd
        sudo modprobe -r kvm

Una vez hecho esto funciona, pero también pienso que es un engorro hacer esto cada vez que queramos entrar en Virtualbox, así que he hecho un script

    #!/bin/bash

    # Eliminar módulos KVM si están cargados
    if lsmod | grep -q kvm_intel; then
        sudo modprobe -r kvm_intel || echo "No se pudo descargar kvm_intel"
    fi

    if lsmod | grep -q kvm; then
        sudo modprobe -r kvm || echo "No se pudo descargar kvm"
    fi

    # Ejecutar VirtualBox
    VirtualBox "$@" &

Con esto lo hacemos todo, incluso nos abre el programa.
Con esto estaría terminado, pero opcionalmente, podemos hacer que no nos pida el password cada vez que ejecutemos el script. Esto lo hacemos modificando el archivo etc/sudoers de esta forma

    Editamos el archivo con

        sudo visudo

    y al final añadimos la linea

        tu_usuario ALL=(ALL) NOPASSWD: /sbin/modprobe -r kvm_intel, /sbin/modprobe -r kvm

    sustituyendo tu_usuario por tu nombre de usuario real.

Guardamos y listo.
Espero que os sirva, al menos mientras modifican el kernel o VirtualBox.

No hay comentarios:

Publicar un comentario

Gracias por tu comentario