After I set
GRUB_GFXMODE it affected GRUB menu and some of subsequent printouts, but in the middle of boot, text becomes very small again and I still want to make resolution smaller.
Where else the resolution is changing during boot?
in the middle of boot, text becomes very small again
This is a clue: the kernel starts up in whatever firmware-supported display mode was initialized by GRUB (initially using classic VGA text mode or
vesafb driver on legacy BIOS firmware, or
efifb on UEFI), then it loads its own display driver (
nouveau, others) and switches to a different mode.
Depending on which display driver you end up with, you might be able to use the
fbset command to switch resolutions at runtime, and/or you might be able to use a kernel boot parameter like
video=1920x1200-32 to set the desired non-GUI mode resolution.
Within the X11 GUI, rather than reducing the display resolution, a better approach might be to make sure the DPI value is calculated correctly, and that the system has suitable TrueType or other scalable fonts available so that it can produce fonts at arbitrary display sizes - that might be enough for the system to auto-scale the text into a reasonable size. A GUI desktop environment should also include a way to adjust the default size of text and other GUI elements to your taste.