Return to the main mkusb page

mkusb versions with GUI

The versions 9- of the mkusb tool are still bash scripts. The menus and dialogue windows are purely graphical using zenity. ../artwork/mkusb24.png

There is also a text console for output from the engine behind the zenity curtain.


from the normal PPA

The stable version is suitable for most users. It is available from ppa:mkusb/ppa via the following command lines. If you run standard Ubuntu, you need an extra instruction to get the repository Universe. (Kubuntu, Lubuntu ... Xubuntu have the repository Universe activated automatically.)

sudo add-apt-repository universe  # only for standard Ubuntu

sudo add-apt-repository ppa:mkusb/ppa  # and press Enter
sudo apt update

If you want standard mkusb with a graphical user interface

sudo apt install mkusb

if you want to get usb-pack-efi (used when you make a persistent live drive; makes it possible to boot 64-bit and 32-bit versions in EFI mode)

sudo apt install usb-pack-efi

if you want the new mkusb-plug package

sudo apt install mkusb-plug

and if you want all these packages

sudo apt install mkusb mkusb-plug usb-pack-efi

from the unstable PPA

This version is still developed and debugged. It is available from ppa:mkusb/unstable via the following command lines,

sudo add-apt-repository universe  # this line only for standard Ubuntu

sudo add-apt-repository ppa:mkusb/unstable
sudo apt update
sudo apt install mkusb     # install
# sudo apt full-upgrade    # upgrade to current version (with all other upgrades), installed systems
sudo apt install mkusb mkusb-plug
                               # upgrade all mkusb basic components including dus

# for persistent live drives that work in UEFI and BIOS mode with 32-bit iso files, add
sudo apt install usb-pack-efi

that will install the bleeding edge version of mkusb and/or mkusb-nox (testing new features and bug-fixes).

If you want to try only the new interface dus, 'Do USB Stuff', you can install one of the following packages,

sudo apt install dus           # general version provided with dialog menus for text mode
sudo apt install guidus        # dus with a GUI interface and zenity menus

General comments about upgrading

Normally you want to keep an installed system up to date automatically, via a GUI application or the following command lines,

sudo apt update
sudo apt full-upgrade

and maybe the following command (if problems)

sudo apt -f install

and repeat

sudo apt update
sudo apt full-upgrade

Then all installed packages (from standard repositories and PPAs) will be upgraded.

Upgrading mkusb in a live-only or persistent live system

But a live-only or persistent live system can be damaged by such general updates & upgrades. Instead it is recommended to keep most program packages as they are, and only upgrade packages when really necessary. The following command lines work, when you want to update & upgrade the program packages that belong to mkusb without affecting the other program packages.

sudo apt update
sudo apt install mkusb
sudo apt install mkusb-plug
sudo apt install usb-pack-efi

If there are still problems, you can purge mkusb

sudo apt-get purge mkusb

and also remove mkusb files manually with

sudo rm /usr/sbin/{mkusb*,dus}
sudo rm /usr/bin/mkusb*
sudo rm -r /usr/share/mkusb/

After that it should work according to the instructions above.


The following link describes how to use the stable PPA in Debian ../install-to-debian.

Add the following line to /etc/apt/sources.list in order to use the unstable PPA in Debian and distros based on Ubuntu or Debian,

deb focal main

You should also import a gpg key, which is used to verify the packages, that you intend to install,

sudo apt-key adv --keyserver --recv 54B8C8AC

You could add the PPA version for a current version, instead of your current release. The mkusb PPAs are the same, because mkusb is only a bash shellscript with some help files, and all these files are independent of the version and flavour of the gnu-linux operating system.

from a tarball

You can download one of the following tarballs (compressed tar files) and check the md5sum, that it was downloaded correctly. This option is the second alternative, when it does not work to use the PPA or you do not want that. The version is/was up to date when uploaded, but it may not be updated at the same time as the PPA, and it is also limited to dus with guidus alias mkusb version 12.

Tarballs to download

See more details at the tarball subpage: /tarball


You can download tarballs from It might bring the same bleeding edge version as you get via the unstable PPA, and sometimes a newer or older experimental version.

from github

You can also download the tarballs from

mkusb-min if you want it simple

