How to Create a Windows 10/11 Bootable USB on Linux

Learn the proper way to make a Windows 10/11 bootable USB on Linux. Our guide provides a foolproof method for a smooth and successful process.

Are you a Linux user looking to create a bootable USB drive for Windows 10 or 11? You’re in the right place!

Whether you’re dual-booting, performing a clean install on a Windows machine, or just need a Windows recovery drive, this article delves into the proper way to achieve this, ensuring a hassle-free process.

You might be wondering why we emphasize the “proper way” in our guide. Chances are, you’ve already attempted to create a Windows bootable USB using methods you’re comfortable with in Linux, like the dd command, which works great for Linux distribution ISOs.

But if you’ve tried this with a Windows ISO and found yourself with a USB that won’t boot, don’t worry – it’s a common hurdle. This is entirely normal, and there’s a good reason for it.

The ISO images for Windows and Linux have some key differences, so before we jump into the practical steps, let’s start with a bit of essential theory to clear things up.

Linux’s ISOHybrids vs. Windows ISOs

The differences between Linux and Windows installation ISO images and the concept of an “isohybrid” image are essential to understand, especially if you’re working with bootable USB drives.

Linux ISO Images

Many Linux distributions use ISO images that are “isohybrid.” It’s a type of ISO file that combines features of a traditional ISO 9660 CD-ROM and a hard disk image.

Unlike traditional ISO images, such as Windows ones, an isohybrid image contains special code in its boot sector that allows it to be bootable when written directly to a USB flash drive and bootable when written to a CD or DVD.

As a result, they are generally more flexible regarding the methods used for creating bootable USB drives. Here’s why tools like dd can directly write these ISO images to USB drives, and the drives will boot correctly.

Windows ISO Images

Windows installation ISOs are typically not isohybrid. They are designed with the assumption that they will be burned to a DVD. As such, simply writing these ISOs directly to a USB drive using a method like dd will not make them bootable.

Why? Because the bootloader setup in Windows ISOs is different from most Linux distributions. This requires a specific process to create a bootable USB that involves extracting the contents of the ISO and then correctly setting up the bootloader on the USB drive.

Fortunately, Linux offers excellent tools that are ideally suited for this job. We highly recommend WoeUSB, which we will use in the following example to create a Windows bootable USB from an ISO file.

Install WoeUSB on Linux

WoeUSB is a free, open-source software tool for creating a bootable USB drive from a Windows ISO file. It’s designed for use on Linux systems and is particularly useful for users who need to create a Windows installation USB drive but are working within a Linux environment.

The tool can handle various versions of Windows ISOs, including Windows Vista, 7, 8, 10, and 11. WoeUSB’s key feature is its ability to properly format and prepare the USB drive so that it’s bootable and can be used to install Windows on a computer.

Just a heads-up: besides its excellent command line capabilities, WoeUSB comes with a WoeUSB-NG version, too, and guess what? It has a handy graphical interface! But you know us Linux folks, we love our command line, right?

The command line version of WoeUSB is incredibly dependable and thoroughly tried and tested over time. Plus, it’s surprisingly easy for anyone, even if you’re just starting in the Linux universe. That’s exactly why it’s our go-to choice. So, let’s install it!

Ubuntu / Linux Mint / Pop!_OS

WoeUSB is available through a PPA repository. Run the three commands below to add it to your Ubuntu, Linux Mint, or Pop!_OS system and install WoeUSB.

sudo add-apt-repository ppa:tomtomtom/woeusb
sudo apt update
sudo apt install woeusb

Fedora

Fedora users can find WoeUSB within the official distribution repositories. To install it, execute the following command:

sudo dnf install WoeUSB

Arch Linux

For Arch users, WoeUSB is available in the AUR repository. To install it, they should use an AUR helper like yay, executing the following command:

yay -S woeusb

Debian

