Dual Boot Guide: Windows 11 and Ubuntu
Step-by-step guide to dual booting Windows 11 and Ubuntu — partitioning, installation, GRUB, and common fixes.

Note
Updated June 2026: This guide was written for Ubuntu 25.04. For Ubuntu 26.04 LTS (Resolute Raccoon), the core steps are identical — download from releases.ubuntu.com/resolute. Secure Boot no longer needs to be disabled (supported natively since Ubuntu 22.04). Installer UI may look slightly different.
Dual boot when you want the real machine — the whole GPU, real battery behaviour, native performance. If you just want a shell and some Linux tooling, WSL2 does that without repartitioning anything, and it’s the better answer for most people asking this question.
Assuming you’re still here: 30–45 minutes, at least 30GB free, and an 8GB USB stick.
Prepare Windows
Back up first. You’re about to resize the partition your operating system lives on. Windows Backup, an external drive, cloud — whichever, as long as it exists.
Then check which firmware mode you’re in: Win + R, msinfo32, look for “BIOS Mode”. UEFI is what anything from the last decade uses, and the rest of this guide assumes it.
Shrink the partition from Win + X → Disk Management. Right-click C: → Shrink Volume, enter the amount in MB. 30000 is the floor, 50000 is comfortable, 100000 if you’ll actually work in there. If Windows won’t let you shrink as far as you want, run cleanmgr first and clear the Windows Update files — the limit is usually immovable system files near the end of the volume, not free space.


Two things left, and skipping either one is how people end up with a corrupted Windows partition.
Fast Startup off. Control Panel → Power Options → Choose what the power buttons do → Change settings that are currently unavailable → uncheck Turn on fast startup. With it on, Windows never really shuts down — it hibernates, leaving the NTFS filesystem in a state Linux refuses to mount for writing.
BitLocker off, if it’s on. An encrypted volume can’t be resized, and a firmware change can lock you out of your own recovery key:
manage-bde -statusmanage-bde -off C:Let decryption finish. It takes a while, and interrupting it is worse than waiting.
The installation media
Ubuntu 25.04 is at releases.ubuntu.com/plucky, 26.04 LTS at releases.ubuntu.com/resolute.
Check the download before you write it — a truncated ISO installs most of an operating system and then fails somewhere unhelpful:
Get-FileHash -Algorithm SHA256 -Path path\to\ubuntu-25.04-desktop-amd64.isoCompare against SHA256SUMS on the download page.
Rufus writes it: select the drive, select the ISO, partition scheme GPT for UEFI, START → Write in ISO Image mode. MBR here produces a stick that boots on nothing.


Alternatively, Ventoy lets you copy multiple ISOs to one USB without re-flashing.
Install Ubuntu
Into the BIOS first — F2, F12, Del or Esc, depending on the board. SATA to AHCI and Intel RST off are the two that matter: with RST enabled, the Ubuntu installer simply does not see your disk, and the error it gives you says nothing about RST. Set USB as first boot device while you’re there.
Caution
Switching SATA from RST/RAID to AHCI can stop Windows booting. Do it before the install, boot Windows once to confirm it still starts, and only then continue. On Ubuntu 22.04 and later Secure Boot no longer needs to be disabled.
Boot the stick, Try or Install Ubuntu, language, keyboard, Wi-Fi.
Beginner: select Install Ubuntu alongside Windows Boot Manager and let the installer handle partitioning.
Manual partitioning (select Something else): in the unallocated space, create an EFI partition (512MB, EFI System Partition — skip if one already exists), a root partition (20–30GB, ext4, mount point /), a swap partition (equal to your RAM if you want hibernation), and a home partition (remaining space, ext4, mount point /home).
Confirm, set the timezone, create the user, wait 10–15 minutes. Pull the USB when it asks and reboot.

After the first boot
sudo apt update && sudo apt upgrade -ysudo apt install ubuntu-restricted-extras
# Nvidia, if you have onesudo ubuntu-drivers autoinstallThen the one fix specific to dual boot. Windows reads the hardware clock as local time, Linux reads it as UTC, so each one “corrects” it on every boot and your clock walks by your timezone offset every time you switch:
timedatectl set-local-rtc 1 --adjust-system-clockEverything else, in one script
#!/bin/bash
# Update systemsudo apt update && sudo apt upgrade -y
# Install essential softwaresudo apt install -y ubuntu-restricted-extras vlc gimp libreoffice timeshift gnome-tweaks
# Fix time synchronizationtimedatectl set-local-rtc 1 --adjust-system-clock
# Optimize SSD if present21 collapsed lines
if [ -d "/sys/block/nvme0n1" ] || [ -d "/sys/block/sda" ]; then sudo apt install -y util-linux sudo systemctl enable fstrim.timerfi
# Improve battery lifesudo apt install -y tlp tlp-rdwsudo systemctl enable tlp
# Set up auto-cleaningecho 'APT::Periodic::Update-Package-Lists "1";APT::Periodic::Download-Upgradeable-Packages "1";APT::Periodic::AutocleanInterval "7";' | sudo tee /etc/apt/apt.conf.d/20auto-upgrades
# Performance improvementsecho 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
# Check and repair GRUB if neededsudo update-grub
echo "Setup complete! Reboot for changes to take effect."chmod +x dual-boot-setup.sh./dual-boot-setup.shLiving with it
The Windows drive appears in the Ubuntu file manager on its own. Writing to it needs one package:
sudo apt install ntfs-3gThe other direction is worse — Windows can’t read ext4 natively. Either \\wsl$\Ubuntu\home\yourusername in File Explorer with WSL2 installed, or Paragon Linux File Systems for Windows.
GRUB boots Ubuntu by default. To change which entry wins:
sudo nano /etc/default/grubChange GRUB_DEFAULT=0 to your preferred entry number, set GRUB_TIMEOUT=10 if you want more time to choose, then:
sudo update-grubOr use the graphical tool:
sudo apt install grub-customizerAnd set up snapshots before you need them, not after:
sudo apt install timeshiftsudo timeshift --create --comments "Fresh Ubuntu installation"Troubleshooting
Windows isn’t in the GRUB menu. GRUB was built before it could see the Windows partition:
sudo os-probersudo update-grubUbuntu stopped booting after a Windows update. Windows overwrote the bootloader — it does this periodically and without warning. Boot the Ubuntu USB in “Try Ubuntu” mode:
sudo add-apt-repository ppa:yannubuntu/boot-repairsudo apt updatesudo apt install boot-repairboot-repairChoose “Recommended repair”.
Secure Boot is refusing your kernel modules. Disable Secure Boot in UEFI, boot Ubuntu, then re-enrol:
sudo apt install sbsigntoolsudo update-secureboot-policyWindows won’t boot at all. From Windows installation media → Repair your computer → Troubleshoot → Advanced Options → Command Prompt:
bootrec /fixmbrbootrec /fixbootbootrec /rebuildbcdUndoing it
Dropping Ubuntu: boot Windows → Disk Management → delete the Ubuntu partitions → expand the Windows partition → repair the Windows bootloader from installation media. GRUB lives in the EFI partition and has to be removed too, or you’ll boot into a rescue prompt on a system with no Linux on it.
Dropping Windows:
sudo apt install gpartedsudo gpartedDelete the Windows partitions, expand Ubuntu into the space, then rebuild the menu:
sudo update-grubThe one thing worth knowing before you start: the failure mode of this whole procedure isn’t losing Linux. It’s a Windows update quietly taking the bootloader six months from now, on a morning when you need the machine. Keep the USB stick.