Linux VGA Modes - Setting the correct screen resolution and color depth at boot is key to a smooth Linux experience, especially on Live USBs or systems with varying hardware. Older Linux versions used the vga= boot parameter to define graphics modes, but modern distributions rely on GRUB and Kernel Mode Setting (KMS) for precise, driver managed display configuration. In this guide, you'll learn how to set Linux VGA modes, configure GRUB screen resolution, and ensure your graphics settings persist across boots on both legacy BIOS and modern UEFI systems.

A straightforward way to set Linux boot screen resolution used to be the vga= boot parameter. For example:
vga=795
This historically set the framebuffer to 1280x1024 resolution with 24-bit color depth on older Linux kernels.
However, on modern Linux systems using Kernel Mode Setting (KMS), the vga= parameter is largely obsolete and often ignored. Today, screen resolution at boot is controlled primarily through GRUB2 and kernel video parameters.
Linux Boot Resolution: Legacy vs Modern Methods
1. Legacy Method: vga= Boot Parameter
The vga= parameter was used with older framebuffer drivers such as vesafb. It allowed users to manually set resolution and color depth during boot.
Example:
vga=795
This method only works reliably on older BIOS-based systems and legacy kernels. On modern UEFI systems with DRM/KMS drivers (Intel, AMD, Nouveau), this parameter is typically ignored.
Use only if:
- You are booting an older Live Linux distribution
- You are troubleshooting legacy framebuffer issues
- KMS has been disabled
2. Modern Method: GRUB2 GFXMODE
Modern Linux distributions use GRUB2 to control bootloader resolution.
Edit:
sudo nano /etc/default/grub
Add or modify:
GRUB_GFXMODE=1920x1080
To preserve resolution after kernel loads:
GRUB_GFXPAYLOAD_LINUX=keep
Then update GRUB:
sudo update-grub
Do NOT edit /boot/grub/grub.cfg directly. That file is auto-generated.
Using Multiple Fallback Resolutions
You can define fallback options:
GRUB_GFXMODE=1920x1080,1280x1024,1024x768,auto
GRUB will attempt each in order.
3. Kernel Video Parameter (Most Reliable Modern Method)
For modern KMS-based systems, the most precise method is using the kernel video parameter.
Example:
video=HDMI-A-1:1920x1080@60
Add this to the GRUB_CMDLINE_LINUX line in:
/etc/default/grub
Then run:
sudo update-grub
This method works with Linux kernel 5.x and 6.x series and is preferred for:
- Multi-monitor setups
- Live USB compatibility across machines
- Forcing resolution when EDID detection fails
Kernel Mode Setting (KMS)
Modern Linux systems use Kernel Mode Setting (KMS), which initializes graphics drivers early in the boot process.
Common KMS drivers:
- i915 (Intel)
- amdgpu (AMD)
- nouveau (open NVIDIA)
When KMS is active:
- The kernel sets the display resolution automatically
- The
vga=parameter is ignored - Color depth is managed internally by the driver
Temporarily Disabling KMS
For troubleshooting display issues:
nomodeset
Add this at the GRUB edit screen by pressing e at boot.
Use this only for debugging black screens or driver failures.
Temporarily Changing Resolution at Boot
To test settings without permanent changes:
- At the GRUB menu, highlight your entry.
- Press e.
- Modify
GRUB_GFXMODEor append kernel parameters. - Press Ctrl+X or F10 to boot.
Common Display Issues and Fixes
- Black screen during boot: Try
nomodeset - Low resolution splash screen: Set GRUB_GFXMODE
- Wrong resolution after boot: Use
GRUB_GFXPAYLOAD_LINUX=keep - Monitor not detected: Use kernel
video=parameter
Which Method Should You Use?
| System Type | Recommended Method |
| Legacy BIOS (old distro) | vga= parameter |
| Modern GRUB2 system | GRUB_GFXMODE |
| KMS based kernel 5.x or newer | video= kernel parameter |
Final Take on Setting Linux VGA Modes
The vga= parameter is now primarily historical for adjusting Linux VGA modes. For modern Linux systems, configuring GRUB2 and using kernel video parameters provides far better reliability and hardware compatibility for setting Linux boot resolution (screen resolution).
If you are building or troubleshooting Live USB systems across different hardware platforms, understanding these modern boot graphics methods ensures maximum compatibility.