How do I increase console-mode resolution?

When my computer goes to console mode (booting up, shutting down or Ctrl + Alt + F1)), the text is super big. I can't take a screenshot of it, but it looks like a 640 x 480 resolution. My monitor normally works at 1440 x 900.

I remember that the console text that appeared while installing from the CD was nice and small.

How can I make the console text look like it looked while booting from the CD?


Solution 1:

I've found a solution that works from this forum post

In short:

Open /etc/default/grub with your favorite editor as root.

Localize the line that says GRUB_GFXMODE= ... and change it to the resolution you want. Add another line for a new variable called GRUB_GFXPAYLOAD with the same resolution. It should look similar to this:

GRUB_GFXMODE=1440x900x32
GRUB_GFXPAYLOAD=1440x900x32

Save and exit. Then edit as root /etc/grub.d/00_header

Localize the line that says if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=... . As before, change the resolution there to the one you want and add another line for payload:

if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=1440x900x32 ; fi
if [ "x${GRUB_GFXPAYLOAD}" = "x" ] ; then GRUB_GFXPAYLOAD=1440x900x32 ; fi

Finally, locate the line that says set gfxmode=${GRUB_GFXMODE} and add a line for payload below it. It should look like this:

set gfxmode=${GRUB_GFXMODE}
set gfxpayload=${GRUB_GFXPAYLOAD}

Save and exit.

Still as root, refresh grub with

update-grub2

Reboot, and both the grub menu and the console should have nicer resolutions.

Finished!

Solution 2:

This helped me on Ubuntu 14.04 with ESXi 5.5 :

sudo vi /etc/default/grub

Change line to:

GRUB_CMDLINE_LINUX_DEFAULT="splash vga=792"

Then run:

sudo update-grub
sudo reboot -r now

Use 795 or 799 for higher resolution (More details here).

Solution 3:

  1. Start in the GRUB menu
  2. Press C to go to the GRUB command line
  3. Run vbeinfo and make a decision (e.g. 1920x1200x32).
  4. Start your system again
  5. sudo nano /etc/default/grub
  6. Change GRUB_GFXMODE= (e.g. GRUB_GFXMODE=1920x1200x32)
  7. Set GRUB_GFXPAYLOAD_LINUX to GRUB_GFXPAYLOAD_LINUX=keep
  8. sudo update-grub
  9. reboot your system

Solution 4:

Set the graphics mode with GRUB_GFXPAYLOAD_LINUX

First, install xrandr and run it:

$ sudo apt-get install xrandr
$ xrandr

The available screen modes are listed.

Now, edit /etc/default/grub:

$ sudo nano /etc/default/grub

Assuming a previously unedited file, make the following changes:

The variable GRUB_CMDLINE_LINUX_DEFAULT should contain at least nomodeset, perhaps in addition to quiet and splash on desktop systems.

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"

On server systems, uncomment GRUB_TERMINAL=console to see more messages passing during boot before entering in the graphics console.

Leave this line as a comment:

#GRUB_GFXMODE=640x480

At the end of the file, add a line:

GRUB_GFXPAYLOAD_LINUX=1280x1024x16

or replace the value by any other (comma separated) mode(s) that is(are) supported by your hardware. The values text, keep, auto, vga and ask should also work.

Finally, after saving the edited /etc/default/grub with Ctrl+O and exiting it with Ctrl+X, issue the following commands:

$ sudo update-grub
$ sudo reboot

This answer will also work to decrease the resolution and/or refresh rate or frame buffer frequency on down-clocked systems. CRT monitors typically show flickering stripes when the refresh frequency is too high.