Return to the main mkusb page

mkusb version 12

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

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

You will notice some changes from version 11 to 12. dus is version 12, the default version now.

GUI: switch between the new dus and the classic mkusb-11, version 11

run-mkusb-dus.png run-mkusb-11.png



Text: switch between the new dus and mkusb-11, mkusb-nox, mkusb-bas


There is a new text mode manual, which matches mkusb-dus

man mkusb

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

Snapshot report: version 12.1.2 - what works 2017-05-02


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

Improvements and new features

New: mkusb version 12 has a new user interface which is easier to use and to maintain

  • mkusb 12.0.0 alias dus (guidus mkusb-dus) and mkusb-11 (with the classic interface)
  • mkusb 12.0.1
    • minor bugfix, removed 'double dus' in two window titles
  • mkusb 12.0.2
    • dus:
      • new function p_cal1: sudo password managed better at start
      • dus no longer asks for usb-pack-efi but dus-persistent does
    • dus-persistent:
      • improved logic when missing usb-pack-efi for distros without 'apt-get'
      • selection of usb-pack-efi when grub.cfg is missing
      • opensuse: logic for grub2-install (in grubi386-pc)
  • mkusb 12.0.3
    • dus-persistent: label=usbboot for partition #3 (instead of a variable label depending on the distro, version and flavour). This is stable and works also when reading the system from a block device.
  • mkusb 12.0.4
    • dus: modified p_checkpoint: 'src_orig=' to make it easy to change the source file
    • modifications to transfer source file as parameter for integration with file browsers
      • guidus.desktop and mkusb.desktop: added %f to the exec lines
      • mkusb-start: added "$@"
  • mkusb 12.0.4-1ubuntu17
    • preinst and postinst added to the debian directory
      • preinst removes some files that might disturb mkusb 12
      • postinst copies files that belong to mkusb-common
        • there is a problem when upgrading from version 9-11 to version 12, because some files, that belonged to the package mkusb was moved to a separate packade mkusb-common, used also by dus. The problem is solved by letting mkusb-common install to file names mkusb12... and directory name mkusb12, and after installation copy the files to the corresponding file names mkusb... and directory name mkusb12.
  • mkusb 12.0.4-1ubuntu19
    • preinst improved (to remove only what must be removed), rm -f /usr/sbin/{mkusb,dus}
  • mkusb 12.0.5
    • debian/control - mkusb - depends:... mkusb-common (>= 12.0.5) ...

  • mkusb 12.0.6
    • mkusb-select: made to print versions directly with -v
    • mkusb.8: The manual made up to date
  • mkusb 12.0.7
    • mkusb.8: The manual improved
  • mkusb 12.0.8
    • dus-live: improved logic for running and reporting gpt_fix
    • dus-persistent: function menu_name when reading from block device
    • mkusb-11: fix to transfer source file as parameter and via 'selected'
    • mkusb.8: The manual made up to date
  • mkusb 12.0.9
    • dus, function p_list_drives: skipping floppy: grep -v zram --> grep -v -e zram -e ^fd (to fix a bug that affects old computers)

  • mkusb 12.1.0
    • dus, bugfix for Debian Jessie in function p_source: lsblk -Jo ... --> pcalx lsblk -Po ...

      •     p_calx lsblk -Po name,fstype|grep iso9660|cut -d \" -f 2|grep -m1 4$|sed s#^#/dev/#
            p_calx lsblk -no label $stmp|head -n1
            p_calx lsblk -o model,name,size,fstype,label,mountpoint|grep -e '^[^ ]' -e iso9660
  • mkusb, dus-persistent 12.1.1
    • fixes for Ubuntu 17.0.4 and Debian Jessie and for computers that do not boot to (hd0)
      • grub-n-iso:
        • 'tweak 3 grub.cfg': search --set=root --fs-uuid instead of (hd0,4)
        • 'hint for debian live': user: 'user', password: 'live'
      • select_boot_system: simpler search for "*amd64*" (for Ubuntu 17.04)
      • show_result: minor cosmetic fix (variable width of zenity window)
  • mkusb, dus-persistent 12.1.2
    • 'tweak 3 grub.cfg': search --set=root --fs-uuid instead of (hd0,4) does not work when running mkusb-dus in Ubuntu 12.04 because the UUID of the iso9660 file system cannot be identified. The old method with set root=(hd0,4) is selected as a fallback.
  • mkusb 12.1.3
    • dus: bugfix to direct the user to clone [compressed] image files and create persistent live drives only from iso files

      • p_persistent: suggest to select an iso file for dus-persistent or try to clone if an image file
      • main: code to skip to cloning (calling the function p_live), when a compressed image file is entered as parameter.
  • mkusb 12.1.4
    • dus, dus-live, dus-persistent: fixes for some unusual file names, for example t1.img.xzxx.img.xz and t2.isoxx.iso, where the logic to identify the file extensions failed.

      •    ${source/.iso} --> ${source%.iso}
           ${source/.img} --> ${source%.img}
           ${source/.img.[gx]z} --> ${source%.img.[gx]z}
  • mkusb 12.1.5
    • backup and restore: debugged and improved a lot by testing extensively in a persistent pendrive
      • backup: A small but important improvement to keep automounting the usbdata and casper-rw partitions in some Ubuntu versions and Ubuntu based distros, for example LXLE 16.04.2 LTS. the new version has two new options, '--one-file-system' and '--exclude=upper/media'.
        •     diff backup backup-1
              < sudo tar --one-file-system --exclude=upper/media -cvzf "$tdir/$tarball" .
              > sudo tar -cvzf "$tdir/$tarball" .
      • restore: Several changes to make the usage easier and more reliable, when restoring also from other directories than the default '/media/$USER/usbdata'.
      • See this link for more details: Backup and restore of persistent overlay data

  • mkusb 12.1.6
    • dus-persistent: function menu_package_installer: ask to update & upgrade only installed systems (not live or persistent live systems). This avoids upgrading persistent live systems by mistake, which might break them by filling the available drive space for persistence.

  • mkusb 12.1.7
    • dus: p_need_pck mkfs.vfat "package dosfstools"
      • Some Debian iso files come without the package dosfstools, so dus needs to check for it, because it is used to create FAT32 file systems in dus-live, dus-persistent and dus-restore.
  • mkusb 12.1.8
    • dus: separate function usage called directly if '-h'
    • dus: function p_checkpoint: --defaultno for the 'dialog' menu to increase the safety in text mode
    • dus: function p_chk_programs: improved logic to ask for zenity and dialog in text mode
  • mkusb 12.1.9
    • dus and dus-persistent: checking for 'overlay': device name for live root clonezilla
  • mkusb 12.2.0
    • dus is modified for knoppix in function p_list_drives and function p_ldr
  • mkusb 12.2.1
    • dus: p_need_pck_s mkfs.ntfs "package ntfs-3g" (for debian)
    • dus-persistent: tweaks to work with "9w-debian-wheezy"
  • mkusb 12.2.2
    • dus: p_cal1, p_call, p_calx: no sudo when running as root
    • dus-persistent: tweaks to work with "9w-debian-jessie"
  • mkusb 12.2.3
    • dus-persistent: tweaks for debian 9, currently 'stretch':
      • grub_n_iso: bpsiz=256 (usbboot size doubled) for debian 9
      • menu_entry_1: special treatment for debian 9
  • mkusb 12.2.4
    • mkusb-bas alias mkusb version 7.4.3:
      • tweaked to recognize and run from TahrPup

      • FINAL WARNING ---> Final checkpoint

  • mkusb 12.2.5
    • mkusb-start: bugfixes to make it work correctly with mkusb-11
      • 'if [ "$@" != "" ]' --> 'if [ "$*" != "" ]'

      • logical variable 'nopsw' introduced and used to manage cases when sudo will run without entering a password
  • mkusb 12.2.6
    • dus-persistent: probe_source and grub_n_iso:
      • tweaks to work with extix debian
      • tweaks to work with debian stretch
  • mkusb 12.2.7
    • dus-persistent:
      • new function partitioner: partitioning moved from grub_n_iso
      • 'grubimg' added to clone partitions 2 and 3 with grub for BIOS mode when running in an installed system in UEFI mode
      • minor tweaks to improve the dialogue, when running in an installed system in UEFI mode
  • mkusb 12.2.8
    • dus-live:
      • new function partition_msdos_fat: extracting from the file 'grub4win.img.xz' to clone the head and the partition with grub for BIOS mode when running in an installed system in UEFI mode
      • minor tweaks to improve the dialogue, when running in an installed system in UEFI mode
  • mkusb 12.2.9
    • dus-persistent:
      • removed redundant 'echo' output about 'grubimg' (output to the console, when running in an installed system in UEFI mode)

Return to the main mkusb page

mkusb/12 (last edited 2017-10-02 08:55:40 by ister-kokos)