How To Make a Bootable Windows 10 USB On Linux Using WoeUSB

WoeUSB is a Linux tool for creating bootable Windows USB sticks for installing Windows, from an ISO or DVD image.

The free and open source program comes with both command line and graphical user interfaces, and it supports any version (Home, Pro, PE, etc.) of Windows 10, Windows 8.x and Windows 7. What's more, it supports both legacy as well as native UEFI bootmodes.

WoeUSB

While the GUI doesn't offer too many options, you can specify various options when using WoeUSB from the command line.

The command line utility allows two ways of creating a bootable Windows USB from Linux: device mode which completely wipes the entire USB storage device and builds a bootable Windows USB device from scratch, and partition mode which copies the Windows files to an existing partition of a USB storage device and makes it bootable.

The WoeUSB command line utility also allows specifying a label for the newly created filesystem, specify the target filesystem (FAT/NTFS), and more.

WoeUSB 3.3.0 was released a few days ago with only one, but important feature. The WoeUSB GUI now features an option that allows the user to select the target filesystem type (FAT or NTFS, with FAT being default). This is important because on FAT32 filesystems, there's a 4GiB file size limitation, so if the installation image is greater than 4GiB, WoeUSB cannot copy it to the target filesystem, showing an error like this:

Installation failed!
Exit code: 256
Log:
WoeUSB v3.2.12
==============================
Mounting source filesystem...
Error: File "/media/woeusb_source_1555322460_15806/sources/install.wim" in source image has exceed the FAT32 Filesystem 4GiB Single File Size Limitation and cannot be installed.  You must specify a different --target-filesystem.
Refer: https://github.com/slacka/WoeUSB/wiki/Limitations#fat32-filesystem-4gib-single-file-size-limitation for more info.
Unmounting and removing "/media/woeusb_source_1555322460_15806"...
You may now safely detach the target device

The 4GiB file size limitation using the WoeUSB GUI can now be overcome by selecting NTFS for the filesystem.

This was a limitation in the WoeUSB GUI only, as the command line utility allowed selecting between FAT and NTFS for some time.

Related: bootiso: Easy ISO To Bootable USB Drive From The Command Line (supports creating a bootable USB drive from both Microsoft Windows and Linux distributions ISO files).

Create a bootable Windows 10, 8.x or 7 USB on Linux with WoeUSB (GUI)


How to use WoeUSB

1. Unmount USB drive partitions.

To create a bootable Windows 10, 8.x or 7 USB on Linux with WoeUSB, start by unmounting the USB drive (all of its partitions if it has multiple partitions) but have it available to the system.

You can unmount it using GParted: select the USB drive from the top right-hand side drop-down, then right click on each partition and Unmount. You may also unmount all the USB drive partitions from the command line (source: AskUbuntu), like this:

ls /dev/sdX?* | xargs -n1 umount -l

Replace sdX with the USB drive device name. If you don't know the device name you can start WoeUSB, which will show the device name in the Target device section. For example, it's sdd (/dev/sdd) in my case.

This step is required because USB devices are automatically mounted on most Linux desktops, and this causes WoeUSB to fail with this error:

Installation failed!
Exit code: 256
Log:
WoeUSB v3.3.0
==============================
Error: Target device is currently busy, unmount all mounted partitions in target device then try again
Target device is busy, please make sure you unmount all filesystems on target device or shutdown the computer before detaching it.

2. Select the Windows 10, 8.x or 7 ISO and the target USB device.

Now you can start WoeUSB from your applications menu. Select a Windows ISO or CD/DVD in the Source section, then click the USB drive where WoeUSB will write the Windows files from the application Target device section.

Make sure you've selected the correct USB device! All the data on this device will be lost.

In case your USB drive is not listed in the WoeUSB Target device section, you can choose to show all drives from the WoeUSB File menu, but make sure you only do this if you know what you're doing, because all the data on the target device will be lost!

3. Select NTFS as the file system type.

To avoid the error saying that the source image has exceeded the FAT32 filesystem 4GiB single file size limitation, select NTFS in the WoeUSB File system section.

4. Create a bootable USB with Windows 10, 8.x or 7.

Now all you have to do is click the Install button to start creating the bootable USB with Windows 10, 8.x or 7.

For how to create a bootable Windows USB using the WoeUSB command line utility, run woeusb --help to see the available options.

Download WoeUSB


There are official WoeUSB packages for Fedora, openSUSE and Gentoo, available in the repositories. At the time I'm writing this article, they have not been updated to the latest WoeUSB version though!

The only WoeUSB packages updated to the latest version are the unofficial (user-created) Arch Linux and Ubuntu/Linux Mint (scroll down and you'll find the latest WoeUSB DEB packages at the bottom of the page) packages.

You may also build WoeUSB from source (there are instructions for Debian-based Linux distributions, Fedora and openSUSE).