How to Dual Boot Linux and Windows 11 (Complete Guide)

Tested with: Ubuntu 26.04 LTS + Windows 11 on UEFI — June 2026
Dual booting lets you run Linux and Windows on the same computer, choosing which one to start at boot. This guide covers the complete process: preparing Windows correctly (most guides skip the critical steps here), shrinking the Windows partition, installing Linux alongside it, and fixing common issues with GRUB. Done right, dual booting is stable and reliable.
Before You Start: Three Critical Steps in Windows
Most dual boot guides jump straight to the Linux install. That's a mistake — three Windows settings must be handled first or you'll corrupt data or lose your bootloader.
1. Disable BitLocker (if enabled)
BitLocker encrypts the Windows partition. If it's active, shrinking the partition or changing the boot order can trigger BitLocker recovery and lock you out of Windows. Check and disable it first:
# In Windows, open PowerShell as Administrator:
manage-bde -status C:
# If BitLocker is "Protection On", disable it:
manage-bde -off C:
# Wait for decryption to complete before proceeding (can take hours on large drives)
manage-bde -status C:Alternatively: Control Panel → BitLocker Drive Encryption → Turn off BitLocker.
2. Disable Fast Startup
Windows Fast Startup writes a hibernation state to disk when you shut down. Linux sees this as a mounted Windows partition and refuses to access it — or worse, mounts it read-only and causes filesystem errors.
Disable it: Control Panel → Power Options → Choose what the power buttons do → Turn on fast startup → uncheck it.
# Or via PowerShell:
powercfg /h off3. Check Secure Boot and UEFI Mode
Modern distros (Ubuntu, Fedora) support Secure Boot — you don't need to disable it. But check your firmware is in UEFI mode (not Legacy/CSM), since UEFI is required for the GRUB bootloader to manage both systems properly.
# Check boot mode in Windows:
msinfo32
# Look for "BIOS Mode" — should say "UEFI"Shrink the Windows Partition
You need free, unallocated disk space for Linux. Shrink the Windows C: drive using Windows Disk Management — never from the Linux installer, as Windows needs to do its own filesystem checks.
- Press Win + X → Disk Management
- Right-click on the C: drive → Shrink Volume
- Enter the amount to shrink in MB. Minimum for Linux: 25,000 MB (25 GB). Recommended: 50,000+ MB.
- Click Shrink. The freed space appears as "Unallocated" — leave it as-is.
If Windows won't let you shrink enough, it's usually because unmovable files (hibernation file, pagefile) are scattered throughout the disk. Disable hibernation (powercfg /h off), disable the pagefile temporarily, restart, and try again.
Create a Bootable Linux USB
Download your chosen distro ISO and write it to a USB drive (8 GB minimum):
- Ubuntu 26.04 LTS — best hardware support, straightforward installer
- Linux Mint 22 — most user-friendly for Windows switchers
- Fedora 44 — latest software, excellent GNOME experience
Use Rufus (Windows) or Balena Etcher (Windows/Mac/Linux) to write the ISO. In Rufus, select "GPT" partition scheme and "UEFI (non-CSM)" target — this matches your Windows UEFI setup.
Boot from USB and Install Linux
Restart your computer and press the boot menu key (usually F12, F2, Del, or Esc — varies by manufacturer). Select your USB drive.
Ubuntu: "Install alongside Windows"
The Ubuntu installer detects Windows automatically. At the "Installation type" screen:
- Select "Install Ubuntu alongside Windows Boot Manager"
- Use the slider to adjust how much space each OS gets (it uses the unallocated space you freed)
- Click Install Now
If this option doesn't appear, choose "Something else" and manually assign the unallocated space:
- Select the free space → + → 512 MB, EFI System Partition (if no EFI partition exists yet)
- Select remaining free space → + → use as ext4, mount point
/ - Set the bootloader device to your main disk (e.g.,
/dev/sda, not a partition)
Fedora: Anaconda installer
In Fedora's installer, go to Installation Destination → select your disk → choose "Custom" or "Automatic" partitioning. Fedora detects Windows and leaves it intact. Select the free space for Fedora's partitions.
First Boot: GRUB Menu
After installation, your computer now boots to the GRUB menu, showing both options:
Ubuntu 26.04 LTS
Advanced options for Ubuntu
Windows Boot Manager
UEFI Firmware SettingsThe default is Linux. To change the default or timeout, edit GRUB settings:
# Edit GRUB configuration
sudo vim /etc/default/grub
# Change default OS (0 = first entry, usually Linux)
# To make Windows default, count its position in the GRUB menu (0-indexed)
GRUB_DEFAULT=0
# Change timeout (seconds to wait before booting default)
GRUB_TIMEOUT=10
# Apply changes
sudo update-grub # Ubuntu/Debian/Mint
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # Fedora/RHELVerify the Dual Boot Works
# From Linux, check that Windows partition is visible
lsblk -f
# The Windows NTFS partition should appear
# Do NOT mount it automatically — let Windows manage it
# Only mount it when needed:
sudo mkdir /mnt/windows
sudo mount /dev/sda2 /mnt/windows -o ro # Read-only is saferTime Sync Issue: Fix the Clock Difference
You'll notice the clock is wrong after switching between Linux and Windows. This happens because Linux stores time in UTC by default, while Windows stores local time. Fix it in Linux:
# Make Linux use local time (matches Windows behavior)
sudo timedatectl set-local-rtc 1 --adjust-system-clock
# Or — better — tell Windows to use UTC instead:
# In Windows, open regedit and add:
# HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation
# Add DWORD "RealTimeIsUniversal" = 1Troubleshooting
GRUB doesn't show Windows
# Install os-prober to detect other operating systems
sudo apt install os-prober # Ubuntu/Debian
sudo dnf install os-prober # Fedora
# Enable os-prober in GRUB config
sudo vim /etc/default/grub
# Add or uncomment: GRUB_DISABLE_OS_PROBER=false
# Regenerate GRUB config
sudo update-grubComputer boots directly into Windows, no GRUB
Windows Update sometimes overwrites the bootloader. Boot from your Linux USB in "Try" mode and repair GRUB:
# Identify your Linux partition and EFI partition
lsblk -f
# Mount Linux root (replace sda4 with your partition)
sudo mount /dev/sda4 /mnt
sudo mount /dev/sda1 /mnt/boot/efi # EFI partition
# Bind system directories
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
# Chroot into your Linux install
sudo chroot /mnt
# Reinstall GRUB
grub-install /dev/sda
update-grub
exit
# Unmount and reboot
sudo umount -R /mnt
sudo rebootBitLocker recovery screen after installing Linux
This happens when BitLocker was active. Boot into Windows using your recovery key (found in your Microsoft account at account.microsoft.com/devices/recoverykey). Then disable BitLocker before making any more changes.
Linux won't boot after a Windows update
Use the GRUB repair steps above. Windows Update occasionally resets the EFI boot order. After repairing, you can also set Linux as the first boot option from BIOS/UEFI settings.
Removing Linux from a Dual Boot
If you want to go back to Windows-only: don't just delete the Linux partitions — that breaks GRUB and Windows won't boot. Restore the Windows bootloader first:
