Multi boot with syslinux 

multi boot with syslinux (in Chinese Big5)
Example: File syslinux.cfg
default vesamenu.c32
prompt 0
timeout 600

MENU TITLE Multi Boot Menu Edit by Barry

label 98DOS
kernel memdisk
append initrd=98dos.IMA

label DOS622
kernel memdisk
append initrd=DOS622.IMA

LABEL linux
KERNEL linux24
APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=normal tz=Asia/Taipei initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix

MEMDISK image files

The image file should contain a disk image, either a floppy disk or hard disk image. The disk image can be compressed with gzip if you have MEMDISK 2.03 or later.

For any other size, the image is assumed to be a hard disk image, and should typically have an MBR and a partition table. It may optionally have a DOSEMU geometry header; in which case the header is used to determine the C/H/S geometry of the disk. Otherwise, the geometry is determined by examining the partition table, so the entire image should be partitioned for proper operation (it may be divided between multiple partitions, however.)

documented on: 2007-10-21

Create a multiboot CD (or USB flash drive)


I want to have a business card size CD with which I could boot multiple floppy images (I don't want to carry floppies with me because of their size, fragility, and lack of reliability). I'm posting this because someone might find it useful. Basically I want a CD that has:

Multiboot CD 

  1. First, create a folder ~/bootdisk that will hold the images. Download floppy images or rip floppies with

    dd if=/dev/fd0 of=~/bootdisk/imagename
     (by the way, keep "imagename" under 7 letters because of CD file system
  2. Install syslinux (use apt-get/Synaptic).

  3. Copy "isolinux.bin" and "memdisk" from /usr/lib/syslinux to the ~/bootdisk folder.

  4. In the ~/bootdisk folder create an "isolinux.cfg" file like this:

    default 0
    prompt 1
    timeout 100
    display message.txt
    label 0
      localboot 0x80
    label 1
      kernel memdisk
      append initrd=reset
    label 2
      kernel memdisk
      append initrd=img1
    label 3
      kernel memdisk
      append initrd=img2
    label 4
      kernel memdisk
      append initrd=puppy
    label 5
      kernel memdisk
      append initrd=dsl


    label 0

    bypass the CD and boot from localdisk

    label 1 to 3

    "reset", "img1", "img2" are the names of floppy images that I put in ~/bootdisk

    label 4 and 5

    start the "puppy" and "dsl" floppy images that provide support for USB (in case the computer cannot boot directly from USB)

    Again, make sure the image names have less than 7 characters.

  5. Create "message.txt" in ~/bootdisk that contains a menu like this one:

    1. Boot from local disk

    2. Reset NT passwords

    3. Ghost bootdisk Dell GX270

    4. Ghost bootdisk Dell G

    5. Puppy USB support

    6. DSL USB support

      Make sure the numbers correspond with the ones in isolinux.cfg (messages.txt is not absolutely necessary, but otherwise you'd need to know the label names when you boot).

  6. Create the iso image, run this command while in ~/bootdisk:

    mkisofs -o cdproject.iso -b isolinux.bin -c \
    -no-emul-boot -boot-load-size 4 \
    -boot-info-table ~/bootdisk
  7. Burn cdproject.iso (or test it first in QEMU or VMWare if you don't want to waste a CD)

    # apt-get install qemu
    # qemu -m 256 -cdrom cdproject.iso -boot d

    By the way, this is not applicable to boot different ISO files, there are other ways to do that (for example if you want a DVD to contain multiple distros): use this howto

Multiboot USB drive 

  1. get Puppy Linux, boot from CD, install it to your USB flash drive (use "syslinux" choice).

  2. create and add floppy images in root of USB drive as instructed above.

  3. modify syslinux.cfg in the root of USB drive to point to the floppy images just like in the example above (keep the entry for Puppy) add a messages.txt for the menu.

how does memdisk boot an iso image

> I sucessfully booted some floppy-images within memdisk-2.0.4, but how
> can I boot a cd-iso-image (for example a bootable eltorito cd).

You can't, sorry.

H. Peter Anvin

how does memdisk boot an iso image 

there is no tool to boot an ISO image.

But you can boot from a CD using isolinux…


how does memdisk boot an iso image 

> >You can't, sorry.
> Is it technically impossible, is it beyond the goal of the project or
> would such a patch be included if someone would write it ?
> I would for one love such an addition ;) Too much hassle to manually
> change rescue CD images.

I guess it's beyond the scope of the project. The BIOS interface to a CD-ROM is very different than the BIOS interface to a floppy or hard disk. It pretty much would mean writing a different piece of code to emulate a CD-ROM as opposed to emulate a disk.

H. Peter Anvin

how does memdisk boot an iso image 

> My goal is how to boot like pxe or vmware just an iso-image than
> a fat12 image.
> It would solve all our problems with System-Administration, as dag
> said for the rescue CDs.
  1. Write a tool that does it.

  2. Realize that it's probably broken anyway, since most rescue CDs have operating systems that want to talk directly to the hardware…

H. Peter Anvin

Linux and Multi-Boot

> Apparently one way to have more than one Linux distro on one disc is to
> rewrite the isolinux.cfg file and have one isolinux folder on your disc to
> boot all of them.

More than one Linux distro using ISOLINUX is cake.

LABEL bartpe
LABEL chntpw
KERNEL memdisk
APPEND initrd=/FLPYS/chntpw.bin
LABEL slax
KERNEL /boot/slax/vmlinuz
APPEND vga=769 max_loop=255 initrd=/boot/slax/initrd.gz from=/slax init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw nopcmcia
LABEL slaxltop
KERNEL /boot/slax/vmlinuz
APPEND vga=769 max_loop=255 initrd=/boot/slax/initrd.gz from=/slax init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw
LABEL server
KERNEL /boot/server/vmlinuz
APPEND vga=769 max_loop=255 initrd=/boot/server/initrd.gz from=/server init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw nopcmcia
LABEL mepis
KERNEL /boot/mepis/vmlinuz init=/etc/init apm=power-off vga=791 quiet
APPEND initrd=/boot/mepis/initrd.gz

Typically, ISOLINUX is found in /boot/isolinux. Put the kernel+ramdisk files for each distro in a sub-dir under /boot, as in /boot/mepis for SimplyMEPIS, /boot/slax for Slax KillBill Ed, and /boot/server for Slax Server Ed. The statements shown above work that way.

The files in the root of each distro go into the root of the ISO, exc for Slax Server+KillBill Eds, bec each of those distros have a cmd-line param (from=/) which permit their support files to be placed in their own sub-dirs. Distros based on Knoppix (Knoppix, DSL, et al) are problematic bec they each rely on a /KNOPPIX sub-dir which can't be relocated, otherwise ISOLINUX makes a multi-distro CD/DVD easy. BTW, I would point out that I also integrated BartPE and the CHNTPW P/2K password cracker gizmo into the same ISOLINUX menu with a nice splash screen.

documented on: Nov 17 2006, jetman

Linux and Multi-Boot 

First : For Adding a menu in boot.ini to boot ubuntu/kubuntu linux, here is the steps

  1. Here is the contents of boot.ini

    [boot loader]
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional" /noexecute=optin /fastdetect
    C:\GRLDR="Ubuntu Linux 6.06"
  2. Put the GRLDR from the GRUB in the root

  3. Create a file with the name : menu.lst and fill it with the following contents

    color black/cyan yellow/cyan
    timeout 0
    default 0
    title Ubuntu 6.06
    kernel (hd0,10)/boot/vmlinuz-2.6.15-23-386 root=/dev/sda11 -ro quiet splash
    initrd (hd0,10)/boot/initrd.img-2.6.15-23-386

Here make the necessary changes for kernel (hd0,10) for the correct partition number and also root=/dev/sda11

  1. Reboot, u will get a menu "Ubuntu Linux 6.06" anext to Windows XP Professional, choose it, then see it will boot into linux

  2. Finished!!

documented on: Nov 11 2006, Manju

Linux and Multi-Boot 

> No, this is for a multiboot installation DVD, so that I can have windows and
> linux on one installation disk, choosing which I want installed through a
> menu.
> It seems like diskemu Kubuntu.iso could also do the trick here.

Well, the only solution I could find was to put everything from the CD into the root directory of my AIO DVD. Then I had to use bcdw boot /isolinux/isolinux.bin in order to start Linux. The problem with this, though, is that I can only have one distro on the CD through this method.


multi OS bootable CD, ISOLinux, ERD Commander problem

Hello all, I plan to make an (emergency) multi OS bootable CD which contain: - Win98 boot floppy (create from Win 98 control panel, add remove program) - WinME boot floppy (create from Win 98 control panel, add remove program) - Linux boot disk - Win NT boot disk - Win 2000 recovery console - Win XP recovery console - Winternal Administrative Pak (ERD Commander etc)

I am new to Linux and feel painful in doing these, someone point me to Bart's web ( and I guess Multiple boot images (isolinux/memdisk) could solve my problem, I start off with the following

0) Boot from first harddisk (0x80)
1) Boot Dos with CD-Rom support
2) Boot Dos with Network support
3) Boot Linux (tomsrtbt)
4) Boot Windows 98 floppy
5) Boot Windows ME floppy
6) Boot FD Linux
7) Boot Pocket Linux
8) Boot RedHat Linux 8
9) Boot RedHat Linux 8 text
e) Boot RedHat Linux 8 expert
k) Boot RedHat Linux 8 ks
n) Boot RedHat Linux 8 nofb
l) Boot RedHat Linux 8 lowres
c) Boot RedHat Linux 8 CrashRecovery
a) Boot from first floppy drive (0x00)
q) Skip CD-Rom boot (try next boot device)