If you want it simple or do not want to install anything unknown, yet want to 'wrap a safety belt around dd', you can use mkusb-min. It is a small shellscript, that is easy to read and understand. It needs no installation, you can run the shellscript locally (in the current directory).

See the detailed description at ../min.

Simple to test mkusb in linux distros, which do not manage an Ubuntu PPA

It is simple to test *1) in linux distros (operating systems), which do not use Ubuntu PPAs. The script from downloads, checks and installs mkusb using only standard commands. It even checks itself and that the md5sum file was signed with a good signature by sudodos (me). The script can also remove what it installed. Installing via a tarball is even simpler and should work in most cases.

*1) mkusb may fail in linux operating systems, where it is not yet tested.

Linux distros where mkusb works

mkusb is tested (and tweaked to work) in the following linux distros

{Ubuntu, Kubuntu, Lubuntu ... Xubuntu} {12.04 LTS and all current versions} with PPAs for these versions

Ubuntu family developing release

- may break temporarily during the development

Launchpad bug report


mkusb-dus 12.2.2 and newer versions

Antix 16.2

live only *3)

Arch linux

- If you install a graphical desktop environment, mkusb works, live only *3) unless you tweak 'grub.cfg' of the persistent live drive.



Centos 7

- needs a legacy desktop file, simpler display in 'legacy mode' *2) Redhat bug report, live only *3)

Clear Linux 33320

live only *3)


- you can install and run the file mkusb-nox or mkusb-dus 12.1.9 and newer versions ( #from_a_tarball in Clonezilla Live). There is also a compressed image file of a persistent live system with mkusb already installed, ../persistent/clonezilla

Debian Wheezy

live only *3)

Debian 8-12

*4) tested versions: from 8:'Jessie' to 12:'Bookworm'


live only *3)

Devuan 3.0.0

live only *3)

Elementary OS

0.4.1-stable, 5.0-stable, 5.1-stable (use usb-pack-efi for persistence)

Endless 3.8

creates its own partition for persistence, when cloned (e.g. by mkusb)


17.7 and 17.4 tested (work also with persistence), 20.4 works with persistence with USB-pack-EFI

Fedora 24, 25

- mkusb 11 needs a legacy desktop file, simpler display in 'legacy mode' *2) Redhat bug report; mkusb 12 (mkusb-dus) works 'out of the box'; live only *3)

Fatdog 710

- 64-bit alternative to Puppy; works in UEFI and BIOS mode when cloned; mkusb 12 (mkusb-dus) works with dialog menus out of the box, difficult(?) to find zenity; persistence saved in another drive

Kali Linux 2017.3

- works live and persistent live without any tweaks, see this link

KDE Neon

- neon-user-20200910-0945.iso works live and persistent live without any tweaks

Knoppix 8.2

creates its own partition for persistence, when cloned (e.g. by mkusb)

Linux Lite 5.0 64bit

- Use usb-pack-efi for persistence in UEFI mode

Linux Mint 19,20

works like Ubuntu (but problems for 32-bit 19.3 in some computers)

Linux Mint 21

works almost like Ubuntu (but select 'usb-pack-efi' to make dus-persistent live system boot not only in UEFI mode but also in BIOS mode alias legacy mode )

LMDE 4 (Linux Mint Debian)

Use mkusb-plug for persistence according to Debian


works like Ubuntu

Mageia LiveDVD-Gnome 5, 5.1

- mkusb 11 needs a legacy desktop file; mkusb 12 (mkusb-dus) works (when run as root in live system); live only *3)

Manjaro 17.0.2 Gnome

live only *3)

MX Linux 19.1 x64

At boot you can create files for persistence, when mkusb-plug created NTFS partition behind the image of the iso file (or in another drive, for example internal).

openSUSE Leap 15.1

- Cloned drive will be persistent live automatically

openSUSE Tumbleweed 20220616

- Cloned drive will be persistent live automatically

Parrot 4.4

- Use usb-pack-efi for persistence


live only *3) but persistence works after tweak

Rescatux 0.72-beta4

live-only with mkusb, persistent live according to Debian with mkusb-minp

Sparky Linux 5.9, 5.11

