grub2
isn't really fit in the best screen resolution that my laptop can support (1280 x 800).
How can I do this without using a third party application ?
To do this safely requires two steps.
Reboot and press and hold Shift to display your grub. Press C
to enter console mode. Then type (for Ubuntu versions before 18.04):
$ vbeinfo
For Ubuntu 18.04 and later:
$ videoinfo
This will display various stuff how grub recognizes your display. At the bottom is "preferred mode" - in your case it should say 1280x800. Note down the value.
Note: sometimes, some buggy video cards incorrectly give Grub the wrong preferred resolution - if the preferred mode is much higher than you were expecting, then select the nearest mode in the list displayed that you were expecting.
Press Esc to return to grub and press Enter to boot.
Reach for your terminal and type
$ sudo nano /etc/default/grub
find the line
#GRUB_GFXMODE=640x480
remove the #
and change 640x480
with the preferred mode you wrote down. E.g.:
GRUB_GFXMODE=1280x800
save, then type
$ sudo update-grub
Note: the preferred mode has to be among those listed by vbeinfo. For example, if your preferred mode is 1920x1080 (a common 16x9 aspect ratio setting), your preferred mode is NOT supported by vbeinfo and may not work correctly. In fact, there do not seem to be any 16x9 modes supported by vbeinfo, as of Ubuntu 13.04. In that case you could try falling back to something common like 640x480, which, it seems most monitors support and vbeinfo supports. Also, not all the modes supported by vbeinfo are necessarily supported by your monitor and you may have to experiment.
sudo hwinfo --framebuffer
shows the same information as vbeinfo.
sudo dpkg-reconfigure console-setup
and selected terminus 16x32 for the font. (Note that nomodeset caused a worse problem. Other details: Ubuntu 18.04, Dell XPS 15, 3840 x 2160).
sudo hwinfo --framebuffer
does NOT show the same information as videoinfo during boot. I believe one is showing resolutions after my NVIDIA drivers are loaded and the other is before.
I'm using Ubuntu 16.04 and things are a little different in the packaged version of Grub for me.
The vbeinfo
command does not exist.
videoinfo
videotest
command which you can use to test a given resolution, e.g. videotest 1280x1024
. However, while this test worked for me, I could not then get back to the grub menu! So that's not quite as useful (unless anyone can explain how to escape the test.)/etc/default/grub
but the line you're looking for is now called GRUB_GFXMODE
. So un-comment and set that to your desired mode.update-grub
and reboot.videoinfo
at the grub command-line resulted in an error like "Secure Boot forbids loading module...". So then I disabled Secure Boot in the BIOS settings and then a more reasonable screen resolution appeared in the grub menu without me having to do anything else. Maybe the Secure Boot option was stopping grub's default auto
value for GRUB_GFXMODE
from taking effect.
I am running 14.04LTS on an ASUS M51AC with an Nvidia 625GT OEM. I found that in addition to the accepted answer, I needed to also add the line:
GRUB_GFXPAYLOAD="keep"
to /etc/default/grub.
GRUB_GFXPAYLOAD="keep"
, it finally starts up as desired!
Apr 22, 2020 at 13:09
For me on Ubuntu 17.10 server it was
GRUB_GFXPAYLOAD_LINUX="keep"
GRUB_GFXMODE="1920x1080x32"
I also had to set the following to prevent shutdown from hanging
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
Easy to use Grub2 settings customizer. Go to "Preferences" -> "Appearance"
For Ubuntu 20.04 LTS this worked for me (on ESXi VMs):
GRUB_CMDLINE_LINUX=""
make sure to remove maybe-ubiquity
#GRUB_TERMINAL=console
make sure to comment/disable this line.
GFX_GFXMODE=1024x768
GFX_PAYLOAD_LINUX="keep"
change to desired resolution