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 users can find WoeUSB within the official distribution repositories. To install it, execute the following command:
sudo dnf install WoeUSB
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
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/woeusb
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
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.
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.
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.