INTRODUCTION
============

This is Pauls Boot CD (pbcd). Its a sort of template for building boot cds.
One of the aims was to make this a relatively small download. The other aim
is to make it easy to extend and add features to.

DISCLAIMER
==========

I take no responsibility for anything that you do with this toolkit. It also
comes with no warranty whatsoever.

REQUIREMENTS
============

To build the CD IMAGE, you need the cdrecord and mkisofs tools. You need a
pretty recent version so that the no-emul-boot option works. You need loopback
support in the kernel or loaded as a module.

It also helps if you have access to Slackware 7.1. This is really only 
relevant if you want to add to the basic structure. Since I used Slack 7.1
all the binaries are known to work with glibc 2.1.3. Binaries for other glibc's
may work, but then again they may not.

INSTALL
=======

You would have unpacked the pbcd-xxx.tar.gz file somewhere. There'll be a bunch
of shell scripts in the main directory and a a few sub directories for the 
main components:

initrd:

This contains all the files that go into the initrd image

root:

This contains all the files that go into the root file system image

cdimage:

Everything in here is meant to be burnt to the CD.

src:

This just contains source code for odds and ends.

QUICKSTART
==========

cd pbcd-xxxx
./build-initrd.sh
./build-root.sh
./make-iso.sh

Now use CDRECORD or your favourite burning tool to burn the newly created
ISO to a CD

This is for setting up a very basic boot CD that you can play with, extend
or whatever.

WHAT CAN I DO WITH IT
=====================

At the moment, its all set up to simplify connecting to a LAN and accessing
other systems. The basic build includes busybox 0.51 with telnet and wget
compiled in.

There are two scripts to help you set up your lan card and IP address info:

 cfgcard  - This prompts you to enter your LAN card type (eg. 3c509)
 cfglan   - This asks you if you want to use dhcp or if you answer no
            you'll get prompted for IP, broadcast, netmask etc.


ADDING STUFF
============

Under the cdimage directory is a usr directory. It is probably empty. When
the boot CD boots it has a symlink that points from /usr to the /usr 
directory on the CD. Therefore, anything that you put in cdimage/usr will
appear under /usr after you boot the CD.

So my suggestion is that you create a cdimage/usr/bin and put some useful
tools and scripts in there, and a cdimage/usr/lib for any libraries that
aren't included under root/lib.

MULTIPLE-SESSIONS
=================

Wouldn't it be good if the CD could remember what LAN card you had or which
IP address info you had so that you didn't have to re-enter it. Well,
you could just edit the startup files in root/etc/rc.d/rc.S and hardcode it
there. You would then have to reformat your CDRW and burn it again.

I started looking at using Multiple sessions (which would allow you to use
CDRs as well), to add additional info to the CD. The idea is that you burn 
the main pbcd build to a blank CDR or CDRW. Then you add some config
information under the cdimage/config directory and then just burn another 
session to the CDR(W). If the config changes, you burn another session. 
Admittedly, burning a new session wastes CD space (and may not work on some
older CD drives) but I think it adds some flexibility and gives you another
option.

Lets say you have a 3c509 lan card with the following IP info:

  IP 10.0.0.99, BROADCAST 10.0.0.255, NETMASK 255.255.255.0
  GATEWAY 10.0.0.250, DOMAIN blah.com DNS SERVER 5.6.7.8

Create a cdimage/config/networkcard file containing one line:

3c509

Create a cdimage/config/network file containing the following in one line:

10.0.0.99 10.0.0.255 255.255.255.0 10.0.0.250 blah.com 5.6.7.8

You can of course add stuff to the cdimage/usr directory and then burn it
as a new session.

I have some simple scripts that should help with burning in multisession mode.
It works with my CD Writer but may not with yours.

 burn-multi  - You should burn the main pbcd.iso using this script. You'll 
               need to edit the script to change the SCSI device ID
 new-sess.sh - You should use this after you've added something new under the
               cdimage tree. Again it has the SCSI device ID hardcoded, as 
               well as the SCSI device name (eg. /dev/sr0 ). You'll 
               probably need to change these