1,2,3 are from Bart's web, I create the img file (win98.img and winme.img) with dd.exe I got FD Linux at and Pocket Linux at option 8,9,e,k,n,l are from and c) is from ( my isolinux.cfg look like this

default 0
display bootmsg.txt
prompt 1
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
F7 snake.msg
label 0
 localboot 0x80
label a
 localboot 0x00
label q
 localboot -1
label 1
    kernel memdisk
    append initrd=cdrom.img
label 2
    kernel memdisk
    append initrd=msnet.img
label 3
    kernel memdisk
    append initrd=tomsrtbt.img
label 4
    kernel memdisk
    append initrd=win98.img
label 5
    kernel memdisk
    append initrd=winme.img
label 6
    kernel memdisk
    append initrd=fdlinux.img
label 7
    kernel memdisk
    append initrd=pklinux.img
label 8
  kernel vmlinuz
  append initrd=initrd.img lang= devfs=nomount ramdisk_size=9216
label 9
  kernel vmlinuz
  append initrd=initrd.img lang= text devfs=nomount ramdisk_size=9216
label e
  kernel vmlinuz
  append expert initrd=initrd.img lang= devfs=nomount ramdisk_size=9216
label k
  kernel vmlinuz
  append ks initrd=initrd.img lang= devfs=nomount ramdisk_size=9216