persistent live both by mkusb-dus and mkusb-plug. See also ../minp/details


Zorin 16 Core

- works mostly well, also persistent live; use SysRq REISUB if shutdown fails

*2) mkusb-dus works, but mkusb-11 can only use a simpler display, 'legacy mode' (without colours and other html features, because Zenity lacks the --html option).

*3) mkusb can create 'live only' drives, but not 'persistent live' drives of this distro. There is a warning, if you try to create a 'persistent live' drive, and you can continue, because you might be able to tweak the grub.cfg file manually to make it work. The following links may help.

*4) Debian: Text mode ('mkusb-nox') works without any tweaks when running as root in Debian version 8 and newer versions. 'mkusb-dus' and 'mkusb-plug' work in and with Debian 10 and newer versions. Debian 12 works generally well via 'mkusb-plug', works in and can make live-only drives as well as persistent live drives, but 'dus-persistent' makes persistent live drives that work only in UEFI mode (not in BIOS mode). See also ../install-to-debian.

ISO files with limited compatibility for mkusb

Use mkusb 7.5 alias mkusb-nox in distros, where zenity does not work. If you prefer this command line version, for example if you are an Arch linux user, you will find that mkusb-nox can use the pacman installer and suggests to install pv. Use the basic mkusb-bas where none of the more advanced versions of mkusb works.

mkusb is tested with the following iso files / distros, and can install them live-only. Details are specified in each case according to the list,

Linux distros with limited compatibility for mkusb

Arch linux

- the ISO file lacks GUI, but you can install and run mkusb-nox and dus in text mode. If you install a GUI, mkusb can be installed and dus can run in graphics mode

EasyOS 2.3

- You will be promped to make a cloned drive persistent live

TinyCore 5.4, CorePlus-8.0

- if you install bash, parted and icecat you can download and run mkusb-bas

Ubuntu mini 14.04, 16.04

- the ISO file lacks bash so cannot run the bash scripts mkusb and mkusb-nox, but the mini.iso from precise-updates and all supported newer versions can be installed into a working USB drive by mkusb

Wary Puppy 5.5

- needed treatment with isohybrid, lacks lsblk and /dev/disk/by-id, can run mkusb-bas without further tweaks

TahrPup 6.0.5

- lacks lsblk and /dev/disk/by-id, can run mkusb-bas without further tweaks. Install pv if you want progress view.

TahrPup 64-6.0.6-uefi

- works for me only in BIOS(!) mode (after treatment with isohybrid), lacks lsblk and /dev/disk/by-id, can run mkusb-bas without further tweaks; Fatdog is a fork that works in UEFI and BIOS mode

Other iso files with limited compatibility for mkusb


- needed treatment with isohybrid, DBAN is dedicated to wipe drives in a secure way


- kiosk program, intended only for internet browsing

Windows 7 -10

- mkusb-plug has a good tool for current Windows 10 iso files to create USB boot drives with the Windows installer

Separate versions for graphical mode and text mode

There are separate versions for

  • GUI version: mkusb ../artwork/mkusb24.png

  • text version: mkusb-nox

  • basic version: mkusb-bas

  • minimal version: mkusb-min

the unstable PPA

sudo add-apt-repository ppa:mkusb/unstable
sudo apt-get update
sudo apt-get install mkusb-nox

will install the bleeding edge version of mkusb-nox (testing new features and bug-fixes)

This avoids some complicated logic and makes the code smaller. Maybe 90% of you will prefer the GUI version, but the text version is good for servers and for users who do not want eye-candy. The improved recognition of systems and devices is back-ported to mkusb-nox. See this pdf manual.

Please try mkusb, mkusb-nox, mkusb-min or if they do not work, try mkusb-bas.

mkusb-bas can be downloaded from


See this pdf manual.

Merged to a common version again - 'dus'

dus - a revamped interface of mkusb and mkusb-nox

Easier to use and to maintain

The intention with dus is to make it easier to use and easier to maintain. Some features, that nobody has commented on and very few have used, are removed. The user interface is much easier to use compared to mkusb and mkusb-nox. For example, there are no 'toggle' menu entries, and the style is 'wizard' with the tasks following each other.

Final checkpoint

