How to Create a Windows and Linux Dual Boot

Have you ever felt like you were trapped between two worlds? On one hand, Windows with all its programs and games that you use daily. On the other, Linux, that operating system that programmers adore and that offers total control over your machine.
Well, I have good news for you: you donât have to choose. In this article we are going to learn how to create a dual boot to have both operating systems on the same computer. Literally, we are going to split your PC in half! (well, your hard drive, donât grab an ax now).
Why would you want a dual boot?
Linux is the operating system par excellence for programmers, and Iâm not saying it, but the reality of software development. Many tools are native to Linux or simply work better in this environment. The terminal, containers, development tools⊠everything is designed to flow like silk on Linux.
But letâs be honest, not all of us like using Linux for day-to-day use. There are specific applications, games, and professional software that still donât have good support on Linux. Even with prodigious solutions like Wine or Proton, the experience is not always optimal.
This is where the dual boot comes in: the best of both worlds. Windows for your games and specific software, Linux for programming and experimenting. Letâs get to it!
What you will need
For this adventure you will need:
- A USB of at least 8GB (empty or that you can format)
- Free space on your hard drive (I recommend minimum 50-100GB)
- A backup of your important data (this is CRITICAL)
- A little patience (I promise it will be worth it)
Before continuing, make a backup of your most important data. We are going to manipulate the hard drive partitions, and although the process is safe if the steps are followed correctly, there is always a minimum risk. If there is enough interest, I could make a specific article on how to do a backup correctly.
Step 1: Prepare the ground in Windows
The first thing we must do is check if we have enough free space on our hard drive. For Linux to work properly, I recommend reserving between 50 and 100 GB at least, depending on the use you are going to give it.
To make space on our drive, we are going to use the MiniTool Partition Wizard tool. It is a free application that allows us to manage our drive partitions in a simple and visual way.
Note: Windows has its own disk manager, but MiniTool offers more features and is more intuitive for this type of task.
Installing MiniTool Partition Wizard
- Download MiniTool Partition Wizard Free from its official website
- Install it following the installation wizard
- Open the application with administrator permissions
Resizing the Windows partition
When opening MiniTool, you will see an interface showing all the partitions on your system. Something like this:

One of the great advantages of MiniTool is that all changes we make are simulated until we click âApplyâ. This allows us to visualize exactly what we are doing before confirming.
Follow these steps:
- Select the main Windows partition (usually the largest, labeled C:)
- Right-click and select âMove/Resizeâ
- Drag the right end to the left to reduce the partition size
- Make sure to leave at least 50-100 GB free for Linux
- Click âOKâ
- Finally, click âApplyâ on the top bar to execute the changes
The process may take several minutes depending on the size of your drive and the amount of data. Do not turn off or restart the computer during this process.
Step 2: Downloading our Linux distribution
For this tutorial I will use Ubuntu, as it is one of the most popular and beginner-friendly distributions. However, the steps are practically identical for other distributions like Linux Mint, Fedora, or ElementaryOS.
Which version to choose?
When visiting the Ubuntu download page, you will see two main options:
- LTS Version (Long Term Support): It is more stable and has support for 5 years. Recommended if you want stability.
- Latest version: It has the most recent features, but support lasts only 9 months.
For new users, I always recommend the LTS version. Stability is gold when you are learning.
Preparing the bootable USB
Now we need to create a bootable USB drive with the Ubuntu ISO. For this we will use Balena Etcher, although you can also use Rufus if you prefer.
- Download Balena Etcher
- Install it and open it
- Click âFlash from fileâ and select the Ubuntu ISO you downloaded
- Click âSelect targetâ and choose your USB drive
- Click âFlash!â to start the process

This process will erase all data on your USB, so make sure you have backed up anything important you have there.
Step 3: Booting from USB (the critical part)
Here comes the part that usually gives beginners the most trouble: booting the computer from the USB. Each manufacturer has a specific key to access the boot menu (Boot Menu).
The infallible technique
- Turn off your computer completely
- Connect the USB prepared
- Turn on the computer and start pressing the boot menu access key repeatedly
Boot menu access keys by manufacturer
- HP: Esc or F9
- Lenovo: F12
- Dell: F12
- Acer: F12 or Esc
- ASUS: Esc or F8
- Toshiba: F12
- Samsung: Esc or F2
If you have pressed the correct key, you will see a menu where you can select which device to boot from. Select your USB.

Not working? Plan B: Configure BIOS/UEFI
If you cannot access the boot menu, you will have to enter the BIOS/UEFI to change the boot order:
- Restart the computer and press the key to enter the BIOS (usually F2, Del or Esc)
- Look for the âBootâ or âBoot Optionsâ section
- Change the boot order so that the USB is first
- Save changes and restart (usually with F10)
On more modern systems with UEFI, you should also:
- Disable âSecure Bootâ (this option can block booting from non-Windows systems)
- Change the boot mode from âUEFIâ to âLegacyâ or âUEFI and Legacyâ if you have problems
Step 4: Installing Ubuntu alongside Windows
If everything went well, you will see the Ubuntu welcome screen. Select âTry or Install Ubuntuâ and wait for the system to load.
Once inside, double-click the âInstall Ubuntuâ icon on the desktop.
Follow the installation wizard:
- Select your language
- In âUpdates and other softwareâ, you can select âNormal installationâ and check both boxes to download updates and install third-party software
- In âInstallation typeâ, select âInstall Ubuntu alongside Windows Boot Managerâ
This last step is crucial. Ubuntu will automatically detect Windows and configure everything to create a dual boot. If you donât see this option, it means something went wrong with the disk space preparation.
Advanced partitioning (optional)
If you want more control over how Linux is organized on your disk, you can select the âSomething elseâ option instead of automatic installation. This will allow you to create partitions manually.
For a basic but complete configuration, you would need:
- EFI Partition: If your system uses UEFI, it should already exist
- Swap partition: Between 4-8 GB depending on your RAM (serves as virtual memory)
- Root partition (/root): Minimum 20-30 GB, ext4 format, where the system is installed
- Home partition (/home): The rest of the space, ext4 format, for your personal files

