TROUBLESHOOTING.md 4.6 KB

Guía de Resolución de Problemas - VirtManager

Error al Agregar Disco a una VM

Síntomas

  • Aparece mensaje "Error: La máquina virtual debe estar PARADA"
  • "El disco ya existe"
  • El disco no se agregó a la VM

Causas y Soluciones

  1. La VM está corriendo

Error: "La máquina virtual debe estar PARADA (shut off) para agregar un disco"

Solución:

  • Detén la VM haciendo clic en "Stop" en la lista de VMs
  • Espera a que el estado cambie a "shut off"
  • Intenta agregar el disco nuevamente
  1. El nombre del disco ya existe

Error: "El disco [nombre].qcow2 ya existe. Usa un nombre de disco diferente"

Solución:

  • Usa un nombre de disco diferente (ej: cambiar "datos" a "datos2")
  • O verifica en /var/lib/libvirt/images/ si el archivo existe:

     ls -la /var/lib/libvirt/images/ | grep qcow2
    
  • Si existe y quieres reutilizarlo, puedes eliminarlo:

     sudo rm /var/lib/libvirt/images/nombre.qcow2
    
  1. No hay VM seleccionada

Error: "Por favor selecciona una máquina virtual"

Solución:

  • Asegúrate de seleccionar una VM en el dropdown antes de hacer clic en "Add Disk"
  1. Nombre de disco vacío o inválido

Error: "Por favor ingresa un nombre para el disco"

Solución:

  • Ingresa un nombre válido (ej: datos, backup, storage)
  • Usa solo letras, números y guiones
  1. Tamaño de disco inválido

Error: "Por favor ingresa un tamaño de disco válido (> 0 GB)"

Solución:

  • Ingresa un número mayor que 0
  • Usa valores razonables (ej: 10, 50, 100, etc.)

Error "undefined" al crear una VM

Síntomas

  • Al intentar crear una VM, aparece un popup con el mensaje "undefined"
  • En la consola del navegador aparecen errores de red

Causas Comunes

  1. Permisos insuficientes para crear discos
    • El usuario no tiene permisos para escribir en /var/lib/libvirt/images/

Solución:

   # Verifica que el script create_disk.sh esté configurado en sudoers
   sudo -l | grep create_disk
   
   # Si no está configurado, ejecuta:
   echo "creylopez ALL=(ALL) NOPASSWD: /home/creylopez/virtmanager/create_disk.sh" | sudo tee /etc/sudoers.d/virtmanager
   sudo visudo -c -f /etc/sudoers.d/virtmanager
  1. Script create_disk.sh no tiene permisos de ejecución

Solución:

   chmod +x /home/creylopez/virtmanager/create_disk.sh
  1. ISO no seleccionada
    • Debes seleccionar una ISO antes de crear la VM

Solución:

  • Primero sube una ISO usando la sección "Upload ISO"
  • Luego selecciónala en la forma de "Create VM"
  1. Servidor no está corriendo

Solución:

   # Inicia el servidor
   cd /home/creylopez/virtmanager
   source venv/bin/activate
   sudo uvicorn app.main:app --host 0.0.0.0 --port 8000
  1. libvirt no está ejecutándose

Solución:

   sudo systemctl start libvirtd
   sudo systemctl status libvirtd

Error al crear disco: "Permission denied"

Solución

El script helper necesita ejecutarse con permisos elevados. Verifica la configuración de sudoers:

# Ver si está bien configurado
sudo -l

# Debe mostrar algo como:
# (ALL) NOPASSWD: /home/creylopez/virtmanager/create_disk.sh

# Si no está, configúralo:
echo "creylopez ALL=(ALL) NOPASSWD: /home/creylopez/virtmanager/create_disk.sh" | sudo tee /etc/sudoers.d/virtmanager

Consola VNC no abre

Verificar que websockify está instalado

which websockify
pip list | grep websockify

Verificar que la VM está corriendo

virsh list

Reiniciar websockify

# Mata los procesos existentes
pkill websockify

# Intenta abrir la consola nuevamente

VM no inicia después de crear

Verificar estado

virsh list --all
virsh dominfo nombre_vm

Ver logs de libvirt

sudo journalctl -u libvirtd -n 50 -f

Eliminar y recrear la VM

virsh undefine nombre_vm --storage
# Luego crea la VM nuevamente desde la interfaz web

Performance o problemas de conexión

Verificar disponibilidad de puertos

# Verifica que los puertos estén disponibles
ss -tlnp | grep 8000  # Puerto FastAPI
ss -tlnp | grep 59    # Rango de puertos VNC

Reiniciar los servicios

sudo systemctl restart libvirtd
# Luego reinicia VirtManager

Contacto y Soporte

Si encuentras problemas no documentados aquí:

  1. Revisa los logs del servidor: journalctl -u virtmanager -n 50
  2. Revisa la consola del navegador (F12 -> Console)
  3. Verifica que todos los prerrequisitos estén instalados