How to Set Up a Dual Boot with Windows and Linux
You want to run both Windows and Linux on the same computer, choosing which operating system to boot into each time you start the machine. Dual booting gives you full access to both operating systems with native performance — no virtual machine overhead. This is useful for developers who need Linux tools, users who want to try Linux without giving up Windows, or anyone who needs specific software available only on one platform.
Before you start
- Back up all important data before making any changes to disk partitions. Partitioning carries a small risk of data loss if something goes wrong. An external drive backup or cloud backup ensures your files are safe regardless of what happens during setup
- Check that your computer uses UEFI firmware rather than legacy BIOS. Most computers made after 2012 use UEFI. Check by pressing Windows plus R, typing msinfo32, and looking at the BIOS Mode field. If it says UEFI, you are ready. If it says Legacy, you can still dual boot but the process differs slightly
- Decide which Linux distribution to install. Ubuntu and Linux Mint are popular choices for beginners because they have straightforward installers with built-in dual boot support. Fedora, Pop!_OS, and Manjaro are good alternatives. Download the ISO file from the distribution official website
Create free space for Linux
- Linux needs its own partition on the disk. Open Disk Management in Windows by right-clicking the Start button and selecting Disk Management. Find your main Windows partition (usually C drive), right-click it, and select Shrink Volume
- Enter the amount of space to shrink in megabytes. For a comfortable Linux installation, allocate at least 50 GB (51200 MB). If you plan to use Linux extensively with many applications and files, 100 GB or more is better. The shrink operation creates unallocated space that Linux will use during installation
- If Shrink Volume offers less space than expected, Windows files at the end of the partition may be preventing the shrink. Run Disk Cleanup, disable hibernation (powercfg /h off in an elevated Command Prompt), and disable the page file temporarily. After shrinking, re-enable these features
Create a bootable USB drive
- Download a tool to create the bootable USB. Rufus is the most popular tool for Windows — download it from the official Rufus website. You need a USB drive with at least 4 GB of storage. All data on the USB drive will be erased during this process
- Open Rufus, select your USB drive, click Select to choose the Linux ISO file you downloaded, and leave the default settings (GPT partition scheme for UEFI, FAT32 file system). Click Start. Rufus writes the Linux installer to the USB drive, which takes a few minutes
- Some Linux distributions provide their own USB creation tools. Ubuntu has a Startup Disk Creator, and Fedora has the Fedora Media Writer. These tools work similarly to Rufus but are designed specifically for their distributions
Disable Fast Startup and Secure Boot
- Windows Fast Startup puts the system in a hybrid shutdown state that can cause file system issues when Linux tries to access Windows partitions. Disable it: open Control Panel, Power Options, choose what the power buttons do, Change Settings That Are Currently Unavailable, and uncheck Turn On Fast Startup
- Secure Boot may prevent some Linux distributions from booting. Ubuntu and Fedora support Secure Boot and can be installed with it enabled. Other distributions may require disabling Secure Boot in the BIOS. Enter BIOS during startup (usually Delete, F2, or F10), find the Secure Boot setting under Security or Boot, and disable it if your chosen distribution does not support it
- If you disable Secure Boot, BitLocker may prompt for a recovery key on the next Windows boot. Have your BitLocker recovery key available (stored in your Microsoft account at account.microsoft.com/devices/recoverykey) before changing BIOS settings
Boot from the USB drive
- Restart the computer and enter the boot menu. The key varies by manufacturer — common keys are F12, F8, F11, or Escape. Select the USB drive from the boot menu. The Linux installer loads from the USB
- Most Linux installers offer a Try option that loads a live session without installing. Use this to verify that Linux works with your hardware (Wi-Fi, display, sound, touchpad) before committing to the installation. If something does not work in the live session, search for the issue before proceeding
- If the boot menu does not show the USB drive, check that the USB was created correctly (try booting on another computer) and that UEFI boot is enabled in BIOS. Some BIOS configurations require explicitly enabling USB boot
Install Linux alongside Windows
- Start the installer from the live session or the boot menu. When the installer asks about installation type, select Install Alongside Windows Boot Manager or Something Similar. This option automatically uses the unallocated space you created earlier and sets up the boot manager
- If you want manual control over partitions, select Something Else or Manual Partitioning. Create the following partitions in the unallocated space: a root partition (/) with at least 30 GB formatted as ext4, a swap partition equal to your RAM size (or 8 GB if you have more than 8 GB of RAM), and optionally a separate home partition (/home) with the remaining space
- The installer asks where to install the boot loader. The default location (the EFI System Partition) is correct for UEFI systems. Do not change this unless you know what you are doing — an incorrect boot loader location can make both operating systems unbootable
Configure the boot manager
- After installation, the computer boots into GRUB (the Linux boot manager) which shows a menu with both Linux and Windows as options. Select the operating system you want to use. The default selection boots automatically after a few seconds if you do not make a choice
- To change the default operating system or the timeout duration, boot into Linux and edit the GRUB configuration. Open a terminal and run sudo nano /etc/default/grub. Change GRUB_DEFAULT to 0 for Linux first or to the number corresponding to the Windows entry. Change GRUB_TIMEOUT to your preferred seconds. Save and run sudo update-grub
- If GRUB does not appear and the computer boots directly into Windows, the UEFI boot order may need adjustment. Enter BIOS and change the boot order to prioritize the Linux boot entry (usually named ubuntu or the distribution name) over Windows Boot Manager
Share files between Windows and Linux
- Linux can read and write NTFS partitions (the Windows file system) natively. You can access your Windows files from Linux through the file manager — the Windows partition appears as a mountable drive. However, avoid modifying Windows system files from Linux
- Windows cannot read Linux file systems (ext4) without additional software. If you need to share files between both operating systems, create a shared NTFS partition or use a USB drive formatted as NTFS or exFAT that both systems can access
- If the Windows partition shows as read-only in Linux, Windows Fast Startup is likely still enabled or Windows did not shut down cleanly. Boot into Windows, ensure Fast Startup is disabled, and perform a full shutdown (hold Shift while clicking Shut Down) before booting into Linux
Troubleshoot common dual boot problems
- If Windows is not listed in GRUB, boot into Linux, open a terminal, and run sudo update-grub. This scans for all operating systems and updates the GRUB menu. If Windows still does not appear, install os-prober: sudo apt install os-prober (on Ubuntu-based distributions), then run update-grub again
- If the clock is wrong in one operating system after using the other, this is caused by Windows and Linux interpreting the hardware clock differently. Fix it in Linux by running: timedatectl set-local-rtc 1. This tells Linux to treat the hardware clock as local time, matching Windows behavior
- If a Windows update breaks GRUB and the computer boots directly into Windows, the update overwrote the UEFI boot entry. Boot from the Linux USB in live mode, open a terminal, and reinstall GRUB: sudo mount /dev/sdXY /mnt (where XY is your Linux root partition), then sudo grub-install --boot-directory=/mnt/boot /dev/sdX, then sudo update-grub
Need help setting up dual boot?
If you need help setting up a dual boot system with Windows and Linux, LuxuriousComputers Repair can partition your drive safely, install Linux alongside Windows, configure the boot manager, and ensure both operating systems work correctly on your computer.