USB-Imager is a GUI application for Linux to write disk images to multiple USB drives at once.
- License:
- Copyright:
© 2021-2026 by Secu-Design®
- Donation:
1. Requirements
Linux with a running udisks2 service, version 2.7.3 or newer
Python ≥ 3.10
PySide6 ≥ 6.4
jeepney ≥ 0.9
USB-Imager itself does not run as root. Device access is handled by udisks2, which authorizes writing via polkit. Depending on your distribution’s policy, you may be prompted for a password.
2. Features
Writing an image to multiple USB sticks at once
Automatic device detection
Very fast writing by using the linux system call sendfile() and large write buffers
Adjustable write buffer between 1 MiB and 4 MiB
Optional validation after writing
Optional checksum verification of the selected image
Detection and elimination of the following states of a device before writing:
Mounted
Shows a warning if an ISO file does not look bootable
Shows stats about writing time and overall speed
Selectable color schemes (Dark/Light Mode)
Planned:
Deactivation of LVM2 volumes before writing
Multilanguage support
3. Installation
Flatpak:
The Flatpak package is the only installation that integrates USB-Imager into your desktop. It adds an entry to the application menu, so no terminal is needed to start it.
$ flatpak install flathub io.gitlab.secu_design.usb-imager
$ flatpak run io.gitlab.secu_design.usb-imager
$ flatpak uninstall io.gitlab.secu_design.usb-imager
Virtual environment:
An installation in a virtual environment allows starting USB-Imager only from a terminal. If the command usb-imager is not available there, read section 5. Troubleshooting.
pipx:
$ pipx install usb-imager
$ usb-imager
$ pipx uninstall usb-imager
$ pipenv install usb-imager
$ pipenv run usb-imager
$ pipenv uninstall usb-imager
venv:
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install usb-imager
$ usb-imager
$ pip uninstall usb-imager
$ deactivate
$ rm -rf venv
4. Usage
Installed as a Flatpak, USB-Imager is started from the application menu of your desktop, like any other application.
After an installation into a virtual environment, type usb-imager in your terminal window. Such an installation puts its data files into the environment, where no menu indexer looks for them, so it offers no desktop entry.
5. Troubleshooting
On some Linux distributions USB-Imager cannot be started from the command line when it was installed into ~/.local, as pipx does. ~/.local/bin is not part of the executable search path on every system. Add the directory to the search path of your shell, then open a new terminal.
Bash, Zsh and other POSIX shells, in ~/.profile:
PATH=~/.local/bin:$PATH
Fish:
$ fish_add_path ~/.local/bin
6. Support
7. Donate
If you like USB-Imager and want to support its development, you can buy me a coffee.
Release files for USB-Imager 4.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| usb_imager-4.1.0.tar.gz | 217.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| usb_imager-4.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 431.0 kB
Release files / usb_imager-4.1.0.tar.gz
| Download URL | usb_imager-4.1.0.tar.gz |
|---|---|
| Size | 217.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
964b15b38cfee9887a570356258b71dfdbbb95c970ea72d830f21146c4b5365d
|
|
BLAKE2b-256 checksum How to use checksums |
30f8f47c2add5273d5e4aa8f622dea44a2e0772365b5ddcfac07508b93d09f9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Release files / usb_imager-4.1.0-py3-none-any.whl
| Download URL | usb_imager-4.1.0-py3-none-any.whl |
|---|---|
| Size | 213.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b299ec0d8e854d415a32d5296fcd5d8813ce4587cbd9cde934cd4f154b2c2f2
|
|
BLAKE2b-256 checksum How to use checksums |
1e872c090202376e1589f8fb704761edd5642e4a0447aa00738532417f3a2cab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|