The 'final checkpoint' is changed for a special reason: The current mkusb version with coloured background is good, but it depends on zenity's support for html, which has failed for long periods of time more than once during a couple of years. The new version should be as safe as before, and it is only using basic zenity features: the 'Go' radio button must be selected and the 'Go' button must be pressed).

Should work with minimal instructions

guidus is a GUI front-end to dus. It provides a desktop file, that is available via the menu system in many linux flavours or dash in Unity. The graphical mode will be selected automatically for most users (running graphical desktop environments)


dus should work with minimal instructions. It might not look as good as the current mkusb version, but it is possible to remove some rough edges. Of course we can expect bugs at this stage, but I think it will soon surpass mkusb in user friendliness.

Help text

dus -h

---- Make USB or memory card install drive from ISO or image file ---
dus file.iso
dus "quote file name (1) with special characters.iso"
dus file.img
dus file.img.gz
dus file.img.xz
dus file.tar       # if an mkusb tarfile for Windows
---- Clone a device (typically a CD drive or USB drive) -------------
dus /dev/sr0       # example of CD drive
---- Wipe or restore a USB drive or memory card ---------------------
---- Options --------------------------------------------------------
dus -d [file.iso]  # dialog (text mode menus)
dus -t [file.iso]  # plain text mode interface
dus -h             # usage text
dus -v             # version

Source file as parameter in text mode

When trying to enter a source file (except when zenity can be automatically selected)

|     It is easier to select source file as a parameter,      |
|     when using dialog menus or a simple text interface.     |
|     Examples:                                               |
|     cd Downloads        # where you find source files       |
|     dus debian.iso      # autoselect zenity, dialog, text   |
|     dus -t ubuntu.iso   # simple text                       |
|     dus -d ubuntu.iso   # dialog menus                      |
|     However, there is a good file selector using zenity.    |
|     dus [-z]            # zenity menus (when available)     |

Remote login via ssh

Use mkusb-nox or dus, when you login remotely for example via ssh.

ssh nio@server
sudo mkusb-nox file.iso  # select source file via the command line
# or
dus file.iso  # select source file via the command line

or in graphical mode, if the server can manage it and zenity is installed (in the server)

ssh -X nio@server
dus  # select source file via the zenity menus

Font size for high resolution

The default font in monitors with 2560x1440 or 3840x2160 pixels may be too small in Ubuntu Desktop and the Ubuntu family flavours. mkusb-dus version 12.6.3 can modify the font size for high resolution automatically (size of zenity windows and font of text, which can be controlled via zenity). Some text cannot be controlled this way, but via the general font settings. In mkusb-dus version 12.6.4 control of font and window size for the xterm console is added and for zenity it is improved.

gnome-tweak-tool - font size from 11 to 16

In Ubuntu 20.04.x LTS with Gnome desktop environment you can use gnome-tweak-tool and increase the default fonts from 11 to 16, which should make the text nice in many application programs. There are corresponding methods to increase the font size in the Ubuntu community flavours (Kubuntu, Lubuntu ... Xubuntu).

This is matched by the automatic logic in mkusb-dus.

Ubuntu settings tool

However, if you use the shortcut by the Ubuntu Settings tool and select Scale 200%, or Fractional scaling the automatic logic of mkusb-dus will believe that the font is still too small, and make the zenity windows (and font, that it can control) very large.

In this case you can select manage Zenity window and font size from the starter menu of dus (mkusb-dus), and then select Fixed size of zenity windows and fonts from the submenu. You will probably be satisfied with the default font size, but you can increase the size if you wish.


Add an option for DPI

The following link to the Ubuntu Forums can be helpful [not only] for users of Lubuntu 20.04.x LTS with an nvidia proprietary driver,

Extremely small font size after nVidia driver installation

Summary: Add an option for DPI to the file (modify if you use another file name '10-...conf')


for example

Section "Monitor"
Identifier "Monitor0"
Option "DPI" "100x100"

Section "Device"
Identifier "Device0"
Driver "nvidia"
Option "UseEdidDpi" "False"
Option "DPI" "100x100"

Return to the main mkusb page

mkusb/gui (last edited 2023-06-12 10:51:47 by nio-wiklund)