# 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 2. **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: ```bash ls -la /var/lib/libvirt/images/ | grep qcow2 ``` - Si existe y quieres reutilizarlo, puedes eliminarlo: ```bash sudo rm /var/lib/libvirt/images/nombre.qcow2 ``` 3. **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" 4. **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 5. **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:** ```bash # 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 ``` 2. **Script create_disk.sh no tiene permisos de ejecución** **Solución:** ```bash chmod +x /home/creylopez/virtmanager/create_disk.sh ``` 3. **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" 4. **Servidor no está corriendo** **Solución:** ```bash # Inicia el servidor cd /home/creylopez/virtmanager source venv/bin/activate sudo uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` 5. **libvirt no está ejecutándose** **Solución:** ```bash 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: ```bash # 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 ```bash which websockify pip list | grep websockify ``` ### Verificar que la VM está corriendo ```bash virsh list ``` ### Reiniciar websockify ```bash # Mata los procesos existentes pkill websockify # Intenta abrir la consola nuevamente ``` ## VM no inicia después de crear ### Verificar estado ```bash virsh list --all virsh dominfo nombre_vm ``` ### Ver logs de libvirt ```bash sudo journalctl -u libvirtd -n 50 -f ``` ### Eliminar y recrear la VM ```bash virsh undefine nombre_vm --storage # Luego crea la VM nuevamente desde la interfaz web ``` ## Performance o problemas de conexión ### Verificar disponibilidad de puertos ```bash # Verifica que los puertos estén disponibles ss -tlnp | grep 8000 # Puerto FastAPI ss -tlnp | grep 59 # Rango de puertos VNC ``` ### Reiniciar los servicios ```bash 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