guide · static export
Hardware

Dual Boot Windows and Linux by Shrinking a Partition

A second system on the same disk is an hour of work with three real risks: no free space, a broken bootloader and a Windows partition nobody backed up.

by@guidox updated:10/31/26 time:60 min level:Advanced tested on:Windows 11 24H2, Ubuntu 24.04 works on:Windows 10, Windows 11 tools:Ubuntu or Linux Mint ISO, 8 GB USB stick, GParted
TL;DR

Back up first, shrink Windows from a **Linux live system** with **GParted**, install Linux into the free space and pick **Install alongside**. Windows stays intact as long as you never format its partition.

Before you start

Requirements

  • A Windows PC with 60 GB free space
  • An 8 GB USB stick
  • An Ubuntu or Linux Mint ISO
  • An external backup
Step by step

Instructions

01

Back up, then check the encryption

Copy everything you cannot lose to an external drive. If the Windows drive is encrypted, suspend protection before touching partitions and keep the recovery key within reach for the whole session.

⚠ warningA partition tool that crashes mid-operation is rare. A missing backup is not rare enough to gamble on.
02

Read the disk layout

Open Disk Management and note the partition style: GPT with an EFI partition, or the older MBR. The installer needs unallocated space at the end of the disk, not a second partition you formatted by hand.

diskmgmt.msc
03

Shrink from a live system, not from Windows

Windows shrinks only up to the last immovable file, often far less than expected. Boot the live USB, open GParted and resize the Windows partition from outside, where no file is locked.

tipDo not touch the EFI system partition. It is around 100 MB and both systems share it.
04

Choose install alongside

Boot the installer and pick **Install alongside Windows**. It detects the free space and creates its own root partition plus a swap file. Manual partitioning works too, but only when you know which partition is which before you start.

05

Check both boot entries

After the first boot, list the firmware entries and confirm both systems appear. GRUB should offer Windows, and a firmware menu entry pointing at the right loader is a useful fallback if it does not.

sudo efibootmgr -v
sudo update-grub
06

Set the default and test both boots twice

Set the default entry in GRUB, then reboot into each system two times in a row. A boot that works once and fails after a Windows update is a known failure mode, and knowing where to repair it saves an evening.

sudo nano /etc/default/grub
GRUB_DEFAULT=0
⚠ warningWindows updates can reorder firmware entries. Keep the live USB at hand for the first weeks.
Troubleshooting

Common issues

GRUB shows no Windows entry

os-prober is disabled on several distributions. Enable it in /etc/default/grub and regenerate the configuration.

Windows boots into a repair screen

Windows was hibernated, not shut down. Disable Fast Startup in the power settings and boot it once cleanly before trying again.

The clock is wrong in one system

One system uses local time, the other UTC. Set Linux to local time or make Windows use UTC with the RealTimeIsUniversal registry value.

There is no free space to install into

The shrink hit an immovable file. Disable hibernation and the page file, then retry the resize from the live system.

FAQ

Frequently asked

Same disk or a second SSD?

A second SSD is safer and simpler: unplug the Windows drive during install and nothing can go wrong.

Does this affect the Windows licence?

No. The Windows partition is not modified; the installer only uses the free space around it.

How to undo this

Boot Windows, delete the Linux partitions in Disk Management and extend the Windows partition back into the space. Remove the Linux entry with efibootmgr if it stays in the firmware menu.

Changelog · 1 entry
  1. 2026-10-31
    First version
Interactive version: checklist, feedback, related guides →

Free · no account needed · tracks your progress