Mk-boot-usb: a Script to Create Multiple-Bootable USB Keys


Note: Development of mk-boot-usb is now discontinued. I might make minor updates to it occasionally. Unetbootin may be a more user-friendly alternative. I have not tried it personally but many Taiwanese friends recommend it. Mk-boot-usb is still useful if you need to partition your usb key and/or install several distributions into it.

* * * * * * *

Mk-boot-usb is a perl script to create multiple-bootable usb keys (some call these usb keys / usb thumb drives). It wipes out an entire usb key, partitions it, creates file systems on it, installs grub-gfxboot, and installs a minimal linux on it. Mk-boot-usb is meant to speed up and lower the barrier of entry for creating bootable usb keys. The usb key will immediately become bootable (using the minimal linux), and more useful distributions can then be installed into other partitions manually simply by (1) copying any Live CD into each partition (2) modifying grub's configuration file. Starting from version 08g, it supports cloning: use mk-boot-usb to create a first bootable usb key and install mk-boot-usb into it, and then with a simple command you can use it to clone many more bootable usb keys that have cloning capabilities themselves!

This program will destroy all of your data in the usb key. It may even destroy all of your data in the harddisk and/or those on any storage device attached to it if you are not careful! Additionaly, this program is written with absolutely no security consideration in mind. Please use it at your own risk.

If someone has already used mk-boot-usb to create a bootable key for you, and you just want to clone it, you can skip directly to the page: "Cloning". You shouldn't even have to download the software. Cloning is much easier than creating the first one.

For non-technical FLOSS advocactes, you can leave the technical details to your geeky friends and skip all the way down to the page: "How Can mk-boot-usb Help Your FLOSS Advocacy?"

Mk-boot-usb is an OFSET project. Its success story was slightly digged.


Current version is 13a. Please download here; md5sum: (99af18442c78aa028d7685cc9cc9e95c); release announcement of newer versions will be posted as comments at this blog entry. This program is distributed under the terms of GNU General Public License, version 3 or later.

Extract all files directly at the / directory, and the executable script will be extracted to /usr/sbin/mk-boot-usb. All other necessary system files are extracted to /usr/share/mk-boot-usb, including ttylinux. (Or rather, we should probably say that mk-boot-usb becomes an unofficial skin for ttylinux.)

Requirement and Limits

The following utilities are used by mk-boot-usb: perl, sfdisk, mkfs (mkfs.vfat and mkfs.ext2), grub-gfxboot.

It is recommended that you also install qemu so that the usb key can be immediately tested after it is processed.

Version 11a and beyond were developed on SimplyMepis. Earlier versions have been tested on a few variants of ubuntu. It also successfully runs on slax. There is report that running mk-boot-usb from fedora successfully installs grub-gfxboot and yet the resulting usb key does not boot. Ditto for suse. Please report if you succeed or fail on distributions other than these.

This program is written with absolutely no security consideration in mind



I have no energy to maintain a full-blown software package and its corresponding maintainence system. However, your comments are most welcome. Please use this blog entry to leave your comments.