VirtualBox Full Screen Mode Resolution Wrong: 3 Fixes
VirtualBox guest OS shows wrong resolution in full screen? Start with the 30-second Host+F trick, then check guest additions, then manually set a custom resolution.
Why your VirtualBox full screen resolution is wrong
What's actually happening here is that VirtualBox isn't properly detecting or communicating the host screen's available resolutions to the guest OS. The guest thinks it's stuck at 1024x768 or 800x600 while your host monitor is 1920x1080 or higher. This usually happens after a host display change, guest OS update, or botched Guest Additions install.
I've seen this exact issue on Windows 11 hosts with Ubuntu 22.04 guests, and on macOS hosts with Windows 10 guests. The fix depends on what's broken. Don't jump to the advanced fix unless you have to — start simple.
Fix 1: The 30-second trick — Host+F
This is the first thing to try. Hit Host+F (the default Host key is Right Ctrl on Windows/Linux, Left Cmd on macOS). VirtualBox toggles between full-screen and full-screen scaled mode. When scaling is off, the guest resolution must match the host's native resolution. Scaling mode stretches the guest output to fill the screen, which can fix resolution mismatch instantly.
How to know it worked: Your guest desktop suddenly fits the screen perfectly without black borders or being too small. If it doesn't, proceed.
Why this works: VirtualBox's default behavior in full screen is to match guest resolution to host. But if the guest doesn't report a matching mode, VirtualBox falls back to unscaled mode. Host+F forces it to scale, bypassing the resolution negotiation.
Fix 2: The 5-minute fix — Reinstall Guest Additions
If Host+F didn't fix it, the guest is probably missing the proper display drivers. Guest Additions provides those drivers. A partial install or version mismatch is the root cause nine times out of ten.
For Windows guests
- In the VM menu, click Devices > Insert Guest Additions CD Image.
- Inside the guest, open File Explorer, navigate to the CD drive (usually D:), right-click VBoxWindowsAdditions.exe, and select Run as administrator.
- Choose Install, then Reboot now when prompted.
For Linux guests
Don't use the GUI installer — it's flaky. Open a terminal and run:
sudo apt update
sudo apt install build-essential dkms linux-headers-$(uname -r)
sudo mount /dev/cdrom /mnt
cd /mnt
sudo ./VBoxLinuxAdditions.run
sudo reboot
Why this matters: The dkms package ensures the VirtualBox kernel modules rebuild automatically after kernel updates. Without it, Guest Additions breaks on the next system update.
What to check after reboot
Open the guest's display settings. You should see resolutions matching your host monitor. If not, go to the VM settings → Display → Graphics Controller — try switching between VMSVGA (for modern guests) and VBoxSVGA (for Windows guests). I've had more luck with VMSVGA on Linux guests and VBoxSVGA on Windows guests.
Fix 3: The 15-minute advanced fix — Manual resolution via VBoxManage
When Guest Additions are installed and Host+F doesn't help, the host and guest aren't agreeing on available modes. You can force a custom resolution directly. This is useful for hiDPI hosts (like 2560x1440 or 4K) where VirtualBox gets confused.
Step 1: Find your host monitor's exact resolution
On Windows: Settings → System → Display → Scale & layout → Display resolution.
On macOS: System Settings → Displays → Resolution.
On Linux: xrandr in terminal.
Step 2: Shut down the VM completely
A save state won't work — you need a full power-off. The VM must be fully stopped.
Step 3: Set a custom video mode hint
Open a terminal (or Command Prompt on Windows) and run:
VBoxManage setextradata "Your VM Name" "CustomVideoMode1" "1920x1080x32"
Replace Your VM Name with the exact name (quotes needed if it has spaces), and 1920x1080x32 with your host's width, height, and color depth (32 is standard).
Why step 3 works: This passes a specific video mode to the virtual graphics adapter, bypassing the EDID negotiation. The guest sees this mode as available even if the VirtualBox display driver didn't detect it.
Step 4: Enable custom video modes in the VM
Still in the terminal, run:
VBoxManage modifyvm "Your VM Name" --customvideomode1 1920x1080x32
You can set up to 10 custom modes (customvideomode1 through customvideomode10).
Step 5: Start the VM and switch to full screen
If the resolution doesn't appear immediately inside the guest, set it manually in the guest's display settings. For Linux, you can also try:
xrandr --output Virtual1 --mode 1920x1080
If you get an error about mode not found, run xrandr first to see what modes the guest's X server thinks are available. If your custom mode isn't listed, you missed step 3 or 4.
What if nothing works?
You might be hitting a bug in VirtualBox 7.0.x with certain GPU passthrough or 3D acceleration settings. Go to VM Settings → Display → Enable 3D Acceleration — toggle this off and test. Also drop Graphics Controller to VBoxVGA (legacy) as a test. Some older guests just don't get along with VMSVGA.
If you're on macOS, the issue is often related to Retina display scaling. Set the VM's scale factor in the View menu to 200% temporarily — sometimes that forces the resolution negotiation to work.
Pick the fix that matches your situation. Start with Fix 1, then Fix 2, then Fix 3. You'll have full screen working in under 20 minutes.
Was this solution helpful?