Return to the main mkusb page

mkusb version 12 ---> 22

Version 12 of the mkusb tool was only bash scripts and version 22 is still a set of bash scripts.

The menus and dialogue windows are graphical using zenity. ../artwork/mkusb24.png or text based using dialog or even very basic text, if neither zenity nor dialog is available.

dus started as mkusb version 12

dus is a new interface and structure replacing mkusb and mkusb-nox; dus should be easier to use and to maintain. There is a graphical user interface with a desktop file, guidus.

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)


Quick start manual version 12 alias dus, ../mkUSB-quick-start-manual-12.pdf

Live-only by cloning

  • mkusb-dus can make live-only drives from all hybrid iso files, and most modern linux distros provide hybrid iso files.

  • Hybrid iso files
    • All current Ubuntu iso files
    • 12.04 iso files except early mini.iso files
  • Possible to make into hybrid iso files
    • Ubuntu 10.10 and newer desktop iso files
      • Examples:
        • isohybrid ubuntu-10.10-desktop-i386.iso
        • isohybrid ubuntu-11.04-desktop-amd64.iso
  • Impossible to make into hybrid iso files
    • Ubuntu 10.04, 10.04.x and older iso files
    • But mkusb-dus can make a persistent live drive of Ubuntu 10.04.1 LTS

Persistent live

  • Linux distributions, 'distros'
    • mkusb-dus can only make persistent live drives running in and creating from 'desktop' or 'live' iso files of the following distros

      • Ubuntu, Ubuntu community flavours and some respins based on Ubuntu

      • Debian Jessie, ToriOS and maybe some respins based on Debian Jessie

  • Versions
    • Current versions
      • mkusb-dus can make persistent live drives in and from current versions of Ubuntu (not versions that have passed end of life)

    • Running mkusb-dus in Ubuntu 12.04 (which has passed end of life)
      • search --set=root --fs-uuid <the-UUID-of-partition-no-4> does not work because the UUID cannot be detected. Instead the old set root=(hd0,4) method is used (in grub.cfg), which works in most cases, but the persistent live drive may fail in some new computers running in UEFI mode. Working persistent live drives can be created with 12.04 itself as well as of the current releases including Artful (to become 17.10).

    • Running mkusb-dus in Ubuntu Artful (to become 17.10)
      • Persistent live drives made from Ubuntu 12.04.1 LTS do not boot with persistence because the casper-rw partition cannot be overlayed, but they boot live only. (It does not work with the precise kernel.)
      • Persistent live drives made from Ubuntu 12.04.5 LTS boot with persistence. (It works with the trusty kernel.)
    • Running mkusb-dus in Ubuntu 16.04.1 LTS (currently the version with the longest lifetime)
      • Persistent live drives made from Ubuntu 10.04.1 LTS, 12.04.1 LTS and Artful (to become 17.10) boot with persistence.

Old improvements and new features

The intention is to continue to maintain dus-persistent and other tools belonging to dus 12.


  • mkusb 12.7.0
    • dus: p_checkpoint: full lsblk output to zenity
    • mkusb-plug: srctst and mkusb-sedd: puer:
      • identify new versions of Ubuntu (.disk/info)
      • and minor cosmetic tweaks (zenity window size)
  • mkusb 12.7.1
    • dus-persistent: probe_source: upefi [from now] always default for debian
  • mkusb 12.7.2
    • dus 12.7.2 and mkusb-plug 2.8.6 with several sub-scripts: quoted grep 'patterns'
  • mkusb 12.7.3
    • because of the program package exfat-utils changed name to exfatprogs in Jammy:
      • control0: mkusb-plug: Recommends: pv, exfat-utils, exfatprogs
  • mkusb 12.7.4
    • in order to make Firefox work in persistent live Jammy:
      • dus-persistent: apparmor.service.d/30_live_mode.conf: ConditionPathExists=

      • new files: fixfox and fixfox.desktop in autostart
    • (works for ubuntu and some but not all flavours)
  • mkusb 12.7.4-1ubuntu3
    • fix for Firefox: dus-persistent: using name of '*ubuntu*.seed' in iso file to decide home directory of target system
    • (verified for kubuntu,lubuntu,ubuntu,ubuntu-budgie,ubuntu-mate,ubuntustudio and xubuntu).
  • mkusb 12.7.4-1ubuntu4
    • fix for Firefox: dus-persistent: extra fix for Ubuntu Kylin
  • mkusb 12.7.5
    • dus-persistent: probe_source: upefi=true and grubimg=true for newer than 20.04 iso files or 21.04 host systems. This fixes a bug that stops booting in BIOS mode