Unfortunately, WoeUSB is not available in the software-rich Debian repositories. Thus, it cannot be installed via the APT package manager. However, following the steps below, you can quickly install it on your Debian system.

First, install the following dependencies:

sudo apt install dosfstools findutils grep gawk grub-common grub-pc-bin ntfs-3g p7zip-full parted util-linux wget wimtools

Then, run the following command to download and place the software in your system’s correct location.

sudo curl -L "https://github.com/WoeUSB/WoeUSB/releases/download/v5.2.4/woeusb-5.2.4.bash" -o /usr/bin/woeusbCode language: JavaScript (javascript)

Finally, set the correct permissions:

sudo chmod +x /usr/bin/woeusb

When using the woeusb command in Debian, it must always be prefixed with sudo. This is because some dependencies essential for WoeUSB’s functionality are outside the default search path for executable files available to the regular user account.

Create a Windows 10 /11 Bootable USB on Linux

We’ll presume you have the Windows installation ISO image and a USB flash device to copy it and make it bootable. So, the first thing to do after plugging it into the computer is to identify the drive’s designated name. This is simple to accomplish using the lsblk command:

lsblk
Identifying the USB drive's name.
Identifying the USB drive’s name.

As we can see, our USB drive is mounted under the name “sda,” i.e., as device “/dev/sda.” That’s all we need to know to make it a bootable Windows USB stick using WoeUSB. So, let’s do it!

Then, make sure the device is not mounted by unmounting it.

sudo umount /dev/sda*

Finally, we must pass two parameters to the woeusb command to make a Windows bootable USB. The first is “–device,” followed by the ISO image’s name. Specify ISO’s full path if it’s not in the current working directory.

The second one is the USB drive’s filesystem mount point, which, as we saw in our case, is “/dev/sda.” So, our command would look like this:

sudo woeusb --device Win11_23H2_EnglishInternational_x64.iso /dev/sda

Important! Double-check to make sure you specify the correct path to the USB device. A misstep here, such as accidentally directing the path to your local drive, could lead to a corrupted and unusable operating system.

Wait patiently for the bootable Windows installation USB creation process to finish. The result will be similar to the one shown below.

Windows bootable USB successfully created on Linux.
Windows bootable USB successfully created on Linux.

And that’s it! Remove the USB drive and plug it into the laptop or computer where the installation is intended. Ensure the system’s BIOS is set to boot from the USB drive. Then, you can proceed with installing your brand-new Windows operating system.

Start a Windows installation.
Start a Windows installation.

Conclusion

As you can see, with the right tool, such as WoeUSB, creating a Windows 10/11 bootable USB on Linux is an easy-to-accomplish task. By following the steps outlined in our guide, you can ensure a smooth and efficient process, leading to a successful installation of Windows.

Moreover, we’ve delved into the necessary theoretical background, understanding the distinct differences between Linux isohybrid and Windows ISO images. We hope we’ve been helpful.

Of course, while there are other tools like Ventoy or UNetbootin for creating a bootable Windows USB flash drive, we prefer WoeUSB for its reliable performance, which has never given us any issues.

Thanks for your time! As always, your feedback and comments are most welcome. 

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Think You're an Ubuntu Expert? Let's Find Out!

Put your knowledge to the test in our lightning-fast Ubuntu quiz!
Ten questions to challenge yourself to see if you're a Linux legend or just a penguin in the making.

1 / 10

Ubuntu is an ancient African word that means:

2 / 10

Who is the Ubuntu's founder?

3 / 10

What year was the first official Ubuntu release?

4 / 10

What does the Ubuntu logo symbolize?

5 / 10

What package format does Ubuntu use for installing software?

6 / 10

When are Ubuntu's LTS versions released?

7 / 10

What is Unity?

8 / 10

What are Ubuntu versions named after?

9 / 10

What's Ubuntu Core?

10 / 10

Which Ubuntu version is Snap introduced?

The average score is 68%