Create Windows Bootable USB on Linux

If you are a Linux user, there could be times you want to use Windows. You can either simply install it in a virtual machine or just dual boot it with a Linux distribution. To dual boot, you will need a bootable USB of Windows (easy this way than creating DVD etc). In this article I am going to guide you how to quickly create a Windows bootable USB on Linux with UEFI and legacy boot support.

Download Windows 10 ISO

If you don’t have the Windows ISO, you can download one from here. You can also verify the ISO with sha256sum command after download.

sha256sum /path/to/iso/Win10_22H2_English_x64_1.iso

UEFI bootable USB with legacy support

There are different ways and tools available for this. But the easiest would to use WoeUSB-ng application.

Install woeusb-ng package if available in your distribution repository, otherwise just follow the instructions on their GitHub repository to install. I am on Manjaro, so simply running the following command will install it.

yay -S woeusb-ng
woeusb-ng-installation-manjaro

Open WoeUSB-ng, choose the Windows ISO and select the USB drive where you want to install the ISO.

WoeUSB-ng will take care of everything for you including partitions, creating legacy boot support and UEFI bootable USB.

woeusb-ng-gui-1
woeusb-ng-gui-2

Wait for the completion as it will take time depends on your USB.

Information for knowledge only

After writing the image, the USB will have two partitions, one is ntfs and the other one is fat32.

USB-drive-partitions

If you mount the USB, you will see the following files and folders inside.

uefi-windows-usb-drive-contents-1
uefi-windows-usb-drive-contents-2

Congratulations, you have created Windows 10 bootable USB. You can now go ahead and install Windows by booting from the USB.