Skip to content
Multiboot USB drive creation
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Multiboot flash drive creation

Core statements

  • Linux boots Linux
  • no boring installs, just cp my.iso /to/my/usb_drive/
  • do best for known distro images, try to boot random (even if they do not want to)

Software involved

Boot process

  • Syslinux, or another bootloader, boots the NetbootCD image
  • User scramble through dialogs, and select an image to boot
  • kexec loads the kernel from the selected image, using improved initrd with improved cmdline
  • mbd takes control before the initrd /init, and performs distro specific preparations
  • initrd /init prepare root filesystem
  • mbd take control again, before filesystem switch, and performs some special tasks
  • /init continue boot



Run next commands:

git clone git://
cd mbd




Run configure with the target_device environment variable set to partition device file. If /dev/PARTITION is your USB flash drive partition device file (as "sdx1", or "disk/by-uuid/NNNN"), run

./configure target_device=/dev/PARTITION

Additional options

  • isolinux_dir="DIR" - install to DIR directory on USB flash drive. DIR is "isolinux" by default
  • --without-bootloader - do not install Syslinux bootloader on the device. Use this option to preserve existent bootloader. Need this option if target filesystem is not FAT32
  • mbd_label="LABEL" - set filesystem label to LABEL, "MBOOTDISK" by default

If without-bootloader option is used, it is necessary to set target filesystem label to be the same as mbd_label value. Label can be set with the mlabel command (for FAT32), e2label command (for ext2/ext3/ext4).


On build stage, script will download NetbootCD and Tiny Core Linux live CDs; download and build GNU sedstream editor. Run



Need root privileges. Script will prepare and copy mbd files to the target device. If option without-bootloader is not set, script will install the bootloader (Syslinux) on the target device. Else, if option without-bootloader is used, script will suggest examples of bootloaders menu entries. Run

make install


Put LIVE CDs (*.iso) into the images directory ("isolinux/iso" by default) on your USB flash drive. Example, if MP is flash USB drive mount point:

cp my-cool-live-cds/*.iso MP/isolinux/iso/
mkdir MP/isolinux/iso/Debian
cp my-cool-live-debian-cds/*.iso MP/isolinux/iso/Debian/

Boot from USB flash drive, and follow the menus


From mbd source directory, run

make uninstall

Special Use

Add desktop link to Live CD desktop. Run configure with the desktop_link environment variable set. Example:

./configure target_device=/dev/PARTITION desktop_link='http://xn--c1apc3a.xn--p1ai/'

Boot Live CD from running system (if system has kexec support enabled, and dialog program installed). Example, if MP is flash USB drive mount point:

cd MP/isolinux
mkdir /tmp/mbd
sh mbd_menu -t /tmp/mbd

Tested with

Debian Livework
Linux Mint CDwork
Sabayon Linuxwork
SliTaz LiveCDwork
Tiny Core Linuxwork
Damn Small Linuxnot work
Slaxnot work
You can’t perform that action at this time.