Portable, self-contained AppImage of WoeUSB-ng — create bootable Windows USB drives from ISO images on any Linux distro.
No installation required. Download, make executable, run.
Grab the latest AppImage from the Releases page.
chmod +x WoeUSB-ng-*-x86_64.AppImage
./WoeUSB-ng-*-x86_64.AppImageThe app will ask for root privileges via a polkit dialog automatically.
sudo ./WoeUSB-ng-*-x86_64.AppImage --cli --device /path/to/windows.iso /dev/sdXReplace /dev/sdX with your target USB device. All data on the target device will be erased.
./WoeUSB-ng-*-x86_64.AppImage --helpThis works without root.
The AppImage is self-contained. It bundles:
- WoeUSB-ng — the Python application
- Python 3 interpreter and stdlib
- wxPython + GTK3 — full GUI stack (wxGTK, Pango, Cairo, GDK, etc.)
- System tools — parted, grub2, ntfs-3g (mkntfs), dosfstools (mkfs.fat), p7zip
Standard system utilities (mount, lsblk, grep, etc.) are expected from the host.
- Fedora (or a Fedora toolbox/container) — the build script uses
dnf downloadto fetch RPMs - Build tools:
git,wget,python3,python3-pip,patchelf,rpm-build,cpio,file,findutils,binutils python3-wxpython4installed on the build system (for bundling)
# Install build deps (Fedora)
sudo dnf install -y git wget python3 python3-pip python3-wxpython4 patchelf rpm-build cpio file findutils binutils
# Build the AppImage (defaults to WoeUSB-ng v0.2.12)
./build.sh
# Or specify a version
./build.sh 0.2.12The output AppImage will be at build/WoeUSB-ng-<version>-x86_64.AppImage.
You don't need Fedora installed. Use Docker to build from any Linux distro:
# One-liner
docker run --rm -v "$PWD":/build -w /build fedora:latest bash -c \
'dnf install -y git wget python3 python3-pip python3-wxpython4 patchelf rpm-build cpio file findutils binutils && ./build.sh 0.2.12'
# Copy the AppImage out of build/
ls build/WoeUSB-ng-*-x86_64.AppImageOr with Podman (rootless, common on Fedora/RHEL):
podman run --rm -v "$PWD":/build:Z -w /build fedora:latest bash -c \
'dnf install -y git wget python3 python3-pip python3-wxpython4 patchelf rpm-build cpio file findutils binutils && ./build.sh 0.2.12'toolbox create woeusb-build
toolbox enter woeusb-build
sudo dnf install -y git wget python3 python3-pip python3-wxpython4 patchelf rpm-build cpio file findutils binutils
./build.sh 0.2.12.
├── build.sh # Main build script
├── resources/
│ ├── AppRun # AppImage entry point / launcher
│ └── woeusb-ng.desktop # Desktop entry for app menus
└── build/ # Created during build (gitignored)
├── WoeUSB-ng/ # Cloned source
├── deps-rpms/ # Downloaded RPMs
├── AppDir/ # Assembled AppImage contents
└── WoeUSB-ng-*.AppImage # Final output
- Clones WoeUSB-ng at the specified git tag
- Downloads runtime dependency RPMs from Fedora repos (single batched
dnf download) - Extracts RPMs and flattens the directory structure into an AppDir
- Copies the host Python interpreter, stdlib, and wxPython into the AppDir
- Patches all ELF binaries with relative RPATHs so they find bundled libraries
- Generates GTK/GDK caches and compiles GLib schemas
- Packages everything into an AppImage using appimagetool
./build.sh <new-version>The version must correspond to a v<version> git tag on the WoeUSB-ng repo.
WoeUSB-ng is licensed under GPL-3.0. This build tooling is provided under the same license.