For new users, I recommend automatic installation, as Ubuntu does a good job configuring everything correctly.
Completing the installation
After configuring partitions:
- Select your location on the map
- Create your username and password
- Wait for the installation to complete
- When finished, you will be asked to restart the system
Important: Make sure to remove the USB before restarting, or you will enter the installer again.
Step 5: Your first dual boot
Upon restart, you should see a menu called GRUB that allows you to choose between Ubuntu and Windows.

This menu will appear every time you turn on the computer, allowing you to choose which operating system to use at any moment. By default, if you donât choose anything in a few seconds, the default option (usually Ubuntu) will boot.
Customizing GRUB
If you want to change the timeout or the default operating system, you can edit the GRUB configuration:
- Boot into Ubuntu
- Open a terminal (Ctrl+Alt+T)
- Edit the configuration file with:
sudo nano /etc/default/grub - Change
GRUB_DEFAULT=0if you want Windows to be the default option - Change
GRUB_TIMEOUT=10to adjust the timeout - Save with Ctrl+O and exit with Ctrl+X
- Update GRUB with:
sudo update-grub
Possible problems and solutions
Time desynchronizes between systems
Itâs a common problem: when you switch between Windows and Linux, the time can go crazy. This happens because Windows uses local time while Linux uses UTC by default.
Solution: In Ubuntu, open a terminal and run:
timedatectl set-local-rtc 1 --adjust-system-clock
Windows does not appear in GRUB
If after installing Ubuntu you donât see the option to boot Windows, you can try repairing GRUB:
sudo os-prober
sudo update-grub
Boot errors after Windows updates
Major Windows updates sometimes overwrite the boot loader. If this happens, you will have to repair GRUB:
- Boot from the Ubuntu USB in âTry Ubuntuâ mode
- Open a terminal and run:
sudo mount /dev/sdXY /mnt # Replace sdXY with your Ubuntu root partition
sudo chroot /mnt
grub-install /dev/sdX # Replace sdX with your disk (without partition number)
update-grub
exit
sudo reboot
Getting the most out of your dual boot setup
Now that you have both operating systems installed, here are some tips to make the most of them:
Sharing files between systems
You can access your Windows files from Ubuntu and vice versa:
- From Ubuntu: Windows partitions will appear in the file explorer. Simply click on them to mount and access.
- From Windows: You will need additional software like Ext2FSD to read Linux ext4 partitions.
Creating a shared data partition
A more advanced strategy is to create an additional NTFS partition that both systems can easily read and write:
- From Windows, use MiniTool to create a new NTFS partition
- Label it as âDataâ or similar to identify it easily
- Use it to store files you want to access from both systems
Customizing Linux for development
Since I mentioned Linux is excellent for programmers, here are some essential tools to install on your Ubuntu:
# Basic development tools
sudo apt update
sudo apt install build-essential git curl
# Node.js and npm
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
# Docker
sudo apt install docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# Visual Studio Code
sudo apt install software-properties-common apt-transport-https
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt update
sudo apt install code
Frequently Asked Questions (FAQ)
Can I uninstall dual boot if I donât want it anymore?
Yes, you can go back to a single system:
- To keep only Windows: Use Windows disk management to delete Linux partitions and expand the Windows one
- To keep only Linux: During Linux installation, select âUse entire diskâ instead of installing alongside Windows
Does having two operating systems affect performance?
No, the system not in use does not consume resources. It will only take up space on your hard drive.
Can I access my Windows games from Linux?
With tools like Steam Proton, Wine, and Lutris, many Windows games now work on Linux. However, not all are compatible, especially those with invasive anti-cheat systems.
Which Linux distribution do you recommend for beginners?
Ubuntu and Linux Mint are excellent for beginners. If you are looking for something that looks more like Windows, Zorin OS is a great option.
Conclusion: The best of both worlds
Setting up a dual boot system may seem intimidating at first, but the benefits are totally worth it. Being able to switch between Windows and Linux gives you incredible flexibility:
- Use Windows for games, specific software, and productivity applications requiring full compatibility
- Use Linux for programming, servers, learning, and experimenting in an open and customizable environment
Over time, you may find that you spend more and more time on Linux as you become familiar with it. Many developers end up preferring the Linux environment for practically all their work.
If you have problems with any of the steps or want to delve deeper into any aspect of dual boot, leave me a comment and Iâll try to help you. You can also follow me on my social networks to stay up to date with my next articles and tutorials.
See you in the next blog! â€ïž

O que vocĂȘ achou?
Deixe sua opiniĂŁo, pergunta ou sugestĂŁo. Os comentĂĄrios sĂŁo sincronizados com GitHub Discussions .