$Id: README,v 1.4 2002/08/09 01:11:48 bsd Exp $

These are the scripts to create a full FreeBSD installation that runs
from CD-ROM.  This is a complete installation that can do just about
anything that a hard-disk based installation can do.  I've used this
work as the basis for a CD-Rom based firewall, for recovering systems
that can no longer boot from the hard-drive, for performing system
diagnostics, as well as for a simple, but fast, installer.

The installer is included and can be used to install a FreeBSD release
that is included on the CD-ROM onto your hard disk.  This program is
not intended as a complete replacement for sysinstall; it does not
offer anywere near the installation options.  It can be used, however,
to do the equivalent of a full install (no packages) of FreeBSD onto
your hard disk and configure the hostname and network interface.

Brief instructions for the use of these scripts follows:

  1) First, you must do a buildworld from sources:

       # cd /usr/src && make buildworld

     This will rebuild your entire system, but won't actually install
     anything.  The result of the build will be in /usr/obj.

  2) Install this software.  Edit the Makefile and adjust BINDIR and
     LIBDIR accordingly.  If you change LIBDIR, you may need to modify
     the 'mkcdroot' script and make the same change.

       # make install

  3) Locate an area on your system that can hold at least 200 Megs
     (400 if you'll be including a Release on the CD), create a
     subdirectory there.  Call that $CDROOT.  This directory will be
     the top level directory of your read-only root installation, and
     will be the directory that you use for creating your ISO
     filesystem.

  4) Make sure $CDROOT from step 3 exists:

       # mkdir -p $CDROOT

  5) Run the mkcdroot script to create the read-only root area:

       # mkcdroot -base $CDROOT

  6) If you want this CD to contain a FreeBSD release, you need to
     have previously built a release on your system.  Assume your
     release directory is located at /scratch/release, copy disc1 of
     the release to /dist of your $CDROOT area:

       # cd $CDROOT/dist && cp -pr /scratch/release/R/cdrom/disc1/* .

  7) Create an ISO of your $CDROOT area:

       # cd $CDROOT
       # cd ..
       # mkisofs -R -b boot/boot.fd -o cdroot.iso $CDROOT

  8) Burn cdroot.iso to a CD; it should boot and come up to a login
     prompt.  Login as root (no password by default).  You are now
     running a complete FreeBSD installation from CD-ROM, except for a
     few filesystems that must be mounted read-write for proper system
     operation.

  9) If you included a FreeBSD release on the CD, and want to install
     it:

       # /etc/inst

     Follow the instructions.


If you wish to use the CD for a firewall, or other specialized
application, create a floppy disk that contains a UFS filesystem and
create a /etc directory on it.  Copy the files into the floppy /etc
directory that will override those on the CD.  When the CD boots, it
creates a memory filesystem for /etc.  It then looks for a floppy disk
that contains a /etc and copies its contents over top of the standard
files provided.  Only after that occurs, does it continue with the
normal system startup.  In this way, you can provide your or rc.conf,
hosts, master.passwd, etc, everything needed to customize the host and
provide application specific functionality.

