Dual-booting sounds dramatic until you have done it once. Then it becomes the most boring, useful setup in computing: Windows for the one app or game that refuses to run anywhere else, Linux for everything else, and a boot menu that lets you pick each morning. The whole job takes about an hour, and almost all of that is waiting for installers to copy files.

The part people get wrong is the order. They boot the Linux installer first, stare at the partition screen, and guess. Do the Windows-side preparation first, and the installer becomes a three-click job.

Before you touch anything

You need four things:

  1. A full backup of anything you cannot re-download. Partitioning is safe when done right, but "safe" is not "guaranteed." Copy your documents, photos, and browser profile to an external drive before you start. If you want a proper system-level safety net, set up a backup tool like Restic first — our Restic backup and restore playbook walks through exactly that.
  2. At least 40 GB of free space on your Windows drive — 60 GB or more if you plan to actually live in Linux. 25 GB works, but you will be deleting things within a month.
  3. A USB stick, 8 GB or larger, that you can erase completely.
  4. Your Windows BitLocker recovery key, if BitLocker is on. Shrinking a BitLocker-encrypted drive and then booting another OS is exactly the situation recovery keys exist for. Check Manage BitLocker in Windows first; if it says protection is on, save the key somewhere you can reach from your phone.

Also note your firmware mode: press Win + R, type msinfo32, and look for "BIOS Mode." Almost every machine sold in the last decade says UEFI. If yours says Legacy, the steps below still work, but your Linux installer will use a different bootloader layout — pick the installer's defaults and don't improvise.

Step 1: Shrink Windows from inside Windows

Do not let the Linux installer resize your Windows partition. Windows understands its own filesystem best, and its own Disk Management tool will refuse to shrink past immovable files rather than corrupt them.

  1. In Windows, right-click Start and open Disk Management.
  2. Right-click your C: partition and choose Shrink Volume.
  3. Windows will calculate how much it can free. Enter the amount in MB (50 GB = 51200 MB) and click Shrink.
  4. You should now see a block of Unallocated space next to C:. Leave it exactly like that — do not format it, do not assign it a letter. The Linux installer wants raw, unallocated space.

If Windows offers you very little shrink space despite a half-empty drive, the usual culprits are the pagefile, hibernation, and System Restore points. Disable hibernation with powercfg /h off in an administrator terminal, reboot, and try again. If it still resists, defragmenting is not the answer on an SSD — shrinking in stages (shrink what it offers, reboot, shrink again) usually gets you there.

Step 2: Make the bootable USB

Download the ISO of the distro you want to try. If you are unsure which one, Linux Mint is the least surprising choice for a first dual-boot: it looks familiar, its installer is forgiving, and its hardware support is boring in the best way. Our overview of Linux Mint 27 "Adrien" explains why boring is a compliment here.

To write the ISO to USB, you can use the distro's own USB writer, or a multi-boot tool like Ventoy that lets one stick carry several ISOs — our Ventoy field guide covers that setup, which is handy when you want to test-drive two distros before committing.

Then reboot, open your firmware's boot menu (usually F12, F8, or Esc — your machine flashes the key briefly at startup), and boot from the USB stick. If the stick doesn't appear, check that Secure Boot is not blocking it; most mainstream distros sign their bootloaders and work with Secure Boot on, but if yours refuses, disabling Secure Boot in firmware is a legitimate troubleshooting step, not a hack.

Step 3: Install alongside Windows

Boot into the live environment, connect to Wi-Fi, and launch the installer. The critical screen is the installation type. Choose "Install alongside Windows" (Mint and Ubuntu both offer exactly this option). The installer will find the unallocated space you made in Step 1 and propose a layout automatically.

Check three things on the confirmation screen before you click Install:

  • The installer is using the free space, not overwriting your Windows partition. The Windows partition is usually labelled as NTFS and roughly the size of your C: drive — it should be untouched.
  • The bootloader location is your main drive (usually /dev/sda or /dev/nvme0n1), not a partition.
  • You have set a timezone, username, and password you will remember. The username becomes your admin account.

Then wait. When the installer finishes, reboot, remove the USB stick when prompted, and you should land on a boot menu (GRUB) listing both Linux and Windows Boot Manager. Boot into Linux first to confirm it works, then reboot and pick Windows to confirm that still works too.

Step 4: Verify both sides, then fix the clock

Two checks, five minutes:

  1. Boot into each OS once. If Windows is missing from the GRUB menu, boot into Linux and run sudo update-grub — on most systems it re-detects Windows immediately.
  2. Fix the clock skew. Windows stores local time in the hardware clock; Linux stores UTC. After dual-booting, one of them will show the wrong time. The clean fix is to make Windows use UTC: in an administrator terminal, run reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1, then reboot. Or, if you would rather not touch the registry, tell Linux to use local time with timedatectl set-local-rtc 1. Pick one, not both.

Common traps

  • Windows updates reclaiming the boot order. A big Windows feature update sometimes resets the firmware boot order so the machine boots straight into Windows. This is not data loss — open firmware settings, move your Linux entry (often labelled "ubuntu" even for other distros) back to the top, and GRUB returns.
  • Fast Startup. Windows' Fast Startup feature hibernates the kernel on shutdown, which can leave NTFS partitions in a state Linux refuses to mount read-write. If you share files between the two systems, turn Fast Startup off in Power Options. If you don't share files, you can leave it alone.
  • Running out of space in Linux. Remember that 40 GB minimum. If you underestimated, you can shrink Windows further later and grow the Linux partition with GParted from the live USB — but that is a weekend project, not a five-minute job. Size generously now.

The setup that sticks

The best dual-boot is the one you stop thinking about. Keep Windows for the two or three things that genuinely need it, do everything else in Linux, and keep a shared NTFS or exFAT data partition if you regularly move files between the two.

Sources

  • Microsoft Learn: "Shrink a basic volume" (Disk Management documentation)
  • Ubuntu Desktop installation guide (ubuntu.com/tutorials/install-ubuntu-desktop)
  • Linux Mint Installation Guide (linuxmint-installation-guide.readthedocs.io)
  • Arch Wiki: "Dual boot with Windows" (for UEFI and bootloader details)