¿Cómo configurar el tamaño de pantalla dinámico para un invitado qemu de Windows 10 en ubuntu 18.04?

¿Cómo configurar el tamaño de pantalla dinámico para un invitado qemu de Windows 10 en ubuntu 18.04?

Tengo una configuración de arranque dual en mi computadora portátil: Ubuntu 18.04 y Windows 10. Desde ubuntu, puedo iniciar desde mi partición de Windows existente usando qemu con la ayuda deesta guía. El comando que estoy usando es este:

sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 8 -m 8192 \
-drive format=raw,file=/dev/nvme0n1,index=1 \
-bios /usr/share/ovmf/OVMF.fd \
-display sdl -vga qxl \
-device qemu-xhci,id=xhci \
-netdev user,id=vmnic,smb=/home/generic/Downloads \
-device virtio-net,netdev=vmnic -cdrom ~/Downloads/virtio-win-0.1.171.iso

La última línea fue sólo para instalar elcontroladores virtioasí que estoy bastante seguro de que no lo necesito todo el tiempo.
La segunda línea determina la partición /dev/nvme0n1p1.

La guía menciona SPICE, que esaparentementebueno para

cambio de tamaño de pantalla dinámico, portapapeles entre invitado/anfitrión, etc.

Me gustaría que la pantalla virtual cambie de tamaño y adapte la resolucióncuando cambio el tamaño de la ventana. Intenté seguir la guía enhttps://www.linux-kvm.org/page/SPICEy me di cuenta de que eso spicecya no existe; eso significa que no puedo conectarme con el invitado spicec -h 127.0.0.1 -p 5900.
ElManual de usuario de especiasestá de acuerdo:

El cliente recomendado es el visor remoto (que se envía con virt-viewer).
GNOME Boxes también se puede utilizar como cliente Spice.
Spicec es un cliente heredado obsoleto., y picante es sólo una aplicación de prueba.

Así que intenté agregar -spice port=5900,addr=127.0.0.1,disable-ticketinga mi qemucomando y remote-viewerejecutar spice://127.0.0.1:5009. En realidad, eso abrió una ventana de especias, así que ahoraTengo dos ventanas que muestran mi invitado win10.
La ventana de Spice reacciona mejor cuando se cambia su tamaño, pero mantiene la misma resolución y solo agrega bordes blancos cuando es necesario.

La pregunta

¿Cómo puedo obtener una vista sin bordes de mi sistema invitado que se adapte bien al cambio de tamaño?
Y si esa no es una pregunta completamente distinta: ¿Cómo puedo tener una sola ventana para eso, en lugar de la ventana qemu y la ventana de especias?


Más detalles

Cuando me conecté remote-viewer, se mostró la ventana de su consola.

** (remote-viewer:3066): CRITICAL **: 15:54:52.441: virt_viewer_util_extract_host: assertion 'uri != NULL' failed

Y la qemusalida mostró

main_channel_link: add main channel client
main_channel_client_handle_pong: net test: latency 0.110000 ms, bitrate 34711864406 bps (33103.813559 Mbps)
inputs_connect: inputs channel client create
red_qxl_set_cursor_peer:

Respuesta1

TL;DR
Los puntos 3 y 12 pueden ser suficientes, dependiendo de cómo otros usuarios hayan configurado su VM. --kaiya


ozymandias42sugiriópara intentar usarlo virt-managercomo interfaz y me guió a través de él.

  1. Instalar virt-manageren el host ubuntu
  2. Configure un grupo para poder usar virt-manager sin sudo
    sudo groupadd --system libvirt
    sudo usermod -a -G libvirt $(whoami)
    su - $USER
    
  3. Comience virt-managery vaya a View -> Edit -> Preferences -> Console. ActivarResize guest with window: On
  4. Utilice el icono en la parte superior izquierda para "Crear una nueva máquina virtual". No estaba seguro porque no quería una máquina nueva, solo quería iniciar mi partición de Windows de arranque dual. Pero ese es el botón. Elija "Importar imagen de disco existente"
  5. Elija el tipo y la versión de su sistema operativo y escriba su dispositivo como ruta. He usado, /dev/nvme0n1
    no estoy seguro de si y cómo es posible darle acceso a la VM solo a ciertas particiones (primero intenté darle solo la partición EFI, pero eso, por supuesto, no funcionó. Tal vez sea posible agregar cada partición necesaria). para Windows como un disco virtual separado O tal vez usando.confinadorv)
  6. Continúe navegando por Windows, asegúrese de marcar "Personalizar configuración antes de instalar"
  7. En la ventana de personalización elegí Firmware: UEFI x86_64: /usr/share/OVMF/OVMF_CODE.fdel que ya tenía en mi Linux. Creo que lo instalé usando apt install ovmfpero no hay garantías.
  8. Su disco se agregó como un "Disco IDE", lo cual está bien, pero me dijeron que virtio es mejor porque no emula el disco. Sin embargo, si desea utilizar virtio, el invitado necesita soporte. Y Ozymandias42 también me dijo que es importante tener un dispositivo/controlador configurado que realmente use el controlador, en el momento en que se instala el controlador, porque de lo contrario no estará disponible en el arranque en un estado similar a intiramfs. Así que agregue un segundo disco, hágalo pequeño, respaldado por algún archivo y configure su tipo de bus de disco en virtio. Puede eliminarlo nuevamente después de instalar las herramientas de invitado virtio en el invitado.
  9. Arriba a la izquierda: Begin Installationnuevamente, esto suena aterrador. Pero no interfiere con las ventanas instaladas.
  10. En el invitado, ya había instalado Qemu Guest Tools y Spice Guest Tools. Supongo que necesitas ambos. Instale también elexe de herramientas invitadas virtioy ejecutarlo.
  11. Reiniciar. Si todo funciona, puede quitar el disco temporal y cambiar también la NIC a virtio.
  12. En la máquina VM, vaya aView -> Scale Display -> Auto resize VM with window

Respuesta2

Debe agregar un dispositivo virtio-serial para que la VM se comunique con el cliente Spice en el host. Si hubiera usado virt-manager con libvirtd en lugar de usar qemu directamente, lo más probable es que se hubiera encargado de eso automáticamente.

Intenta agregar

-device virtio-serial-pci,id=virtio-serial0,bus=pci.3,addr=0x0
-chardev spicevms,id=charchannel1,name=vdagent
-device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0

Si eso no funciona, sugeriría usar virt-manager como interfaz.

información relacionada