Dual Boot Ubuntu with Windows: Step-by-Step

Khimananda Oli 9 min read Virtualization
Dual Boot Ubuntu with Windows: Step-by-Step

By Khimananda Oli | Last reviewed: August 2026

Dual boot Ubuntu with Windows remains the most practical way for developers to access native Linux toolchains while retaining Windows for proprietary software or gaming. Despite the rise of WSL2, direct hardware access for kernel development, embedded systems, and GPU passthrough still requires a bare-metal Linux installation. This guide covers the complete process of setting up a dual boot Ubuntu with Windows system safely, addressing modern UEFI firmware, BitLocker encryption, and bootloader management without data loss.

What are the prerequisites to dual boot Ubuntu with Windows safely?

Before touching any partition table, you must prepare the Windows environment to prevent filesystem corruption and bootloader conflicts. Modern laptops ship with features that lock disks or bypass standard shutdown procedures, making them hostile to multi-boot setups. Skipping these steps is the primary cause of "NTFS is hibernated" errors during installation.

Disable Fast Startup and Hibernation

Windows Fast Startup writes the kernel state to disk instead of fully shutting down, effectively hibernating the NTFS partition. Linux cannot mount this partition read-write safely. Open an elevated PowerShell prompt and run:

powercfg /h off

This disables both hibernation and Fast Startup immediately. Verify in Control Panel > Power Options > Choose what the power buttons do that "Turn on fast startup" is greyed out or unchecked.

Suspend or Decrypt BitLocker

If your device uses BitLocker (standard on most Windows 11 Pro/Enterprise machines), the Ubuntu installer cannot resize the encrypted partition. You have two options:

  • Suspend protection: manage-bde -protectors -disable C: — keeps data encrypted but allows resizing. Re-enable after installation with -enable.
  • Full decryption: Safer for beginners but takes hours. Settings > Privacy & Security > Device Encryption > Turn Off.

Always back up your BitLocker recovery key to external media before proceeding. I keep mine in a password manager and printed on paper; losing it during a failed resize means total data loss.

Create Free Space via Disk Management

Do not rely on the Ubuntu installer to shrink NTFS. Windows understands its own metadata best. Open diskmgmt.msc, right-click your C: drive, and select Shrink Volume. Allocate at least 100 GB for a comfortable development environment. Leave the space as "Unallocated" — do not format it. For those building a DevOps engineer roadmap lab, 150–200 GB accommodates Docker images, Kubernetes clusters, and multiple kernel builds.

Disable FastStartuppowercfg /h offSuspendBitLockerBackup Recovery KeyShrink NTFSvia Disk Mgmt≥100 GB UnallocatedReady forInstallComplete all steps in Windows before booting Ubuntu USB
Prerequisite sequence: disable Fast Startup, suspend BitLocker, and shrink NTFS before attempting to dual boot Ubuntu with Windows

How do you create a UEFI-compatible Ubuntu USB installer?

Most dual-boot failures in 2026 stem from creating a legacy BIOS USB when the system expects UEFI. Verify your Windows installation mode first: press Win+R, type msinfo32, and check "BIOS Mode". It should read "UEFI". If it says "Legacy", stop — your system is older and requires different partitioning.

Write the ISO Correctly

Use Rufus (Windows) or BalenaEtcher (cross-platform). In Rufus, select your Ubuntu 24.04 LTS ISO and confirm these settings:

  • Partition scheme: GPT
  • Target system: UEFI (non CSM)
  • File system: FAT32 (required for UEFI boot)

If Rufus prompts to download updated GRUB or syslinux files, accept. These contain fixes for newer NVMe controllers and RAID metadata that shipped after the ISO release. For teams evaluating cloud vs local development, note that this same USB works for testing Linux performance benchmarks against cloud VMs.

Configure Firmware Settings

Reboot into UEFI firmware (usually F2/F12/Del). Disable Secure Boot if Ubuntu fails to load the shim bootloader — though Ubuntu 24.04 supports Secure Boot natively, third-party drivers (NVIDIA, Wi-Fi) often don't sign their modules. Also disable Intel RST/VMD if present; switch SATA mode to AHCI. RST hides the NVMe drive from the Linux installer entirely.

How do you partition and install Ubuntu alongside Windows?

The Ubuntu installer offers an automated "Install alongside Windows Boot Manager" option. This works for simple setups but gives you no control over swap, /home separation, or filesystem choice. For any serious engineering work, use manual partitioning.

Manual Partition Layout

Select "Something else" at the Installation type screen. In the unallocated space you created earlier, create these partitions:

Mount PointSizeTypePurpose
/boot/efi512 MBFAT32Shared EFI System Partition (ESP)
/50–80 GBext4 / btrfsRoot filesystem
/homeRemainingext4 / btrfsUser data, survives reinstalls
swap= RAM sizeswapHibernation support (optional)

