Changing the screen resolution on a RHEL guest under Hyper-V

I wanted to tinker with the Red Hat Enterprise Linux 8 beta at work. Since it’s work, I’m technically not supposed to use the free-as-in-beer version of VMware Player, even though it seems like everyone does. And hey, my Windows laptop comes with Hyper-V, which should do the job just fine.

Hyper-V is a younger product, and it seems like it’s not as well-supported. In particular, if I’d spun up a RHEL 8 guest under VMware, I strongly suspect that changing the screen resolution wouldn’t be a problem at all. But Hyper-V only appears to present a single default resolution from its virtual frame buffer to the guest.

Anyway, if you go into the GUI settings on a RHEL 8 guest, I didn’t see any other resolutions available to me, just an odd “1152×864” default. And there’s no obvious way to change that, even though the guest video card is capable of more.

To change how the frame buffer is presented to the guest, you actually have to provide a kernel command-line option. You could probably do this at boot-time via the GRUB interface, but the lazy way to do it is just to use grubby to make the change permanent:

sudo grubby --update-kernel=ALL --args="video=hyperv_fb:1440x900"

You can of course enter any resolution you like. (If you like to full-screen your guests, you might want 1920×1080, or whatever matches your monitor.)

Since this is a kernel option, you can’t just logout and login again; you must reboot before you’ll be able to use the new resolution. And you still won’t be able to resize the guest screen dynamically; any time you want to change it, you’ll have to reboot the guest after. This seems like something that will probably get hammered out by the time RHEL 8 is released.

Changing the screen resolution on a RHEL guest under Hyper-V