Hace un par de semanas, escribí un artículo sobre cómo estoy (un poco) enamorado de las cajas de gnomos. Bueno, sigo trabajando con cajas de gnomos todos los días. Y esa sencillez de la que estoy un poco enamorado tiene un costo:hacer algunas cosas es exactamente lo opuesto a lo simple.
Aquí hay una pequeña lista de cosas que me molestaron y cómo las resolví.
Conductores invitados
Incluso cuando el rendimiento de la virtualización es "bueno"¹, será mejor¹ si instala esos controladores y el agente. Su máquina virtual no solo funcionaría mejor¹, sino que habilitaría funciones como el cambio automático de resolución, copiar y pegar entre host e invitado,...
¹ Descargo de responsabilidad :No ejecuté ningún punto de referencia en ninguna de mis máquinas virtuales, por lo que no puedo decir qué tan "bueno" es este rendimiento. Solo voy a decir que se siente lo suficientemente rápido .
Linux
Lo más probable es que, si siguió el nuevo asistente de VM con las plantillas provistas, ya tiene los controladores y el agente ejecutándose. Pero si ha instalado una distribución de Linux no tan popular, los recuadros le informarán que necesita instalar cosas:
Esta captura de pantalla se llevó a una máquina virtual que ejecuta Devuan, una bifurcación de Debian sin systemd sobre la que he escrito antes. Como con cualquier derivado de Debian, instalamos paquetes con apt-get:
apt-get install spice-vdagent xserver-xorg-video-qxl
Otras distribuciones de Linux necesitan ambos paquetes, el nombre probablemente sea el mismo o al menos similar, y necesita usar ese sistema de paquetes de distribución (es decir, yum install) para instalarlo.
Por supuesto, siempre puede descargar las fuentes y compilarlas usted mismo. Descargue las fuentes desde aquí https://www.spice-space.org/download.html en la sección Invitado.
Ventanas
En el mismo sitio puede descargar las herramientas para invitados, que incluyen los controladores qxl. En la sección de archivos binarios de Windows, simplemente descargue el instalador de especias-invitado-herramientas y eso sería todo:
Redes en puente
De forma predeterminada, cada máquina virtual se crea con redes NAT. Esto significa que sus máquinas virtuales se conectarán a Internet pero no al revés (por ejemplo, ni siquiera puede hacer ping a una máquina virtual).
Si desea o necesita establecer contactos con las máquinas virtuales que necesita para habilitar la red en puente y esta parte es complicada. También es lo más molesto que he encontrado en las cajas. Con VirtualBox puedes hacer lo mismo con 2 o 3 clics de ratón. Pero seguiré trabajando con cajas de gnomos.
Primero habilite libvirtd, en distribuciones con systemd ejecute:
# systemctl enable libvirtd.service; systemctl start libvirtd.service
A continuación, habilite las interfaces predeterminadas:
virsh net-autostart --network default virsh net-start default ip a show virbr0
Ahora cree el archivo (si no existe) /etc/qemu/bridge.conf con el siguiente contenido:
allow virbr0
Ahora necesitamos establecer los permisos correctos en el ejecutable qemu-bridge-helper. Estoy usando gentoo linux en mi host, este ejecutable binario vive en /usr/libexec/qemu-bridge-helper , en otras distribuciones vive en /usr/lib/qemu-bridge-helper . Verifique los permisos y el propietario con:
# ls -lh /usr/libexec/qemu-bridge-helper -rwx--x--x 1 root root 234K dic 19 19:38 /usr/libexec/qemu-bridge-helper
Ese archivo podría pertenecer a otros grupos como kvm o qemu. Asegúrate de que tu usuario sea parte de ese grupo. En este punto, muchos tutoriales dicen que necesita agregar setsuid. También agregué setgid:
# chmod ug+s /usr/libexec/qemu-bridge-helper # ls -lh /usr/libexec/qemu-bridge-helper -rws--s--x 1 root root 234K dic 19 19:38 /usr/libexec/qemu-bridge-helper
Podría suceder, al menos me sucedió a mí, que después de alguna actualización, esos permisos vuelvan al valor predeterminado y ya no pueda iniciar ninguna VM. Ya no sucedió una vez que agregué a mi usuario al grupo raíz (no sé cuál es más peligroso, suid o mi usuario habitual miembro del grupo raíz). Notará que hay algún problema con los permisos si recibe un error como este:
error starting domain: internal error: /usr/libexec/qemu/qemu-bridge-helper --use-vnet --br=virbr0 --fd=28: failed to communicate with bridge helper: Transport endpoint is not connected stderr=failed to create tun device: Operation not permitted
El último paso para obtener la red es editar el archivo xml (haga clic con el botón derecho en vm → propiedades → sistema → editar xml) y cambie esta sección:
<interface type='user'> <mac address='52:54:00:0b:8f:07'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
A esto:
<interface type="bridge"> <mac address="52:54:00:b8:0a:93"/> <source bridge="virbr0"/> <target dev="tap1"/> <model type="virtio"/> <alias name="net0"/> <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/> </interface>
Por alguna razón, las próximas máquinas virtuales que cree estarán en modo puente.
Ubicación de imágenes virtuales
Gnome boxes almacena imágenes virtuales en la siguiente ubicación:~/.local/share/gnome-boxes/images/ . ~ significa directorio de inicio de su usuario.
Se supone que esta ruta no debe cambiar, pero si se está quedando sin espacio en disco o simplemente desea que sus máquinas virtuales vivan en otra ruta, siempre puede:
- montar otro disco o sistema de archivos en esa ruta
- cree el directorio en otro disco con suficiente espacio y luego convierta esa ruta en un enlace simbólico
Además, si desea hacer una copia de seguridad de su VM, simplemente copie la imagen desde allí a otro lugar.