Linux Install & setup

Dual-boot Linux and Windows

Practical Linux guide: dual-boot Linux and Windows without the usual guesswork.

18 min read Advanced Updated 9 Jun 2026

Step-by-step guide

Work through each section in order. Stop when your issue is resolved — you do not need every step for every situation.

Warning

Bootloader and partition changes can render a system unbootable. Keep a live USB handy and verify changes before rebooting production machines.

What you will achieve

Windows and Linux on one machine with a working GRUB menu, separate EFI partitions handled correctly, and Fast Startup disabled so NTFS and boot entries stay sane.

1) Prepare Windows first

  1. In Windows: Disk Management → shrink the C: volume to free unallocated space (50 GB minimum for Linux; more for games or dev work).
  2. Disable Fast Startup (Control Panel → Power Options → Choose what power buttons do).
  3. Disable BitLocker temporarily if it blocks partition changes, or know your recovery key.

2) Install Linux into free space

Boot a Linux installer USB. Choose Install alongside Windows if offered (Ubuntu) or manual partitioning:

  • UEFI systems: reuse the existing EFI System Partition (ESP), usually 100–500 MB, mount at /boot/efi — do not format if Windows still needs it.
  • Create / (ext4 or btrfs) and optional /home in the unallocated space.
  • Install GRUB to the ESP; the installer should detect Windows and add an os-prober entry.

3) Fix missing Windows entry (if needed)

sudo apt install os-prober
sudo os-prober
sudo update-grub

On Fedora: sudo grub2-mkconfig -o /boot/grub2/grub.cfg (BIOS) or /boot/efi/EFI/fedora/grub.cfg (UEFI).

4) Time zone and RTC

timedatectl set-local-rtc 0

Linux expects UTC in the hardware clock; Windows can cope when this is set, reducing dual-boot clock drift.

Verify

Reboot twice. GRUB should list both OS entries. Boot each once. In Linux: efibootmgr -v shows firmware boot order.

5) BitLocker and Linux access to NTFS

If Windows uses BitLocker, Linux cannot mount the encrypted NTFS partition without the recovery key. For shared data, create an exFAT partition both OSes can read without encryption, or use cloud sync.

Disable Fast Startup before mounting NTFS from Linux — otherwise Windows leaves the filesystem dirty and Linux mounts read-only.

6) UEFI boot order

sudo efibootmgr -v
sudo efibootmgr -o 0002,0001

Some firmware "helpfully" resets boot order after Windows updates. Re-add Ubuntu/Fedora entry if GRUB vanishes.

7) Repair GRUB from live USB

sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
sudo grub-install --boot-directory=/mnt/boot --efi-directory=/mnt/boot/efi
sudo update-grub

Adjust partition numbers to match lsblk on your machine.

When not to dual-boot

Consider a VM for Linux on a Windows desktop (Hyper-V, VirtualBox) if you lack spare partitions or firmware makes boot entries unreliable. Full dual-boot shines when you need bare-metal GPU performance for Linux workloads.

Related guides

boot dual linux windows