Multi-Booting With Isolinux


Table of Contents

Super-Disc 
Super-Disc 
Super-Disc 
Super-Disc 

Super-Disc 

http://www.msfn.org/board/index.php?showtopic=94398 http://www.msfn.org/board/Super_Disc_Multi_Boot_Project_CD_DVD_I_t94398.html

Multi-Boot Project CD/DVD Using ISOLINUX, A HOWTO and Conversation

I've been collecting ISOs for a while and want to see what all of the diff parts look like w/o giving up a bunch of CDs for a one-shot tryout. In doing this, you can see how one person assembles a multi-boot disc (CD/DVD) using ISOLINUX. If you want to follow along, you'll need a bunch of sware to do this project:

ISOLINUX             syslinux.zytor.com
DSL 3.2              damnsmalllinux.org
System Rescue CD     sysresccd.org
ZenWalk Live 4.2     zenwalk.org
cdrtools             freshmeat.net
Virtual CD Driver    microsoft.com

The Virtual CD Driver is needed only for the initial phase of the project. I'm using UltraISO, bec I have it and bec it permits dismantling the indiv ISOs, but it isn't free, while the Virtual CD driver from Microsoft, *is* free. If you already have something else, like Daemon Tools, MagicISO, ISO Buster, whatever, free free to use that instead. If it isn't obvious, the VCD Driver permits an ISO be mounted as a CD drive w/ its own drive letter, so folders and files can be extracted to disc for the bild. Since it took a while for me to find it (and *I* already know that it exists) here's the URL for that:

http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe

You'd also do well to get VMWare or Virtual PC (free from Microsoft), QEMU (free, OSS code) or some other virtual machine software, to test ISO images before burning them to disc. You won't need it right now, bec *if* you follow my instructions CAREFULLY, your finished ISO *will* be work. However, it wouldn't hurt to get it now, just in case….

