GRUB2 resolution setting not respected by Debian – garbage on screen

These GRUB settings control the display mode used by GRUB, they don't specify the default framebuffer mode used by the kernel. To configure the latter, you can use the video kernel parameter; in Debian, add this to the GRUB_CMDLINE_LINUX_DEFAULT line in /etc/default/grub:

video=1280x1024

This should set the display up correctly as soon as the kernel initialises the framebuffer.

The video parameter is documented in detail in fb/modedb.rst in the kernel documentation.


EDIT: This is my old fix (I am the OP, in case someone didn't notice). There is already another, better answer. I'm leaving my answer for educational reasons.


Old fix:

I can't make GRUB2 setting work, still I can change the resolution to desired 1280x1024 from within the running system. The command is:

fbset -g 1280 1024 1280 1024 32

Adding this line to /etc/rc.local fixed my problem. There is still garbage on a part of my screen when the system starts; but when I log in and work, the full resolution of my monitor is available to me.