Installing WoeUSB on Ubuntu 22.04 or 20.04
If you’re running a recent Ubuntu release and still need to make a Windows installer, WoeUSB is the low‑friction way to do it without hunting for a second‑hand USB stick that boots in UEFI mode.
Why you’ll want this tool
You’ve got an ISO on hand but your laptop insists on showing “USB not bootable.” I’ve seen that after a bad driver update or when the default dd method leaves the partition table in a weird state. WoeUSB writes the Windows image to the drive the way Microsoft expects it, so you can boot right away.
Quick prerequisites check
Make sure your system is up‑to‑date and has the essentials:
sudo apt update && sudo apt upgrade -y
You’ll also need a USB stick that’s at least 8 GB. Anything larger works fine too. If the drive is already formatted, back up its data first.
Installing via the official PPA (recommended)
The easiest route is to pull WoeUSB straight from its PPA:
sudo add-apt-repository ppa:woeusb/woeusb sudo apt update sudo apt install woeusb-frontend-wxgtk # or woeusb for CLI only
Why this matters: The PPA keeps the package in sync with upstream, so you get bug fixes and newer versions without manual compilation.
Heads‑up: On Ubuntu 20.04 the PPA might still point to an older release of WoeUSB that’s missing the latest UEFI support. If you hit a snag, skip to “Build from source” below.
Build from source if the PPA fails
If the repository is out of date or you prefer the bleeding‑edge code:
sudo apt install git p7zip-full python3-pip pip3 install pyusb==1.2.1 # WoeUSB’s Python dependency git clone https://github.com/WoeUSB/WoeUSB.git cd WoeUSB python3 setup.py install
Why this matters: You get the newest commit, which includes fixes for issues like “no write permission on /dev/sdX” that crop up with older binaries.
Creating your Windows USB with WoeUSB
1. Plug in your USB and figure out its device name:
lsblk -f | grep -i usb
2. Launch the GUI (if you installed it):
woeusb-frontend-wxgtk
Pick “Target Device” => your USB, “Source” => the ISO file, and hit “Install”.
3. Or use the CLI:
sudo woeusb --device /path/to/windows.iso /dev/sdX
Replace /dev/sdX with the device you found in step 1.
Why this matters: The GUI hides the complexities of partitioning and boot sector writing, while the CLI gives you full control if you prefer a scriptable workflow.
Troubleshooting common hiccups
- “Permission denied” when writing to /dev/sdX
Make sure no partitions on that USB are mounted. Run umount /dev/sdX* first.
- USB shows “Not bootable” after creation
Some UEFI firmware is picky about the partition alignment. Try adding --force or using the CLI with the --target-filesystem=NTFS flag.
- WoeUSB crashes on startup
Verify you have the latest pyusb installed (pip3 install --upgrade pyusb). Older versions can trigger segfaults.
Final notes
Once your USB is ready, reboot and switch to UEFI mode. You should see “Windows Setup” in the boot menu. No more fiddling with BIOS or legacy drivers.
That’s all there is to it—time to boot into Windows. Catch you later.