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:
- Essential BIOS settings for successful dual boot.
- How to shrink your Windows partition to get free space for Linux.
- How to install Linux, using Linux Mint as an example.
- How to set the boot order in your computer to see the menu where you can choose between Linux and Windows to boot.
- Finally, I will explain why I am not a fan of dual-booting and why I recommend using Windows in a virtual machine as I showed in this post.
*NOTE: Before you apply any actions from in this post, please back up all your important data.*
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:
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:
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:
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.
Save BIOS settings
In the end, go to the exit menu and exit BIOS with saving the changes:
If you have done everything correctly, you should boot in your Live USB Linux system:
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:
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:
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.
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:
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.
Resizing will take some time. Hopefully, it will finish successfully and you can proceed with the installation.
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:
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:
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:
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:
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.
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.:
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:
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:
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:
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:
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:
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.
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.
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.
On the other hand, if you prefer Linux, Windows will just take too 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.