Windows 10 Bootable USB from ISO on Linux

Getting updated Windows media is certainly easier than it used to be. Back in the day, you’d have to slipstream updates into your installation media. It was a pain, and prone to cause problems (mainly because you could slipstream other things in there, too).

Microsoft has seen the light and provides ISO downloads of the current version of Windows (Note: This is not a “free” Windows license – you still need to pay for that, or install on a machine which has been previously licensed).

Actually using that ISO is not quite straight forward. You could burn it to a double-sided DVD, but I don’t even own a computer with an optical drive currently. USB is the way to go.

With years of experience creating bootable linux USBs, I did the standard thing:

$ dd if=Win10_1809Oct_English_x64.iso of=/dev/sdX

However, while Linux ISOs are typically multi-boot images (files that can boot both CD and USB, on both BIOS and UEFI machines), it appears Microsoft has not leveraged that knowledge. This USB fails to boot.

The only official way to create USB-bootable Windows media is to use the “Media Creation Tool” on Windows. You may encounter the same issue I did: I don’t have Windows installed yet!

There is an alternate way, using a project called woeusb.

WoeUSB

Running the GUI simply doesn’t work, as more command-line options appear to be required.

One of the files in the image is larger than 4GB, which requires using NTFS on the USB disk. The following command is what I used to flash the Windows 10 1809 ISO to my USB stick (be sure to get the correct device name for your USB – this command will wipe it).

$ sudo woeusb --target-filesystem NTFS --verbose --device Win10_1809Oct_English_x64.iso /dev/sdX

Be aware that this USB media will not boot with secure-boot enabled, though the resulting Windows 10 installation will work with secure-boot.