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

  • PyGObject ≥ 3.42

  • The udisks2 introspection typelib (gir1.2-udisks-2.0 on Debian, typelib-1_0-UDisks-2_0 on openSUSE)

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.

PyGObject is built from source during installation and needs its build dependencies present (a C compiler, pkg-config and the development headers for GObject introspection and cairo). See the PyGObject installation guide for the packages your distribution requires.

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

  • Flatpak support

3. Installation

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

Type usb-imager in your terminal window to start USB-Imager. A start via a desktop icon will only be supported by the planned Flatpak package.

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 3.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 3.1.0
File Size Uploaded
usb_imager-3.1.0.tar.gz 190.3 kB Details

Built distribution (wheel)

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

Total release size: 379.3 kB

Release files / usb_imager-3.1.0.tar.gz

Download URL usb_imager-3.1.0.tar.gz
Size 190.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f894ac393edd81dd4078465134685a78c2a58b52d0e829338a10d26496eaad78
BLAKE2b-256 checksum
How to use checksums
01b78c3104e513d41d307abfafff31a82c355e4267a282079f9147a6bebbd87c
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-3.1.0-py3-none-any.whl

Download URL usb_imager-3.1.0-py3-none-any.whl
Size 189.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e1a154807849b043019c09d7a09478eda41867a8b9f3cbed57357add756fc654
BLAKE2b-256 checksum
How to use checksums
44c7d574ec80b50c3e87d8a31e320ace2dc4e2c737958c1cc0779a7797be781f
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

4.1.0

2 release files

4.0.0

2 release files

This release

3.1.0 This release

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