Tutorial: Configurar KVM para permitir copiar y pegar entre máquinas virtuales¶
Configuración para los modos gráficos¶
Requisitos previos¶
- Tienes KVM y QEMU instalados y funcionando correctamente en tu máquina host.
- Tienes una máquina virtual (MV) creada y en funcionamiento.
Pasos para habilitar la funcionalidad de copiar y pegar (Portapapeles compartido)¶
Para poder copiar y pegar texto entre el host y las máquinas virtuales, debes instalar y configurar un conjunto de herramientas llamado Spice. Spice es un protocolo que, entre otras cosas, permite habilitar la compartición del portapapeles.
Paso 1: Instalar Spice en el host¶
- Abre una terminal en tu host.
- Asegúrate de que tienes instalado el paquete
spice-vdagent
en el host. Ejecuta:bash sudo apt update sudo apt install spice-vdagent
En otras distribuciones, puedes utilizar el gestor de paquetes de tu sistema (por ejemplo, dnf
en Fedora).
Paso 2: Configurar la máquina virtual en virt-manager
¶
- Abre virt-manager en tu host:
bash virt-manager
- Selecciona la máquina virtual a la que deseas agregar la funcionalidad de copiar y pegar.
- Haz clic en el botón de Detalles de la MV (icono de herramientas).
- En el menú de la izquierda, selecciona la opción Display Spice (o Display en algunas versiones).
- Asegúrate de que el servidor de Spice esté seleccionado para la visualización y no VNC.
- Navega a la pestaña de Video dentro de la configuración de la máquina virtual y selecciona el controlador QXL como el dispositivo de video.
- Guarda los cambios y arranca la máquina virtual.
Paso 3: Instalar Spice y spice-vdagent
en la máquina virtual¶
Dependiendo del sistema operativo que estés utilizando en la máquina virtual, necesitarás instalar el spice-vdagent para habilitar la funcionalidad de portapapeles compartido.
En Linux (Debian/Ubuntu)¶
- Abre una terminal dentro de la máquina virtual.
- Instala el paquete
spice-vdagent
ejecutando:bash sudo apt update sudo apt install spice-vdagent
- Reinicia la máquina virtual para que los cambios surtan efecto.
En Windows¶
- Descarga e instala los Spice Guest Tools desde este enlace.
- Sigue el asistente de instalación para agregar los controladores de Spice a tu sistema Windows.
- Reinicia la máquina virtual.
Paso 4: Probar copiar y pegar¶
- Una vez reiniciada la máquina virtual, intenta copiar texto desde el host (por ejemplo, selecciona texto y presiona
Ctrl+C
). - Luego, ve a la máquina virtual, selecciona un área de texto y presiona
Ctrl+V
para pegar. - Verifica que el texto copiado se haya transferido correctamente.
Notas adicionales:¶
-
Spice-vdagent es el agente responsable de la compartición del portapapeles, entre otras funciones (como la redirección de dispositivos USB).
-
Además de copiar y pegar texto, también puedes redimensionar automáticamente la ventana de la máquina virtual si usas el controlador de video QXL.
-
En virt-manager, asegúrate siempre de que estás utilizando Spice en lugar de VNC para habilitar estas funciones avanzadas.
Opciones para copiar y pegar en modo texto¶
Si estás utilizando dos máquinas virtuales con Ubuntu Server o cualquier sistema operativo sin entorno gráfico, las funciones de Spice relacionadas con el portapapeles compartido (copiar y pegar) no estarán disponibles. Esto es porque Spice está diseñado para trabajar con entornos gráficos, y depende del agente Spice (spice-vdagent
), que requiere una interfaz gráfica para habilitar la funcionalidad de copiar y pegar, junto con otras características como la redimensión de pantalla.
Dado que en servidores o sistemas en modo texto (sin GUI) no hay un entorno gráfico, el agente Spice y los controladores de video como QXL no se pueden usar.
Alternativas para copiar y pegar entre máquinas virtuales sin entorno gráfico:¶
Aunque Spice no funcionará en este caso, hay varias maneras de transferir texto y archivos entre máquinas virtuales en modo texto:
SSH con acceso directo o redireccionamiento de comandos:¶
Puedes conectarte entre las máquinas virtuales o entre la máquina host y las máquinas virtuales usando SSH. Esto te permite copiar texto o archivos sin necesidad de un portapapeles compartido.
Para copiar un archivo desde el host a la máquina virtual:
scp archivo.txt usuario@direccion_ip_maquina_virtual:/ruta/destino/
Para copiar directamente un texto como un comando:
ssh usuario@direccion_ip_maquina_virtual 'echo "Texto a copiar" > archivo.txt'
Esto es particularmente útil para transferir grandes bloques de texto o scripts entre máquinas.
Directorio compartido con NFS o Samba:¶
Puedes configurar un sistema de archivos compartido entre las máquinas virtuales utilizando NFS o Samba. Esto te permite copiar archivos o contenido en un directorio común al que ambas máquinas virtuales puedan acceder.
Configura un directorio compartido en una máquina y monta ese directorio en la otra. Todo lo que copies o crees en ese directorio será accesible en ambas máquinas. Esto es útil para transferir archivos grandes o colaborar en proyectos entre máquinas.
Uso de herramientas como tmux o screen:¶
Si necesitas trabajar simultáneamente en ambas máquinas virtuales desde la terminal, puedes usar herramientas como tmux
o screen
, que permiten compartir sesiones de terminal entre máquinas o usuarios.
Una sesión compartida de tmux
te permite acceder a una misma terminal desde dos ubicaciones diferentes (como desde las dos máquinas virtuales).
Esto puede simular un flujo de trabajo de copiar y pegar, aunque no es exactamente lo mismo que un portapapeles compartido.
Redireccionamiento de Puertos o Utilización de Herramientas como rsync¶
Si la sincronización de archivos o carpetas es un tema recurrente, puedes usar herramientas como rsync para sincronizar directorios y archivos entre las máquinas virtuales. Esto también es útil para mantener el contenido actualizado en tiempo real entre ambas máquinas.
Ejemplo con rsync:
rsync -avz /ruta/origen usuario@direccion_ip_maquina_virtual:/ruta/destino
Conclusión¶
Para servidores sin entorno gráfico (como Ubuntu Server), la funcionalidad de Spice para copiar y pegar no es aplicable. En su lugar, puedes usar herramientas como SSH, scp, rsync, directorio compartido o tmux
para transferir texto, archivos y comandos entre máquinas virtuales. Estas alternativas son ideales para entornos sin GUI.