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.
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/tftpbootEnable NFS:
nfs_server_enable="YES"Add this to /etc/exports:
/usr -alldirs -roReboot to enable the new services or start them manually.
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
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.