Saltar a contenido

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

  1. Abre una terminal en tu host.
  2. 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

  1. Abre virt-manager en tu host: bash virt-manager
  2. Selecciona la máquina virtual a la que deseas agregar la funcionalidad de copiar y pegar.
  3. Haz clic en el botón de Detalles de la MV (icono de herramientas).
  4. En el menú de la izquierda, selecciona la opción Display Spice (o Display en algunas versiones).
  5. Asegúrate de que el servidor de Spice esté seleccionado para la visualización y no VNC.
  6. 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.
  7. 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)

  1. Abre una terminal dentro de la máquina virtual.
  2. Instala el paquete spice-vdagent ejecutando: bash sudo apt update sudo apt install spice-vdagent
  3. Reinicia la máquina virtual para que los cambios surtan efecto.

En Windows

  1. Descarga e instala los Spice Guest Tools desde este enlace.
  2. Sigue el asistente de instalación para agregar los controladores de Spice a tu sistema Windows.
  3. Reinicia la máquina virtual.

Paso 4: Probar copiar y pegar

  1. Una vez reiniciada la máquina virtual, intenta copiar texto desde el host (por ejemplo, selecciona texto y presiona Ctrl+C).
  2. Luego, ve a la máquina virtual, selecciona un área de texto y presiona Ctrl+V para pegar.
  3. 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.