Skip to main content

USB-Imager is a GUI application for Linux to write disk images to multiple USB drives at once.

PyPI version Supported Python versions License: GPLv3+ Pipeline status Monthly downloads Buy Me A Coffee
License:

GPLv3+

Copyright:

© 2021-2026 by Secu-Design®

Donation:

Buy Me A Coffee

USB-Imager screenshot

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:

$ 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

If you want to report a bug or request a feature, you can do so here.
You can also write an email to Secu-Design® | Development.

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)

Source distribution for USB-Imager 4.1.0
File Size Uploaded
usb_imager-4.1.0.tar.gz 217.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for USB-Imager 4.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

4.1.2

2 release files

4.1.1

2 release files

This release

4.1.0 This release

2 release files

4.0.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.2.2

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page