'virt-manager guest resize not working

Installed virt-manager, target virtual machine is debian jessie with spice-vdagent installed shared clipboard, and latency-free mouse input works

Display: Spice Video: QXL Channel spice: spicevmc, virtio, com.redhat.spice.0 (confirmed /dev devices exist in target vm)



Solution 1:[1]

  1. Make sure guest resizing is enabled in virt-manager:

    Menu View -> Scale Display -> Auto resize VM with window (Checked)


  1. Make sure your have a spice agent on your host

    https://www.spice-space.org/download.html#guest

    'spice-vdagent' on linux

    'spice-guest-tools' on windows


How I figured this out,

I found a setting in "spicy" that I assumed had an equivalent in virt-maanger. To connect with spicy from spice-client-gtk apt package, I found the port to connect to by checking sudo ss -nlp | grep qemu, and connected to that port on localhost. Spicy's toggle was much easier to find: Options -> Resize guest to match window size (Checked).

Solution 2:[2]

For XFCE, this is a known bug which does not appear to have been fixed yet (confirmed still broken in Xubuntu 20.04).

This issue is due to a change in spice-vdagent whereby instead of changing the resolution directly, it instead notifies the DE to make the change, and that functionality has not been implemented yet in XFCE.

One workaround is to run the following in the guest every time you resize your window:

$ xrandr --output Virtual-1 --auto

Solution 3:[3]

According to Installing Windows 10 in KVM + libvirt, visit Spice then scroll down to Windows binaries and then click the link spice guest tools. Proceed to install the spice tools after download completes. Once installation is complete, you should be able to get the guest VM resolution to match that of the resized VM window.

For me, "Auto resize VM with window" was greyed out until I installed the spice guest tools; I did not even have to reboot after installation - this feature was available immediately and it just worked - :).

Host machine: Ubuntu 16.04.6 LTS (Xenial Xerus)

Guest VM: Windows 10 Pro (Version 1809 build 17763.379)

Solution 4:[4]

@ThorSummoner's approach works, but if you have a high resolution monitor, the guest video driver may not have enough memory to draw the larger screen. In that case, you will need to increase the video memory, but unfortunately the virt-manager GUI doesn't provide a method to do so. So instead follow this procedure:

  1. View -> Details -> copy the UUID.
  2. sudo virsh edit <copied uuid>
  3. Look for a line like the following: <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>. Your type and other parameters may be different, but as long as there's a vgamem, you can continue.
  4. Change vgamem to 32768
  5. Save & exit. The config file will automatically be checked for errors.

Then restart your VM, and try again.

Solution 5:[5]

Short answer that worked for me:

I also have Display set to Spice. If the VM's virtual Video hardware was set to VGA or QXL, I could not resize the desktop in the guest. When I changed Video to Virtio in virt-manager and restarted the VM, it worked.

Longer background in case it's useful to future visitors:

I ran into this problem in May 2020 and while the older answers here were of some help I thought I'd add some clarifications since the virt-manager UI and libvirt capabilities continuously evolve.

In my case, I have a Fedora 32 (KDE Spin) Linux host and the same OS in the guest. My virt-manager version is 2.2.1.

As with thorsummoner's original situation above I am using Display Spice so I can have goodies like the shared clipboard between host and guest.

The guest seemed stuck on 1024x768. xrandr in the guest showed lots of higher resolutions available, but when I tried to set the resolution to 1920x1080 -- whether with xrandr --output Virtual-1 --mode 1920x1080 or with Plasma's Display setting -- it would only momentarily change to the higher resolution. Then, clunk, it would change right back.

Explicitly setting a higher level VGA video memory did not work (although it did help for another problem long ago).

No matter what I set virt-manager's View -> Scale to display menu options to, this still happened.

The fix for me was in the virtual hardware Video settings. Note: not Display, but a separate entry further down in the left-hand-side Hardware list in virt-manager.

If video was set to VGA or QXL, I could not resize the guest.

Then I changed the video hardware to Virtio, and the problem went away. I could resize the desktop with either xrandr commands or the GUI Display preferences, and the changes would stick even after restarts.

Of course the guest VM should be cleanly shut down before making this change to its virtual hardware settings.

Solution 6:[6]

What worked for me is much simplified modified ThorSummoner's answer:

Step 1:

View > Scale Display > Always

Step 2:

View > Scale Display > Auto Resize VM with window

Step 3:

In the guest OS, set the desired resolution.

Solution 7:[7]

I tried everything I saw to make it work but the only thing that worked for me was to set video to QXL (didn't tried Virtio or VGA after that tho) and do a proper shutdown of the Windows 10 VM (from inside the VM, do a "shutdown"). If you use the reboot from virt-manager it seem's like it doesn't reboot entirely.

Solution 8:[8]

In my case, I had manually set resolution to 1920x1080 prior to booting with SPICE vdagent. I just had to go to settings, display (will depend slightly between DE), and select the resolution corresponding to SPICE resize mode.

Solution 9:[9]

For those of you who still haven't got virt to auto-resize with suggested config (spice channel, spice guest tool, QXL), this is how I solved mine.

Background: I got it to auto resized before, but I got a clean install of ubuntu, and using the same config, same vm files (was actually physical partition), but I can't get it to resize again. I got spice channel in the config with QXL video, spice guest tools in windows guest, but still can get it to resize.

So finally, I just got a clean install of both windows and my distro (this is not the solution, just indicating that my config was clean). I tried again with the same config but nothing work, and I started to wonder if windows I the problem here, which it ultimately was. I checked the device manager to see that 2 virtio drivers were rejected by windows secure boot. So as an instinct I went in tiano bios (ovmf) and disable secure boot. It's working fine now.

Solution 10:[10]

Form me it was just a matter of going to the VM click Show virtual hardware details icon, resize that window, then click back on the Show the graphical window icon since they share the same window.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 JBentley
Solution 3 AnthonyK
Solution 4 user60561
Solution 5 shanem
Solution 6 valk
Solution 7 Tazq
Solution 8 Jules Sam. Randolph
Solution 9 Wind Slightly
Solution 10 MrAnderson