mkusb-plug - plug-in to identify target
mkusb-plug is a wrapper shellscript for the plug-in method using
xorriso-dd-target to indentify the correct target device, which is a very safe way to identify the target device,
and creates input for mkusb-sedd 'sed and dd', which is developed from mkusb-minp. mkusb-sedd has better monitoring of the progress and there are several minor improvements and bugfixes. mkusb-sedd uses zenity when available, but it can also work as a stand-alone tool in text mode (but mkusb-plug needs graphics mode and zenity).
and creates input for mkusb-tow 'TO Windows', which is developed from iso2usb/diy/windows-installer-for-big-files, mkusb-tow can manage current Windows 10 iso files with a file 'install.wim', that exceeds 4 GiB. mkusb-tow uses zenity when available, but it can also work as a stand-alone tool in text mode (but mkusb-plug needs graphics mode and zenity).
watch-flush helps watching the progress, when the iso file is flashed via sed or xzcat or extracted via rsync to the target device.
Where can mkusb-plug work?
mkusb-plug needs a graphical user interface (desktop environment or window manager).
All features of mkusb-plug work in Ubuntu 18.04.x LTS, Debian 10 and newer versions.
In Ubuntu 16.04.x LTS the tool 'fdisk' is packaged in util-linux, while it is in an own package in 18.04 and newer versions. For this reason the PPA is configured so that you cannot install mkusb-plug from PPA. You can install mkusb-plug version 2.5.0 and newer versions from the tarball and use it.
- mkusb-plug does not work in Ubuntu 15.10 and older versions. Use mkusb-dus (or mkusb-bas if it is a very old version).
Cloning works in all linux distros with a fairly new version of Linux with for example 'lsblk' and a modern version of 'dd'. It means that you can create standard live-only boot drives from hybrid iso files. But the installer in the tarball is using apt to install some standard linux programs, that mkusb-plug depends on, and in linux distros that use other tools (than apt), you have to install those programs manually.
What can mkusb-plug do?
clone from a hybrid iso file to a standard live (live-only) boot drive in a removable drive
clone from a general image file (for example an image of a Raspberry Pi installed system)
create live drives with a usbdata partition for storage with all linux distros that provide hybrid iso files
create a persistent live drive with Ubuntu 19.10 or Debian live 10
- and newer versions of Ubuntu and Ubuntu family flavours as well as Debian
- and some but not all linux distros created from them
create a 'nopersistent' live drive, where no logs are saved past shutdown/reboot
create an installer drive for Windows implemented in version 2.6.0.
New label in Focal Fossa: writable
In the developing version of Ubuntu, Focal Fossa, to be released as 20.04 LTS, the default label of the partition for persistence is changed from casper-rw to writable. This is implemented in mkusb-plug version 2.5.5, (which is bundled with mkusb version 12.4.3 in the PPA).
Ubuntu creates the partition for persistence automatically
It is enough to add the boot option 'persistent' with Ubuntu 19.10 and newer versions. Ubuntu creates the partition for persistence automatically, when booting into a USB drive or memory card. This is implemented in mkusb-plug 2.7.0 and newer versions (bundled with standard mkusb version 12.4.8).
'fixfox' for Firefox to work in persistent live drive of Ubuntu version 22.04
In order for Firefox to work [in a 22.04 LTS system made by mkusb-plug] after [the second] reboot, you need a fix. Boot into the new persistent live system, install mkusb, and then run
This can be fixed automatically via dus (mkusb-dus) but not via mkusb-plug, because Ubuntu creates the partition for persistence automatically when booting the first time into the persistent live drive. So mkusb-plug has no place to write what fixfox wants to write.
This may be necessary also in newer versions (>22.04).
You can also do it completely manually (when booted into the persistent live system)
sudo mkdir /lib/systemd/system/apparmor.service.d
to create a directory apparmor.service.d in /lib/systemd/system/
sudo nano /lib/systemd/system/apparmor.service.d/30_live_mode.conf
to create config file in the new directory
Save and reboot.
Detailed description to make a persistent live drive
There are more details and also examples of Linux distros and respins that work with mkusb-plug at this link: ../minp/details
How to get mkusb-plug
Install from PPA
mkusb-plug (version 2.5.0) was added to the mkusb PPA with mkusb version 12.4.2
You install mkusb-plug from ppa:mkusb/ppa with the following commands. (If you want the bleeding edge version, you can use repository ppa:mkusb/unstable instead.)
sudo add-apt-repository universe # this line only for standard Ubuntu running live sudo add-apt-repository ppa:mkusb/ppa sudo apt update sudo apt install mkusb-plug
Remove tarball version
Please notice that if you have already installed mkusb-plug or dus/guidus from a tarball, you had better remove that version when you install via PPA. The advantages with the PPA version are:
It is easy to install from a PPA,
mkusb-plug gets updated/upgraded automatically along with other program packages that are installed from the Ubuntu repositories.
Install from a tarball
The mkusb-plug tools are shellscripts plus some help files and they are also available from a tarball,
Download two files
Download the tarball and the checksum file from one of the following web sites (github or phillw),
tarball mkusb-plug-plus-tools.tar.gz (~ 1.5 M, Mibibytes)
signed checksum file mkusb-plug-plus-tools.tar.gz.md5.asc for the tarball
Check with md5um
If you have the tarball and the checksam file in the same directory, you can use the md5sum program to check it like this,
$ md5sum -c mkusb-plug-plus-tools.tar.gz.md5.asc mkusb-plug-plus-tools.tar.gz: OK md5sum: WARNING: 14 lines are improperly formatted
The 'improperly formatted lines' are the lines belonging to a gpg signature.
There are more details about md5sum and gpg signature at /md5sum
Extract in a local directory
Change directory to the directory where you downloaded the tarball e.g. 'Downloads' and extract the files from the tarball.
cd Downloads # or to whatever directory where you downloaded the tarball tar -xvf mkusb-plug-plus-tools.tar.gz
cd to the extracted subdirectory
Install or remove
Run the shellscript installer to install or to remove mkusb-plug.
sudo ./installer i sudo ./installer r
There are checks for necessary programs, that you may have to install into your version or flavour of Ubuntu or Debian.
You can view the files at this link: https://phillw.net/isos/linux-tools/mkusb/plug-dir/
Graphical user interface
There is a graphical user interface, and there is a desktop file, so you can start mkusb-plug
- like any other graphical program
- but also from a terminal window according to the help text
$ mkusb-plug -h Tool to create boot drive, typically a live USB drive Usage: mkusb-plug [source file] Examples: mkusb-plug linux.iso # make live drive mkusb-plug linux.img # clone image file mkusb-plug ubuntu-19.10+.iso # make persistent live mkusb-plug debian-10+.iso # make persistent live mkusb-plug windows.iso # make installer drive mkusb-plug -v # version mkusb-plug -h # helpThe terminal window will serve as console for the program.
Zenity windows for the main tasks
The main tasks are run via zenity windows:
Cloning in general using dd under the hood
Making a persistent live system of Ubuntu 19.10 desktop and Debian 10 live using sed to modify the content of the iso file: e.g. replace 'quiet splash' with 'persistent '
Making a live drive with a 'usbdata' partition. This way it is possible to use the drive space behind the cloned image for storage, when making USB boot drives also from iso files of other linux distros, as long as it is created from a hybrid iso file, and most current linux distros provide hybrid iso files.
Text mode dialogue for some peripheral tasks
Some peripheral tasks can be managed via a text mode dialogue:
- Older versions of Ubuntu and Debian
- Respins and other linux distros based on Ubuntu or Debian.