The previous method of setting the framebuffer by adding 'vga=xxx' at the end of the kernel line in '/boot/grub/menu.lst' is no longer possible in Grub2 as the configuration files and their locations have completely changed. It is still possible to set a framebuffer resolution that matches your screen resolution, just a little more complicated.
Around line 131 you should find:
if loadfont `make_system_path_relative_to_its_root ${GRUB_FONT_PATH}` ; then
set gfxmode=${GRUB_GFXMODE}
insmod gfxterm
Here we need to add 'set gfxpayload=keep' to give the following:
if loadfont `make_system_path_relative_to_its_root ${GRUB_FONT_PATH}` ; then
set gfxmode=${GRUB_GFXMODE}
set gfxpayload=keep
insmod gfxterm
That will set the console screen size the same as the grub screen size.
# The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE=1440x900x32
This will set the grub screen size. You must set a resolution that is supported by your monitor. The last setting 'x32' is the colour or bit depth of the monitor.
$ sudo update-grub
This produces a new '/boot/grub/grub.cfg' as this file states it is not to be edited directly, all changes must be made in '/etc/default/grub' & '/etc/grub.d/' and then a new 'grub.cfg' should be generated by running the above command.
High resolution Plymouth & ATI/NVIDIA cards - An article for what to do for cards with more unusual drivers.
console resolution - Sample script changes to use GRUB_GFXPAYLOAD variable.