Skip to main content

USB-Imager

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

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

5.1. Command usb-imager not found

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

5.2. Qt platform plugin xcb cannot be loaded

On some Linux distributions, starting USB-Imager after a pipx, pipenv or venv installation fails with an error mentioning xcb-cursor0 or libxcb-cursor0. This system library is required by Qt since version 6.5 but is missing on some systems. Install it through your distribution’s package manager, for example on Debian, Ubuntu and Linux Mint:

$ sudo apt install libxcb-cursor0

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

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.2
File Size Uploaded
usb_imager-4.1.2.tar.gz 227.6 kB Details

Built distribution (wheel)

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

Total release size: 458.4 kB

Release files / usb_imager-4.1.2.tar.gz

Download URL usb_imager-4.1.2.tar.gz
Size 227.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9b7b8757eb834240e635746a7498b30f64d649fcdccc54f0da34e6649c5bc29f
BLAKE2b-256 checksum
How to use checksums
c8b4949879e4697346e0446a7828f1f4399727736a1e07386492ced54509fc4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

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

Download URL usb_imager-4.1.2-py3-none-any.whl
Size 230.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
00e429bca72c7632b0ee9c703408b59d984347be5c6575db0129fe98b42e9e35
BLAKE2b-256 checksum
How to use checksums
0daff1b2fe141c42179149d398c1dde1069d82339477fa9dcd855f5ea6fe65c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release history Release notifications | RSS feed

This release

4.1.2 This release

2 release files

4.1.1

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