A fully self-contained AppImage that formats your USB, copies Windows, and injects a personalized autounattend.xml — so the installation runs unattended, with your account, language, and privacy tweaks already set.
🌍 Read this in: English · Português · Español · 中文 · हिन्दी · العربية
Making a Windows install USB on Linux usually means juggling parted, mkntfs, 7z, and boot-sector tools by hand — and then Windows still stops halfway through setup asking questions. Penguaçu-Flash does the whole thing in a single window:
- 🐧 Runs anywhere — one self-contained AppImage. No dependencies to install:
7-Zip,mkntfs, andms-sysare bundled inside. - 💾 Real bootable USB — partitions, formats NTFS, copies Windows, and writes the boot sectors for both UEFI and BIOS/legacy.
- 🪄 Truly unattended — injects a personalized
autounattend.xmlso setup flies past the questions with your username, password, hostname, timezone, and edition already filled in. - 🧭 Windows 7 → 11, auto-detected — the version is recognized from the ISO filename, and the answer file adapts to each version's schema.
- 🛡️ Windows 11 without the roadblocks — optional bypass for the TPM 2.0, Secure Boot, RAM and CPU requirements.
- 🔒 Privacy out of the box — toggle off telemetry, Cortana, automatic BitLocker, sponsored apps, and more.
- 📊 Honest progress — the progress bar tracks bytes physically written to the device (with live MB/s), not the deceptive page-cache number.
- 🌐 Speaks 6 languages — Portuguese, English, Spanish, Chinese, Hindi and Arabic (with full right-to-left layout).
| Select the ISO | Identity & edition |
|---|---|
![]() |
![]() |
| Privacy tweaks | Pre-installed programs |
![]() |
![]() |
| Remove Windows apps | Create the bootable USB |
![]() |
![]() |
Done!
- Grab the latest
Penguaçu-Flash-*.AppImagefrom the Releases page. - Make it executable and run it:
chmod +x Penguaçu-Flash-*.AppImage
./Penguaçu-Flash-*.AppImageThat's it — no installation, no dependencies. The privileged steps (partitioning, formatting, writing boot sectors) ask for your password once through your system's standard authorization dialog.
Tip: on KDE/GNOME you can also just double-click the AppImage in your file manager.
| Step | What happens |
|---|---|
| 1. ISO | Drop in your Windows ISO. The version (7/8.1/10/11) is detected automatically. |
| 2. Identity | Set the username, password, computer name, timezone, edition and (optionally) product key. |
| 3. Tweaks | Pick the privacy/behavior tweaks and, for Windows 11, the requirements bypass. |
| 4. Create | Choose Build ISO (a new customized .iso) or Create USB (format + copy + inject a ready-to-boot drive). |
| 5. Done | Boot the target machine from the USB — Windows installs itself with your settings. |
You can also analyze an existing USB, read back its autounattend.xml, and re-inject an updated configuration without rebuilding anything.
Requirements: Node.js 18+ and podman or docker. mkntfs and ms-sys are compiled inside a Debian 11 container (glibc 2.31) so the AppImage also runs on older distributions such as Ubuntu 20.04 — copying them from a modern build machine produces binaries the user's system cannot load. Set PENGUACU_NO_CONTAINER=1 to copy from your own system instead (faster, not portable).
git clone https://github.com/vitormoreiradesenvolvedor/penguacu-flash.git
cd penguacu-flash
npm install
# Downloads/compiles the bundled binaries (7-Zip, mkntfs, ms-sys) into ./bin
npm run prepare-bins
# Produces dist/Penguaçu-Flash-<version>.AppImage
npm run dist
# Checks the bundled binaries load on old glibc (Ubuntu 20.04 level)
npm run test:binsTo run it live during development:
npm start├── main.js # Electron main process — USB/ISO logic, IPC handlers
├── preload.js # contextBridge API exposed to the renderer
├── index.html # The whole UI (wizard, i18n dictionary, styles)
├── lib/
│ └── bins.js # Resolves bundled/system binaries (glibc compatibility)
├── test/
│ └── bins-compat.test.js
├── scripts/
│ ├── prepare-bins.sh # Builds/fetches bundled binaries (in a container)
│ ├── test-bins-in-container.sh
│ └── afterPack.js # Wraps the Electron binary (env + noise filter)
└── build/
├── icon.svg # Source icon
└── icons/ # Rendered PNG sizes
Contributions are very welcome — this project exists to help the Linux community, and it gets better with more hands. 🐧
- 🌐 Translations: the UI dictionary lives in
index.html(I18Nobject). Adding or improving a language is a great first PR. - 🐛 Bugs & ideas: open an issue with clear steps to reproduce.
- 🔧 Code: fork, branch off
development, and open a pull request against it.
See CONTRIBUTING.md for the full guide. Branch model:
master— stable, released code.development— where new work lands before the next release.
Creating a bootable USB erases all data on the selected drive. Double-check you picked the right device. Product keys shown in the app are Microsoft's public generic/KMS setup keys — they select the edition during setup but do not activate Windows. Activate with a valid license.
Released under the MIT License — free to use, modify and share.
Made with 🐧 for the Linux community.





