FreeBSD Jumpstart Guide, Alfred Perlstein 2000

DANGER: this proceedure will make the 'Server' both insecure and dangerous, it's best to just keep the 'Server' on it's own hub and not in any way accessable by any machines other than the 'Clients'.

Terminology:
Server - the machine offering netboot and install options.
Client - the machine that will have FreeBSD installed on it.

Requires:
Clients supporting the Intel PXE netboot option, an ethernet.


Server configuration:

Install DHCP:
Install isc-dhcp-2.0 you can use this config file dhcpd.conf, stick it in /usr/local/etc/

Enable tftp:
Make a directory /usr/tftpboot
Add this line to your /etc/inetd.conf:

tftp    dgram   udp     wait    nobody  /usr/libexec/tftpd      tftpd /usr/tftpboot
Enable NFS:
Add this to /etc/rc.conf:
nfs_server_enable="YES"
Add this to /etc/exports:
/usr -alldirs -ro
Reboot to enable the new services or start them manually.

Bootstrap setup

Download bootfiles:
Download the kern.flp and mfsroot.flp floppies from ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/i386/

Setup tftp/pxe-boot directory:
Using the vndevice mount the kern.flp file and copy its contents to /usr/tftpboot:
vnconfig vn0 kern.flp    # associate a vndevice with the file
mount /dev/vn0 /mnt      # mount it
cp -R /mnt /usr/tftpboot # copy the contents to /usr/tftpboot
umount /mnt              # unmount it
vnconfig -u vn0          # disassociate the vndevice from the file

Extract the installer and helper utilities from the mfsroot disk and uncompress them, put them in /usr/tftpboot as well:
vnconfig vn0 mfsroot.flp         # associate a vndevice with the file
mount /dev/vn0 /mnt              # mount it
cp /mnt/mfsroot.gz /usr/tftpboot # copy the contents to /usr/tftpboot
umount /mnt                      # unmount it
vnconfig -u vn0                  # disassociate the vndevice from the file
cd /usr/tftpboot                 # get into the pxeboot directory
gunzip mfsroot.gz                # uncompress the mfsroot

Make your sysinstall script install.cfg, you can use mine as a template, but you must edit it.

Copy the sysinstall script into the extracted and uncompressed mfsroot image:
cd /usr/tftpboot
vnconfig vn0 mfsroot
mount /dev/vn0 /mnt
cp install.cfg /mnt
umount /mnt
vnconfig -u vn0


Install setup

Put the install files in an NFS accessable location on the Server:
Make a directory corresponding the 'nfs' directive in the install.cfg file and mirror the FreeBSD install files
there, you'll want it to look somewhat like this:
ABOUT.TXT       TROUBLE.TXT     compat20        floppies        ports
ERRATA.TXT      UPGRADE.TXT     compat21        games           proflibs
HARDWARE.TXT    XF86336         compat22        info            src
INSTALL.TXT     bin             compat3x        kern.flp
LAYOUT.TXT      catpages        crypto          manpages
README.TXT      cdrom.inf       dict            mfsroot.flp
RELNOTES.TXT    compat1x        doc             packages

Copy the compressed packages into the packages/All directory under 'nfs'.

Make sure you have an INDEX file prepared in the packages directory.
You can make your own INDEX entries like so:
alfred-1.0||/|Alfred install bootstrap||alfred@FreeBSD.org||||

Then you can install custom packages, particularly your own custom post-install package.