MultiCD - Combine several CDs into one.
multicd.sh is a shell script designed to build a multiboot
CD image containing many different Linux distributions and/or utilities.
The advantages to making a CD with this script are:
- You don't need to burn multiple CDs for small distributions.
- If you already have the ISO images, it is not necessary to download them again.
- When a new version of one of the distributions is released, you can simply
download the new version and run the script again to build a new multiboot image.
The ISO images that MultiCD writes can also be written to a flash drive, although the filesystem will be read-only; see the
ISOLINUX documentation for more info.
Download (most recent revision on git)
New features announced on Twitter
(or get the RSS feed.
The script can be downloaded from a git repository as a tarball (see the top of the page.) MultiCD is hosted both on GitHub. Contributions via GitHub pull requests are welcome.
You can also get the latest development version of multicd with git:
$ git clone git://github.com/IsaacSchemm/MultiCD.git
Make a folder for building the image. You can give it any name; I call mine "multicd". Spaces in paths should be supported (if they aren't, it's a bug.)
Download the multicd*.tar.gz archive and untar it to that folder (or download the single-file script and save it into that folder.)
Copy or symlink some of the supported boot images to files in that folder.
- Only distros supported by this script will work, unless you use the "generic" plugin (see below.)
- For some distribuitons, you can use the original file name of the ISO, and MultiCD will create a symlink automatically. For others, you will have to rename the ISO to the name listed below.
- Floppy and hard drive images are supported - any image with a .img or .imz extension will be picked up.
Install mkisofs or genisoimage.
If your distribution comes with CD/DVD burning software, you probably have it already.
Open a terminal, go to the multicd folder (made in step 1) and type:
user@pc$ chmod +x multicd*.sh
The script will detect which images are present and make a CD for you.
They will appear on the menu of the final CD in the order they are listed.
(Note: if the final size is over 700 MB, you will have to use a DVD.)
-c : include an MD5 checksum file (md5sum.txt)
-d : drop to a shell prompt before building the ISO (debug)
-m : don't include Memtest86+
-i : offer options like ISOLINUX menu color or copying only certain Slax modules
-o [filename] : lets you use another filename for the output instead of multicd.iso
-t : run the ISO in QEMU after it is built
-v : be more verbose
-V : print out the version number
-w : put a "press enter to continue" before exiting
clean : don't run the multicd.sh script at all - instead, get rid of the symlinks
and temporary version files that it makes automatically
MultiCD has two methods for copying the contents of a boot CD to the new image.
- The standard method is to use a script specific to the boot disk being copied.
These plugin scripts come with MultiCD and are listed in the
Supported Distros section below. Most of these scripts copy files directly from the
original ISO; this requires specific scripts for each ISO, but the advantage is that
you can boot the distro from the MultiCD-generated disc without copying the whole distro to RAM.
- If there's no script for your distro, or the script is too old, you can try using the
"generic" plugin, which copies the whole ISO image as-is to the new CD/DVD and boots it
with memdisk. This requires you
to copy the image to RAM whenever you want to run it, but it doesn't require any maintenance
on my part (and you can remove the disk after everything is copied to memory.) Unfortunately,
it won't work for most distros - live CDs usually look for a real disk, and don't
know where to find the image that memdisk loads into memory.
To tell MultiCD to use the "generic" plugin, give the ISO a name that ends in .generic.iso.
You can also write a custom name to a .defaultname file - e.g. bootdisk.generic.defaultname
for bootdisk.generic.iso - and this name will appear on the MultiCD menu.
(.defaultname files will be removed by multicd.sh if you remove the corresponding ISO file.)
- MultiCD can use the following methods to extract ISOs. The first two are preferred if they are available - instead of extracting the ISO and then copying files, they loop-mount the image, so files are only copied once.
- Linux loop-mount (only as root on Linux kernel)
- You can use more than one ISO for certain distros, including Ubuntu and/or Linux Mint, without using the "generic" plugin.
Either name them [anything].ubuntu.iso for Ubuntu / [anything].linuxmint.iso for Mint, or keep the original ISO filenames
(MultiCD will make temporary symlinks to the names it expects to see.)
You can configure the menu names of these distros
by editing the .defaultname file (i.e. [anything].ubuntu.defaultname) or running MultiCD with the "-i" option.
- If MultiCD is hogging your hard drive usage, try
switching your drive to the cfq scheduler.
(cfq supports ionice, which is run near the beginning of multicd.sh and tells the system to give MultiCD low
priority on the hard disk.) You'll usually only need to do this on systems with traditional hard drives (not SSDs).
MultiCD comes with NO WARRANTY and is provided under the MIT License.
Copyright (c) 2014 Isaac Schemm
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Windows users can look into
YUMI, a program that
does something similar to MultiCD. YUMI's author also links to similar tools for Windows or Linux that you can try.
For other boot disk information, a great place to look is reboot.pro.