mkusb version 22

This version of the mkusb tool, version 22, is still only a bash script.


The first versions of the dus-iso2usb script work only in text mode. Later on it will be called by dus and menus and dialogue windows will be graphical using zenity. ../artwork/mkusb24.png or text based using dialog or even very basic text, if neither zenity nor dialog is available.

The main function is to

  • extract the first partitions and the grub structure from compressed image files
  • create new partitions, one for an iso file labeled 'isodevice', and one optional for persistence labeled 'writable' (or in older systems labeled 'casper-rw').
  • copy iso file to 'isodevice' and add some tweaks.

This makes a system that can boot via grub into an iso file both in UEFI mode and BIOS mode (alias CSM alias legacy mode), 'grub-n-iso'. The following link describes how to do it manually.

Improvements and new features

  • mkusb 22.0.1
    • Added early version of dus-iso2usb (grub-n-iso) script.
    • Not yet called by dus, only for testing in text mode.
    • version 22.0.1 (year based: 2022 ---> 22)

  • mkusb 22.0.3
    • dus-iso2usb: readparams, addparts: added optional parameter #6 'boot-flag' plus extra warnings when large target drives
    • dus-iso2usb: copyiso: sleep to settle down to get syslbl
    • dus (itself): new functions p_toolsel and p_seti2u to prepare settings for the script dus-iso2usb
    • dus-iso2usb now called by dus, but final checkpoint still in text mode
  • mkusb 22.0.4
    • dus: p_seti2u: fixed other settings when msdos and/or boot-flag selected
  • mkusb 22.0.5
    • dus-iso2usb: add_parts: if statement for boot-flag also when live-only (alias not persistent)
  • mkusb 22.0.6
    • dus-iso2usb: read_params: warning and question if the source is not an Ubuntu [flavour] iso file
    • p_zentest and p_checkpoint added (to dus-iso2usb)
    • p_toolsel: p_clean and return after call of dus-iso2usb
    • p_checkpoint: extra question 'Are you sure ?' in text mode
  • mkusb 22.0.7
    • p_toolsel: cleaner return after p_live and p_persistent
    • dus-iso2usb: read_params, p_checkpoint: fine-tuned output to terminal window
  • mkusb 22.0.8
    • dus.8 (and mkusb.8) for man dus & man mkusb updated

    • dus-iso2usb: syslbl="Not Ubuntu 19." when not Ubuntu
  • mkusb 22.0.9
    • upgrade of mkusb-nox:
      • made more convenient for isotesting with SSD drives which are seen as ATA even when connected via USB
      • pv replaced by dd options (takes care of sync too) status=progress oflag=dsync and bs modified to 1M
      • discouraging text when creating Windows installer
      • protecting source when a block device (bugfix)
  • mkusb 22.1.0
    • mkusb-nox: added inverse video and lsblk output to help identify the target device
  • mkusb 22.1.1
    • dus-iso2usb: redbacks when errors causing exit
    • dus: p_toolsel: print command line for dus-iso2usb
  • mkusb 22.1.2
    • several fixes of zenity window sizes
    • p_ldr: set livedrive in system made by dus-iso2usb which is a grub-n-iso system with isodevice
    • copyright updated
  • mkusb 22.2.0
    • p_source: added p_sniff with sub-functions for crude estimate of possible mkusb tools/methods to create persistent live drive from the selected iso file
  • mkusb 22.2.1
    • minor bugfixes detected after p_sniff was added
      • p_toolsel: correct letters "(i/l/q)" for text mode, that is when "$manager" == "t"
      • p_sniff: zenity window when "$manager" == "z" and dialog paused when "$manager" == "d"
  • mkusb 22.2.2
    • minor bugfixes detected after p_sniff was added
      • p_snff: sudo --> p_calx

  • mkusb 22.2.3
    • 22.2.3-1ubuntu1
      • p_sniff: return when source not an iso file
    • 22.2.3-1ubuntu2
      • minor edit in dus: only updated version number
  • mkusb 22.2.4
    • p_sniff: added kaisen to array dist_plug waiting for more edits, so not yet uploaded ...
  • mkusb 23.0.1
    • dus-iso2usb: increased size of partition for iso file 5G --> 7G because the Lunar Ubuntu Desktop iso file exceeds 5G

Further improvements will be reported at

Return to the main mkusb page

mkusb/22 (last edited 2023-02-08 09:58:05 by nio-wiklund)