Critical: Do NOT format the existing EFI partition. Select it, set mount point to /boot/efi, and leave "Format" unchecked. Formatting destroys the Windows bootloader. The Ubuntu installer will add its own entry alongside Windows.

Btrfs vs ext4 in 2026

I now default to Btrfs for root and /home on dual-boot systems. Transparent compression (compress=zstd:1) saves 20–30% disk space on code repositories and logs, and snapshots let you roll back a broken update instantly. For those following server hardening practices, Btrfs checksums also catch silent corruption that ext4 ignores.

NVMe / SSD Physical DiskEFI (FAT32)Windows NTFS (C:)/ (ext4/btrfs)/home (ext4/btrfs)SwapShared ESPDO NOT FORMATWindows OSUntouchedUbuntu RootFresh InstallUser DataPersists Reinstall⚠ Always verify EFI partition is NOT checked for formatting
Correct partition layout when you dual boot Ubuntu with Windows: shared EFI, untouched NTFS, and dedicated Linux partitions

How do you fix GRUB and manage the bootloader after installation?

After installation, your system should boot to GRUB with entries for Ubuntu and Windows Boot Manager. If it boots straight to Windows, or if GRUB doesn't list Windows, the bootloader chain needs repair. This is the most common post-install issue when you dual boot Ubuntu with Windows.

Restore Missing Windows Entry

Boot into Ubuntu and run:

sudo os-prober
sudo update-grub

In Ubuntu 24.04+, os-prober is disabled by default for security. Edit /etc/default/grub and add:

GRUB_DISABLE_OS_PROBER=false

Then re-run sudo update-grub. If Windows still doesn't appear, mount the EFI partition manually and verify /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi exists.

Repair Broken GRUB from Live USB

If the system won't boot at all, use the Ubuntu live USB:

  1. Boot live session, open terminal
  2. Identify partitions: lsblk -f
  3. Mount root: sudo mount /dev/nvme0n1p5 /mnt
  4. Mount EFI: sudo mount /dev/nvme0n1p1 /mnt/boot/efi
  5. Bind mounts: for i in dev dev/pts proc sys run; do sudo mount --bind /$i /mnt/$i; done
  6. Chroot: sudo chroot /mnt
  7. Reinstall: grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
  8. Regenerate: update-grub

Exit chroot, unmount everything, and reboot. This procedure has rescued dozens of dual-boot systems in my career, including after Windows Updates overwrote the EFI entry.

When should you choose dual boot over WSL2 or virtual machines?

WSL2 has matured significantly, but it isn't a universal replacement. Understanding the trade-offs prevents wasted time debugging limitations that only bare metal solves.

CriterionDual BootWSL2VM (VirtualBox/VMware)
Kernel module development✅ Full access❌ Microsoft-signed kernel only⚠️ Possible but slow
GPU compute / CUDA✅ Native performance⚠️ Passthrough overhead ~5-10%❌ No GPU passthrough
Docker / containers✅ Native cgroups⚠️ Runs in Hyper-V VM⚠️ Nested virtualization
Hardware peripherals (USB, serial)✅ Direct❌ Limited usbipd support⚠️ USB passthrough unreliable
Boot time to Linux env❌ 30-60s full boot✅ 2-5s⚠️ 15-30s
Filesystem cross-access⚠️ NTFS r/w possible but risky✅ Seamless /mnt/c⚠️ Shared folders slow

For web development, API testing, and scripting, WSL2 is sufficient. For anything touching hardware, real-time scheduling, eBPF, or production-mirroring kernel configs, dual boot is non-negotiable. Teams exploring local LLM hosting will also find dual boot essential for maximizing GPU memory availability without Hyper-V reservation overhead.

Need Linux Environment?Hardware / Kernel Access?YesNoDual BootNative PerformanceWSL2 / VMConvenience PriorityGPU Heavy? → Dual BootWeb/API Only? → WSL2Choose based on workload requirements, not preference
Decision framework: when to dual boot Ubuntu with Windows versus using WSL2 or virtual machines

Maintaining Your Dual Boot System Long-Term

A dual boot system requires ongoing maintenance that single-OS installs don't. Windows Updates periodically overwrite EFI entries or reset boot order. Plan for this.

  • Keep a live USB handy: Label it and store it with your laptop. You'll need it eventually.
  • Pin Windows Update: Use Group Policy or registry keys to delay feature updates until community reports confirm GRUB compatibility.
  • Monitor EFI partition space: Old kernel images accumulate. Run sudo apt autoremove --purge regularly and verify /boot/efi usage stays below 80%.
  • Test boot entries monthly: Don't discover a broken chain during an emergency. Reboot into each OS weekly to confirm functionality.
  • Document your partition UUIDs: Save blkid output to an external note. After disk cloning or replacement, this accelerates recovery dramatically.

