Setting the Resolution in an X-less VM

Ever been working in a VM that is command line only and wished it wasn’t so small? Well, that was how I felt constantly until now. Step on past the break to see how to change the resolution in an X-less install by utilizing uvesafb.

Let’s look at this from two points of view: Ubuntu and Gentoo.

Ubuntu with Grub2:

First, we are assuming that you want to make your window 1024x768-24... adjust as you see fit.

Install v86d so you can get uvesafb:

gene@ubuntu01:~$ sudo apt-get install v86d

Edit /etc/default/grub so that the lines referenced below are changed:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1024x768-24,mtrr=3,scroll=ywrap"

Now add the following to /etc/initramfs-tools/modules:

uvesafb mode_option=1024x768-24 mtrr=3 scroll=ywrap

Now we need to force the use of the framebuffer:

gene@ubuntu01:~$ echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

Lastly we need to apply these changes and reboot:

gene@ubuntu01:~$ sudo update-grub2
gene@ubuntu01:~$ sudo update-initramfs -u
gene@ubuntu01:~$ sudo reboot


I could reinvent the wheel here... or I can just let Spock, the author of uvesafb, tell us how this is done at

That's it. I hope you enjoy having a little more real estate in your command line only VM's.


Gene Liverman is a Systems Administrator of *nix and VMware at a university.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

more simple approach

Hans-Werner's picture

Well, I prefer doing this either via a (virtual) network based login (SSH, or if you mind the CPU overhead, telnet on a dedicated subnetwork) or via serial port emulation (which will provide you with e.g. a PTY to connect to).

Setting up graphics (even though it's just a framebuffer, not full X) just feels so wrong for this... But the article might fit some other usage scenario, e.g. if you absolutely want to use that fancy VM frontend which happens to display framebuffer output, whether X is running or not... So see this just as a small reminder that even VMs might provide more user interfaces than the (emulated) graphics output.