The vga=<vesa_mode> is the kernel command line parameter that sets the resolution of the Linux framebuffer. While the kernel still maintains it as a valid command line parameter, GRUB2 has deprecated it in favour of it's GRUB_GFXPAYLOAD_LINUX variable. It uses this variable to pass the resolution/mode of the framebuffer to the kernel.
This variable can take several values:
- When set to 'text' it sets the framebuffer to text mode, ie: GRUB_GFXPAYLOAD_LINUX=text
- When set to any valid Vesa mode that your graphics card support, it sets the framebuffer to the specified mode,ie: GRUB_GFXPAYLOAD_LINUX=640x480, 1024x768....etc. You can also specify the color depth with a third parameter, ie: GRUB_GFXPAYLOAD_LINUX=1024x768x16, 1280x1024x32......etc.
- It can also be set to a value of 'keep'. This must be used in conjunction with the GRUB_GFXMODE variable. When set to 'keep', ie: GRUB_GFXPAYLOAD_LINUX=keep, it sets the frambuffer to the resolution set by the GRUB_GFXMODE variable. This variable sets the resolution of the GRUB2 bootmenu and can be set to any valid VESA mode supported by your graphics card.
These variables are set in the /etc/default/grub configuration file. Remember to run:
after any chabges to this file.