For Nepal-based developers dealing with frequent power fluctuations, ensure your UPS provides clean power during OS switches. Sudden power loss during GRUB writes or NTFS journal commits causes corruption that no amount of software configuration can prevent. A ₹3,000–5,000 UPS investment protects years of dual-boot setup work.

Next Steps After Successful Dual Boot

Once you've verified both operating systems boot reliably, secure and optimize your new environment. Run through the initial Ubuntu server setup checklist — the hardening steps apply equally to desktop installations exposed to networks. Configure automatic backups of your /home partition, set up SSH key authentication for remote access, and install monitoring tools like Netdata to track system health across reboots.

If you encounter edge cases specific to your hardware vendor, regional firmware variants, or enterprise-managed devices, reach out via the contact page. I've debugged dual-boot issues across Dell, Lenovo, HP, and custom-built systems in both personal and corporate environments, and can help you resolve blockers that generic guides don't cover. Your time is better spent building than troubleshooting bootloader chains.

Frequently Asked Questions

Yes, if you back up first and disable Fast Startup. Windows hibernation locks NTFS partitions, risking corruption when Ubuntu writes to shared drives. Always create a full system image before resizing partitions or modifying the EFI boot loader during installation.

Allocate at least 50GB for a functional desktop environment. This covers the base system, swap file, updates, and essential development tools. More space is required if you plan to install Docker containers, compile large codebases, or store datasets locally alongside Windows.

Not necessarily. Modern Ubuntu ISOs include signed shim loaders compatible with Secure Boot. However, third-party drivers like NVIDIA or Wi-Fi adapters often require disabling it temporarily to install unsigned kernel modules before re-enabling protection in BIOS settings.

Yes, Ubuntu mounts NTFS partitions natively using the ntfs-3g driver. Ensure Windows Fast Startup is disabled to prevent read-only mounting or data corruption. Access your user directory via /mnt or by adding an fstab entry for automatic mounting at boot time.

No, GRUB detects Windows and adds it to the boot menu automatically. The installer places GRUB in the EFI System Partition without deleting Microsoft boot files. If Windows disappears after updates, run sudo update-grub from Ubuntu to regenerate the configuration.

Boot from a live USB, mount your root and EFI partitions, then chroot into the installed system. Reinstall GRUB with grub-install and regenerate config with update-grub. Windows updates sometimes overwrite the EFI boot order, requiring this manual restoration step.

Avoid it unless necessary. BitLocker encrypts the entire Windows partition, making it inaccessible from Ubuntu without recovery keys. If encryption is mandatory, store the recovery key externally and understand that Ubuntu cannot read encrypted NTFS volumes natively during dual boot sessions.

No. Each OS runs independently with dedicated hardware resources. Performance issues usually stem from insufficient RAM allocation, fragmented NTFS partitions after resizing, or background Windows Update processes competing for disk I/O during shared partition access from Ubuntu.

No. Binary formats are incompatible. Use Wine or Proton for specific Windows executables, but expect compatibility gaps. For development, maintain separate toolchains per OS or use WSL2 within Windows instead of dual booting if cross-platform app sharing is critical.

Format a separate partition as exFAT for reliable read-write access from both operating systems. NTFS works but risks corruption due to Windows caching. ext4 is unreadable by Windows without third-party tools. exFAT lacks journaling but provides universal compatibility for shared data exchange.

Edit /etc/default/grub and change GRUB_DEFAULT to the Windows menu entry index or exact title string. Run sudo update-grub to apply changes. Alternatively, use grub-customizer GUI tool to reorder entries visually without manually editing configuration files or counting menu positions.

Dual boot offers native hardware performance for GPU-intensive tasks and low-level system programming. VMs provide convenience and snapshot capabilities but add overhead. Choose dual boot for bare-metal access; choose VMs for testing multiple environments simultaneously without rebooting between operating systems.

Windows uses local time while Ubuntu defaults to UTC for the hardware clock. Fix this by running timedatectl set-local-rtc 1 in Ubuntu or setting RealTimeIsUniversal=1 in Windows registry. Mismatched time causes certificate errors, log inconsistencies, and scheduled task failures across both systems.

Yes. Delete Ubuntu partitions in Disk Management, then restore Windows bootloader using bootrec /fixmbr and bootrec /fixboot from Windows recovery media. Remove the ubuntu folder from the EFI System Partition afterward. Never delete the EFI partition itself as it contains Windows boot files.

Yes, Ubuntu 24.04 LTS and newer fully support TPM 2.0. It enables secure boot validation and measured boot logging. Ensure TPM is enabled in BIOS before installation. Some older motherboards require firmware updates to expose TPM correctly to Linux installers during dual boot setup.