Booting Coyote Linux from a CD-ROM

Overview

This is an involved process and requires some hacking on a full Linux system to create the boot CD. Something to keep in mind is that the configuration of such a system cannot be updated; you are creating a CD-ROM, as in "Read Only Memory". All of your configuration options, port-forwarding, or script modifications must be completed and tested before you create the CD. You don't need an IDE-enabled kernel to make this work, as it merely takes advantage of the BIOS-enabled ability of many computers to boot from a CD.

Following are three sets of instructions. The first is the most recent, and has been tested with CL2.x The other two were provided for CL1.x, and will probably not work for CL2.x. They are included here as resources in case the first method doesn't quite work for you. If you have questions or problems with any of this, please use the Coyote Linux forums. I didn't write any of this, so please don't ask me for help. I am interested in corrections or clarifications, however.


Method 1

What do you need ?

how to:

  1. Replace the file linux on the boot floppy with the IDE-CDROM-enabled kernel (renamed to linux.
  2. Copy etc.tgz, local.tgz, webadmin.tgz, dhcpd.tgz, modules.tgz on this floppy to a temporary directory on the Linux system.
  3. Extract root.tgz to another temp directory, and modify etc/rc.d/rc.sysinit, changing qt mount -o ro -t $FSTYPE $DEVICE $MNT to qt mount -o ro -t iso9660 $DEVICE $MNT. Recompress the files back into root.tgz.
  4. Modify syslinux.cfg, changing boot=/dev/fd0,vfat to boot=/dev/hdc,iso9660. This assumes that your CD-ROM is the master on the secondary IDE interface; change it to /dev/hda if it's master on the primary interface, etc.
  5. Use WinImage to create disk image (uncompressed format) file called coyote2.img
  6. Extract cdrpack13.zip to a dir like c:\cdrpack13 and extract multi_memdisk_addon.zip to that directory.
  7. Copy coyote2.img to c:\cdrpack13\cds\multi_memdisk\disk1\isolinux
  8. Modify c:\cdrpack13\cds\multi_memdisk\disk1\isolinux\isolinx.cfg, changing append initrd=tomsrtbt.img to append initrd=coyote2.img. You can also modify isolinux.cfg with other changes, such as timeout, default, display message when CD booting, other bootable images, etc.
  9. Copy etc.tgz, local.tgz, webadmin.tgz, dhcpd.tgz, modules.tgz to c:\cdrpack13\cds\multi_memdisk\disk1
  10. Get to a DOS/Command prompt, make c:\cdrpack13 the current directory, insert a blank CD-R, and execute run.bat. From the "Main menu" select "Build & Burn" and "multi_memdisk".

Method 2 (Coyote Linux 1.x)
Mount the floppy on the machine with the CD burner. Start from your home directory; this example uses /home/fred.

mkdir cdcoyote
cp /mnt/floppy/* cdcoyote
mkdir cdcoyote/root
cd cdcoyote/root
tar -xzvf ../root.tgz
Edit linuxrc and continue on, but you may want to uncomment DEBUG if you wish, and then continue to this:
MNT="/var/lib/lrpkg/mnt"
qt mkdir $MNT
becomes this:
MNT="/var/lib/lrpkg/mnt"
#qt mkdir $MNT
change this:
qt mount -o ro -t $FSTYPE /dev/$DEVICE $MNT
ln -sf $DEVICE /dev/boot
to this:
#qt mount -o ro -t $FSTYPE /dev/$DEVICE $MNT
ln -sf $DEVICE /dev/boot
and this:
qt umount /proc
qt umount $MNT
becomes this:
qt umount /proc
#qt umount $MNT
Save it.

cd var/lib/lrppkg
mkdir mnt
cd mnt
copy all the ROOTMAP tgz files here (those in syslinux.cfg LRP=.......
copy all tgz files listed in the packages file here.
cd /home/fred/cdcoyote/root
tar -czvf ../newroot.tgz *
cd ../
check the permissions on the old root.tgz and make newroot.tgz match'em then
rm root.tgz
mv newroot.tgz root.tgz
rm the tgz files that you moved to lrppkg/mnt from /home/fred mkdir cdimg
mkdosfs -C 288.img 2880
mount -t msdos -o loop 288.img cdimg
cd cdimg
cp /home/fred/cdcoyote/* .
cd ../
syslinux 288.img
umount cdimg
mv 288.img cdimg
mkisofs -b 288.img -c boot-catalog -o /tmp/coyote.iso cdimg
cdrecord speed=4 dev=0,0,0 /tmp/coyote.iso

Most of this was listed in a mini howto for LRP (password required).


Method 3
Author: Tiago Ratto
Date: 10-10-03 15:41

What do you need ?

-1st Step
[Location: Windows]
So, you've already created your Coyote linux ok ? Run WinImage and make a disk image of your disk, save the image as non-compressed format.

- 2nd Step
[Location: Linux/Cygwin]
Now create a folder in your hard drive and extract all the tgz's inside. Create another folder inside the folder you've created named root and extract the root.tgz inside. Move the others tgz's files to the folder root. Now go tho to root/var/lib/lrpkg/ and edit the root.linuxrc file. Now change the following lines:

[126]
if [ -f $MNT/$f.tgz ]; then
to:
if [ -f /$f.tgz ]; then

[131]
zcat $MNT/$f.tgz | qt tar -x
to:
zcat /$f.tgz | qt tar -x

[154]
if [ -f $MNT/$f.tgz ]; then
to:
if [ -f /$f.tgz ]; then

[156]
qt zcat $MNT/$f.tgz > /dev/null
to:
qt zcat /$f.tgz > /dev/null

Now extract the file syslinux.cfg from the image and open it. Change the parameter:
boot=/dev/fd0
to:
boot=/

- 3rd Step
[Linux/Cygwin]
Now enter the root folder and compress all the files using tgz-like tool creating a new root.tgz.
[Windows]
After all that put the files you'd changed back into the image file using the WinImage and save it. And copy it to the cds/multi_memdisk/disk1/isolinux folder on the MultiMemDisk folder. Go to the MultiMemDisk folder and enter the cds/multi_memdisk/disk1/isolinux and alter the isolinux.cfg and the bootmsg as you like. After that go back to the MultiMemDisk folder and type "run" to burn your CD-R, follow the intructions and all should be fine !!! :-))))

PS1: If you are using WindowsXP generate a image file with de MultiMemDisk and burn it to the CD using a Nero-like software.

Credits, Licenses, Sources and Documentation

Coyote Linux - Vortech Consulting - http://www.coyotelinux.com
Coyote Linux FAQ - http://rzero.com/coyote/faq.html
BCD - http://www.nu2.nu

Compiled by Todd VerBeek.