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.1

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.1
File Size Uploaded
usb_imager-4.1.1.tar.gz 225.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for USB-Imager 4.1.1
File Interpreter ABI Platform
usb_imager-4.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 452.0 kB

Release files / usb_imager-4.1.1.tar.gz

Download URL usb_imager-4.1.1.tar.gz
Size 225.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0f9733621d2489d474e2904a9631bf409368726e1550c45dc5b0ec14a440d989
BLAKE2b-256 checksum
How to use checksums
60fb8f38417b81ce6ecca90af112884c45d5c992440bd26a95e85be39fe6dc1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.20

Release files / usb_imager-4.1.1-py3-none-any.whl

Download URL usb_imager-4.1.1-py3-none-any.whl
Size 226.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d72ee4f84fdb6bbaedc24c686f52eeaa12e27653ccc753879f9af012ffc9bb85
BLAKE2b-256 checksum
How to use checksums
a29e34dccdd5a9b1ebe5a24dc7c0c74384f9e03142b0239fd5541cd9f7401e9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.20

Release history Release notifications | RSS feed

4.1.2

2 release files

This release

4.1.1 This release

2 release files

4.1.0

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