Make my bootable CD 

isolinux.cfg 

W98_ID=$(echo $(ls Boot/*.img | wc -l))
MEMTEST_ID=`expr $W98_ID + 1`
svs W98_ID MEMTEST_ID

cat <<EOF > isolinux.cfg
PROMPT  1
DISPLAY /isolinux/menu.txt
DEFAULT $W98_ID
TIMEOUT 100

EOF
 cat !$

ls Boot/*.img | cat -n | awk '{printf "LABEL "$1"\n  KERNEL /isolinux/memdisk\n  APPEND initrd="$2"\n\n"}'    >> !$
 cat !$

cat <<EOF >> !$
LABEL $MEMTEST_ID
  KERNEL /isolinux/memtest.86
EOF
 cat !$

ls Boot/*.img | cat -n | sed "s/$t/) /; s|Boot/|Boot - |; s/\.img$//" > menu.txt.s
printf "     $MEMTEST_ID) Launch - Mem Test 86" >> !$
 cat !$
cat !$ >> menu.txt
es !$

results 

$ cat menu.txt
     1) Boot - Norton Ghost (Network)
     2) Boot - Tech W0rm
     3) Boot - Win98 (se)       [*]
     4) Launch - Mem Test 86

$ cat isolinux.cfg
PROMPT  1
DISPLAY /isolinux/menu.txt
DEFAULT 3
TIMEOUT 100

LABEL 1
  KERNEL /isolinux/memdisk
  APPEND initrd=Boot/NGhost.img

LABEL 2
  KERNEL /isolinux/memdisk
  APPEND initrd=Boot/TechW0rm.img

LABEL 3
  KERNEL /isolinux/memdisk
  APPEND initrd=Boot/Win98se.img

LABEL 4
  KERNEL /isolinux/memtest.86

Disk image 

MKISOPTS="-r -N -L -d -D -J"
TODAY=`date '+%Y-%m-%d'`
ISOFILE="../wincombo.iso"
mkisofs $MKISOPTS -f           \
  -V "W98+Office2k"            \
  -A "MS Win98 & Office2000 (Created $TODAY)"     \
  -o $ISOFILE                   \
  -b isolinux/isolinux.bin -c isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table .
dir $ISOFILE

burn test CD 

cdrecord -multi dev=0,0,0 -eject -v speed=8 $ISOFILE

Problems 

  • isolinux.bin won't allow tab char in menu.txt. It shows up weirdly.
  • isolinux.bin only recognize 8.3 file names. So my memtest86 won't boot. Have to sepcify /isolinux/memtest8 to lanuch it. Change memtest86 to memtest.86
  • Norton Ghost Network don't have CDRom support! So I can't use it to write my CDROM's image to disk.