How to Dual boot Windows 10 and Linux (Beginner's Guide)

You will learn everything you need to know about dual-booting Linux and Windows.

I assume you already have Windows installed on your computer and you only need to install Linux to dual boot. This post will guide you through the following key points of the dual boot installation:

NOTE: Before you apply any actions from in this post, please back up all your important data.

BIOS settings

Unfortunately, most of the computers have BIOS configured specifically for Windows, and likely you won’t be able to install Linux on it without changing some settings. BIOS interface may differ from one computer to another but the main settings are the same.

I will use the BIOS of my Acer Swift 1 laptop as an example here.

Get into BIOS

First, you need to get into BIOS, usually, you just need to press a specific key during the boot. In my Acer Swift 1, I press F2. Just google your computer model and bios key term, and you will find the key you need to press. Sometimes, you may also see it on the screen during the boot:

Key to open BIOS settings is shown on the screen

Set the BIOS password

Next, you may need to set a password in your BIOS because it won’t allow you to change any security settings without a password. This is the menu to set the password on my Acer Swift 1:

Set BIOS password

You should be able to find the same in your BIOS. It is also possible that you can proceed without setting a password.

Disable Secure booting and change the Boot order

Next, you need to go to the Boot menu and disable Secure booting and move your bootable USB flash drive to the first place in the boot order:

disabled secure boot and changed boot order in BIOS

Check this description of the commands on the right or bottom of your BIOS interface, it explains how to navigate and change options in your BIOS.

I am not going to stop here on how to create a bootable USB drive. I have already explained how to create a bootable USB from the command line or using graphical programs.

Save BIOS settings

In the end, go to the exit menu and exit BIOS with saving the changes:

exit BIOS saving the changes

If you have done everything correctly, you should boot in your Live USB Linux system:

GRUB menu of the Live Linux Mint USB

Get free space for Linux

Boot into Live Linux session

Boot from the Live Linux USB. I will use Linux Mint installer as an example here, if you use Ubuntu or any Ubuntu-based distro, the process will not differ at all. If your distro is not Ubuntu-based, you still need to do the same steps as you will see in this post but the installer may look slightly different.

To install Linux alongside Windows, you can actually select such an option in the installation wizard:

install Linux Mint alongside Windows 10 automatically

It will automatically find free space on your hard drive and install Linux there. However, if you want to have little more control over how much space you allocate to Windows and Linux, you can get free space and assign it for Linux manually.

Shrink the Windows partition with GParted

Most of the Linux distros have GParted included in a Live ISO. If it is not, install it from the Software Center. Then open GParted and select the hard drive with your Windows installed:

Select the Windows hard drive in GParted

Your Windows hard drive will be partitioned similarly to the one you see above. Most likely it will have the EFI partition, and this means you need to install Linux in the EFI mode too.

To shrink the Windows partition to get free space for Linux, you need to select the largest partition, click on the Partition menu in GParted, and select resize.

Resize a partition in GParted to get free space

All white space is free space. So, you can shrink this partition with your mouse, or by selecting its size precisely with the number. You can take a maximum of free space for Linux if you aim to use mainly Linux, but leave some free space for Windows too, because it may not be able to work without free space left.

Click resize. Read this warning to know the risk and click OK. You will see how your partitions will look like after you apply the resizing:

GParted with the resized partition plan

So far, no changes to your hard drive have been applied. It is only a plan of action. You still can cancel everything, if you have done a mistake somewhere. However, if you are happy with this partition table. Click apply. This action will be irreversible.

GParted resizing is in progress

Resizing will take some time. Hopefully, it will finish successfully and you can proceed with the installation.

Install Linux

To install Linux, click on the Install icons on your desktop or in your menu. The installation process is pretty standard.

I recommend to include the third party software in the installation:

Include the third party software in Linux Mint installation

Select Manual partitioning

As I mentioned before, you can select the option to Install Linux alongside Windows automatically, but I personally prefer the manual way. That’s why we shrank the Windows partition and released some free space for Linux. Manual way not only gives more control but it also helps to understand what happens to your system when you install two systems alongside each other. So, select Something else here:

Something else option in the Linux Mint installer

Create Linux Partition

The new screen will show you the partitions of your hard drive. You need to select the free space we have created in the previous step. Then click on the add sign, to create a Linux partition in this free space:

Creating a new Linux partition in the Linux Mint installer

You can keep all the options at default here but importantly you need to assign / as a mounting point to this partition.

You can also split this free space into two parts and assign one to the system / and one to /swap. But I believe it is much better to use a swap file instead. Ubuntu installer creates a swap file by default. I already explained the difference between a swap file and swap partition previously.

Check the EFI partition

Next, you need to select the EFI partition, it is usually of several hundred megabytes in size. Make sure it is detected as EFI:

EFI partition is detected by the Linux Mint installer

Boot loader installation

Boot loader installation doesn’t matter here because it will be UEFI installation, so the boot loader will be installed in the EFI partition. You can keep the default selection.

Format column

Finally, check that only the new Linux partition will be formatted in the Format column. Because if you have other partitions selected for formatting, be careful you will lose all the data stored in those partitions. If everything is fine, click Install.

Finalize the installation

While the system is installing, select your location, provide your user information, set the password, etc.:

Configure the new user in the Linux Mint installer

And then just wait until the system is installed.

After the installation, reboot the system and do not forget to remove your installation USB when you are requested to do so:

Remove the Linux Mint installation media during the reboot

Boot into the new system

You should see this GRUB menu after the reboot. Here you can select between Linux, which will boot by default in 10 sec, and Windows:

GRUB menu with Linux and Windows boot options

Boot options in BIOS

If it happened that after the reboot, you booted directly in your Windows and you did not see any Linux menu, do not get upset. Likely, you have done everything right and you just need to change the boot order in your BIOS. Like I had to do in my Acer Swift 1.

Enable the Boot menu

In the Main tab, find the Boot menu and enable it:

Enable BIOS Boot menu key

Change the Boot order

Then go to the Boot order and you should see an additional boot option there that appeared after you installed Linux. In my case, it is still called Windows Boot Manager without the code in brackets. This is actually my Linux boot file. I do not know why BIOS branded it as Windows. So, I make it a first boot option:

Linux is shown as Windows boot manager in BIOS boot order

And save the BIOS changes. After the reboot, you should see the GRUB menu with the choice of boot options.

Test the Boot menu

If you still boot into Windows by default, try to open the boot menu during the start of your system by pressing the F12 key (or whatever key is assigned to your BIOS Boot menu). It should bring this BIOS boot menu:

BIOS boot menu called with F12 during the start-up of the system

Where I can choose Ubuntu and my Linux Mint will boot. So, the BIOS Boot menu helps to make sure that Linux works, you just need to check your boot order settings, maybe Linux is not the first option there. Try different orders until you get Linux booting the first.

Why I do not recommend dual-booting

There are three main reasons I stopped dual-booting and this is also why I do not recommend dual boot.

  1. If you use Windows in dual boot, it is possible that some updates of Windows may break your Linux installation. Theoretically, it should not happen, but it happens. Maybe Windows changes the Linux bootloader in the UEFI partition. I do not know.

  2. If you dual boot, you will never switch to Linux. If you are used to Windows, you will tend to boot into Windows more often and you won’t like to reboot to get to Linux. So, you will not use Linux much and thus will never switch to Linux completely.

  3. On the other hand, if you prefer Linux, Windows will just take to much space on your hard drive that is never used. So, this is not good either.

I recommend using Windows in a Virtual machine such as VirtualBox. This way your Windows can be accessed from within Linux. Windows will be less powerful than if it was installed in dual boot, but you still can do most of the things you would normally do. A virtual machine also isolates your Windows file system and this provides better protection against viruses. You can read my post on how to install Windows 10 in VirtualBox and maybe you will like that option more than dual-booting.

Average Linux User
Average Linux User I am the founder of the Average Linux User project, which is a hobby I work on at night. During the day I am a scientist who uses computers to analyze genetic data.