This is a HOWTO, not a TUTORIAL. It's assumed that the reader knows how to use the different tools or can figure them out on his/her own. To make this a full-blown tutorial (with step-by-step explanations of everything) would require many hours of work that I don't have to give. I've never read a single tutorial or HOWTO on using ZIP/WINZIP/whatever. I've never read a HOWTO or tutorial on making sub-directories. Everything I've learned on these subjects has come through trial-and-error. This HOWTO offers a structure for a single project that works, which you'll be able to apply onwards and outwards for your own efforts. But it's your responsibility to grasp the concepts behind this structure and experiment, experiment, experiment. In fact, there were other parts that I'd hoped to include like the Ultimate Boot CD and Trinity Rescue Kit. Unfortunately, for several reasons, I had to abandon these elements as they would make things too complicated (UBCD) or simply didn't lend themselves a different disc structure (TRK.) These discoveries were the result of hours of experiments which you didn't see.

  1. Alright, let's get this party started. Make a sub-dir called \Super-Disc. Next, extract the SYSLINUX kit into \syslinux (be sure to keep the original directory structure.) The idea here is to put Super-Disc in the root of your hdrive. Actually, you can put it anywhere you like, but if you really need this HOWTO, do it my way the 1st time through.
  2. Underneath \Super-Disc\, create boot\isolinux\, boot\dsl\, boot\zenlive\, boot\sysresccd\, dsl\, and sysresccd\.
  3. From \syslinux, *COPY* (don't *MOVE*) vesamenu.c32, chain.c32, isolinux.bin, memdisk to boot\isolinux\.
  4. Open the System Rescue ISO and copy vmlinuz1 and vmlinuz.igz to boot\sysdresccd\. Copy sysrescd.dat to sysresccd\. Copy memtest86 to boot\isolinux\.

    Making the System Rescue CD "cooperate" was accomplished by changing the KERNEL and APPEND stmts, to point to the new location of the kernel (boot/sysresccd) and initial ramdisk or initrd (also in boot/sysresccd). Better designed live CD distros permit the compressed file system archive (where the bulk of the system files are contained) to be relocated. In this case using the loop= and subdir= clauses in the APPEND stmt. Some distros also call these "cheat codes."

  5. Open the DSL ISO and copy the KNOPPIX *file* (*NOT* the entire KNOPPIX sub-dir) to dsl\, linux24, and minirt24.gz to boot\dsl\.

    The key cheat code for relocating DSL is knoppix_dir=dsl, since DSL is derived from Knoppix.

  6. Open the ZenWalk ISO and copy vmlinuz and initrd.gz to boot\zenlive\ and the entire zenlive\ directory tree to \Super-Disc.

    At the end of this process, one should have a directory tree structure that looks something like this:

    C:\Super-Disc\
       boot\
           isolinux\
           dsl\
           sysresccd\
           zenlive\
       sysresccd\
       dsl\
       zenlive\
  7. Almost forgot, you'll need an ISOLINUX.CFG to make this work. Copy the bracketed text block below and put isolinux.cfg into boot/isolinux/.

    DEFAULT /boot/isolinux/vesamenu.c32
    PROMPT 0
    TIMEOUT 300
    TOTALTIMEOUT 450
    ####
    MENU BACKGROUND /boot/isolinux/splash.png
    MENU TITLE Super-Disc  **  09Mar07 Edition
    ####
    ####  The 1st byte of the fgnd color is brightness.
    ####                                    blue
    MENU COLOR title        1;36;44    #ff0000ff   #00000000   std
    ####                                    blue
    MENU COLOR unsel        37;44      #ff0000ff   #00000000   std
    ####                                   white
    MENU COLOR sel          7;37;40    #c0ffffff   #ff000000   std
    ####                                     red
    MENU COLOR hotkey       1;37;44    #ffff0000   #00000000   std
    ####                                   green
    MENU COLOR hotsel       1;7;37;40  #ff00ff00   #ff000000   all
    ####
    LABEL sysresccd1
    MENU label ^1  System Rescue CD VESA Display
    MENU DEFAULT
    KERNEL /boot/sysresccd/vmlinuz1
    APPEND initrd=/boot/sysresccd/vmlinuz1.igz root=/dev/ram0 init=/linuxrc vga=788 looptype=squashfs loop=/sysresccd/sysrcd.dat setkmap=us subdir=sysresccd cdroot forcevesa splash=silent
    LABEL sysresccd2
    MENU LABEL ^2  System Rescue CD fb1024x768 Display
    KERNEL /boot/sysresccd/vmlinuz1
    APPEND initrd=/boot/sysresccd/vmlinuz1.igz root=/dev/ram0 init=/linuxrc vga=791 looptype=squashfs loop=/sysresccd/sysrcd.dat setkmap=us subdir=sysresccd cdroot splash=silent
    LABEL sysresccd3
    MENU LABEL ^3  System Rescue CD fb800x600 Display
    KERNEL /boot/sysresccd/vmlinuz1
    APPEND initrd=/boot/sysresccd/vmlinuz1.igz root=/dev/ram0 init=/linuxrc vga=788 looptype=squashfs loop=/sysresccd/sysrcd.dat setkmap=us subdir=sysresccd cdroot splash=silent
    LABEL sysresccd4
    MENU LABEL ^4  System Rescue CD fb640x480 Display
    KERNEL /boot/sysresccd/vmlinuz1
    APPEND initrd=/boot/sysresccd/vmlinuz1.igz root=/dev/ram0 init=/linuxrc vga=785 looptype=squashfs loop=/sysresccd/sysrcd.dat setkmap=us subdir=sysresccd cdroot splash=silent
    LABEL dsl
    MENU LABEL ^5  **** Small Linux 3.2
    KERNEL /boot/dsl/linux24
    APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=/boot/dsl/minirt24.gz dma acpi nomce noapic quiet tz="America/New York" knoppix_dir=dsl BOOT_IMAGE=knoppix
    LABEL zenlive
    MENU LABEL ^7  ZenLive Linux
    kernel /boot/zenlive/vmlinuz
    append max_loop=255 initrd=/boot/zenlive/initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw vga=791 splash=silent changes=zensave.xfs
    LABEL memtest86
    MENU LABEL ^Memtest86 (RAM Diagnostic)
    KERNEL /boot/isolinux/memtest86
     Any 640x480 PNG will sufice for the initial splash screen, but try this
    one, making sure to rename it to splash.png and place it in boot/isolinux/.
    http://rapidshare.com/files/20603633/super-disc-splash.png[]
  8. To create an ISO for the project using MKISOFS, try the following:

    @ECHO OFF
    ECHO Starting @ (%TIME%) ....
    SET _VNBR_=01
    SET _ROOT_=C:\
    SET CDTITLE="SUPERDISC-%_VNBR_%"
    SET CDFILENAME="%_ROOT_%%CDTITLE%.ISO"
    mkisofs -N -V %CDTITLE% -b boot/isolinux/isolinux.bin -d -iso-level 4 -no-emul-boot -boot-load-size 4 -boot-info-table -o %CDFILENAME% Super-Disc

Of course, you can use any util you have available, like CDIMAGE, ULTRAISO, etc. The only significant issue is that the util *MUST* support the "boot-info-table" option. This eliminates from consideration my own favorite CD burning app, NERO and probably another popular burning app, Easy CD Creator. If you have a working Linux disc, you can use K3B, which does support boot-info-table patching and is an excellent CD/DVD burning app, so you could burn the project directly to disc.

Well that's it. If you've run the batch scriptlet above, you should have a multi-boot ISO you can burn to CD.

Hope this helps.

Good luck….Jet

28-Apr-07:

This thing has grown beyond my initial expectations, which is good. So, I've changed the name of the topic to 'Super-Disc: Multi-Boot Project CD/DVD Using ISOLINUX', which is what it has become. Onwards and outwards, I (and others) will continue adding new elements to the project and talking about it. Periodically, I'll add links to the different milestones/additions.

  1. Adding BartPE
  2. Adding a XP Installer
  3. More BartPE/XP Customization Links from Kof94

    Fleshing out these 1st few milestones will take the rest of the weekend, since this idea is a middle-of-the-nite inspiration. So use your imaginations in the meantime….

    30-Apr-07:
  4. A Q-n-D Mini-HOWTO on WiFi under Linux Using NDISWrapper

This post has been edited by jetman: Apr 30 2007, 09:04 PM

documented on: 2007.08.07

Super-Disc 

I don't know about the rest of you, but my own Super-Disc is moving along quite nicely and will be finished in another couple of days. Here's what mine looks like:

  1. I added a sub-menu for my Slax server, which even has its own splash graphic:

    MENU COLOR help       1;37;44    #ffff0000   #00000000   std
    ####
    MENU ROWS       12
    ####
    LABEL slaxmenu
    TEXT HELP
    Mustang Router/Server system using Slax 5.1.8.2, enhanced with NTFS-3g
    1.0+FUSE-2.63+K3B-1.0RC7....
    ENDTEXT
    MENU LABEL Mustang ^Server/Router Sub-Menu
    KERNEL /boot/isolinux/vesamenu.c32
    APPEND /boot/slax/isolinux.cfg
  2. The new sub-menu has some additional descriptive info (in the lower third of the screen), avail w/ SYSLINUX-3.40-pre12

Later….

This post has been edited by jetman: Mar 15 2007, 07:14 AM

Super-Disc 

Our latest and probably final update:

As pointed out earlier, this project isn't optimized. Future (personal) editions will certainly be re-org'd, probably to move the different Linux distros onto their own sub-menu. But it works as it is and illustrates how to integrate just about everything one would want to carry around on a disc w/ a nice menu.

I used the utils from the Multi-Boot DVD Guide http://www.msfn.org/board/index.php?showtopic=74862 to create two boot folders (UXPP for Unattended XP Pro and PRO1 for a std XP Pro install) from a single XP dir, then add it all to the ISO image and menu. The 'Boot from C:' menu pick came into being so that the disc will reboot autmagically to continue an install started from one of the XP menu picks.

BTW, I even got FreeNAS to work, but at a price. FreeNAS (or the FreeBSD loader that it uses) requires the RockRidge ISO attribute, which apparently isn't compatible w/ Windows sware as the XP setup immed stopped working. But, the Linuxen seem to work okay (not much experimental time), so eventually there will be a Unix-alike only Super-Disc.

However, the work on FreeNAS (and Doc Mem to a degree) illustrates the answer to an earlier question about the reason for disassembling ISOs. It would be great if it were possible to make a Super-Disc out of disk images and ISOs alone. Unfortunately, the way that PCs (particluarly PC BIOSes) have evolved over the years, this simply isn't feasible in most cases. Period. If PC BIOSes followed a stricter standard, programmers like the author of SYSLINUX could create loaders which would be able to bring anything into RAM and launch it. Consequently, if one wants a Super-Disc-like system, one must dismantle the constituent parts of the project (one ISO/image at a time) and re-assemble them in a new modified configuration.

Another potential stumbling block is the fact that the authors of some CD/DVD applications don't allow for their works to be relocated (often due to poor design/lack of foresight.) That is, they're hard-coded to work only from specific directory configurations.

Anyway, this has been fun and rewarding. I would also point out that SYSLINUX is a toolkit for making menuing/loader systems. There are at least two other ready-made menuing/loader systems included in the stock archive, similar to the VESAMENU module demonstrated here. The key to discovering if their potential is (as expressed above): experiment, experiment, experiment….Jet

This post has been edited by jetman: Apr 29 2007, 11:30 AM

Super-Disc 

 

I'd like to know, if I have a boot.bin file I ripped using BBIE (bart's boot image extractor), what's the command instead of KERNEL /boot/sysresccd/vmlinuz1 that I can type in to get my boot.bin file to load…

 
 -- Gedrean @ Mar 15 2007

If you need to know how to integrate XP/2K3/BartPE:

LABEL bartpe
MENU LABEL ^BartPE/WinPE
MENU DEFAULT
KERNEL /BOOTSECT.BIN

It's that simple….Jet