label n
  kernel vmlinuz
  append initrd=initrd.img lang= devfs=nomount nofb ramdisk_size=9216
label l
  kernel vmlinuz
  append initrd=initrd.img lang= lowres devfs=nomount ramdisk_size=9216
label c
  kernel memdisk
  append initrd= crash2419.img
timeout 200

I have no problem from Option 0 - 4, but can't load the remain, 5) hang up after winme.img load, 6) and 7) ask for floppy, 8 - l report vmlinuz corrupt, c) hang after image load.

LAM Chi-fung

PS I am using Chinese Win 98 to build the CD, mkisofs.exe not work with Chinese file name, and I find a NLS version of it with some modification in the build.mak

boot:=-b isolinux/isolinux.bin \
      -no-emul-boot -boot-load-size 4 -boot-info-table \
      -hide isolinux.bin -hide-joliet isolinux.bin \
      -hide boot.catalog -hide-joliet boot.catalog
      -hide trans.tbl -hide-joliet trans.tbl
mkisofsargs:=-J -N -U -T -icode=big5

hope this help ^_^

multi OS bootable CD, ISOLinux, ERD Commander problem 

> Since our systems use only Win2K/XP, I dont need WinME. But I use Win98
> DOS mode, to start the WinXP installation, and I have had no problems with
> that.
> My Win98 based DOS bootdisk used to hang. The problem was with IFSHLP.SYS.
> Try removing the "DEVICE=IFSHLP.SYS" in the config.sys in WinME image, to
> see if it works. If it does and if you need network support, then you have
> to get another copy of IFSHLP.SYS.
> In case of 6 and 7, they are the only linux images you are trying to boot
> using memdisk. I presume that the images themselves are using syslinux,
> to boot into linux. If that is the case, you can remove the extra syslinux
> layer. Just get the kernel and initial ramdisk out of your .img file
> and change the config lines to be similar to the other linux kernels.

woo… great…. this may consume 2 weekends for me ^_^

LAM Chi-fung