3 Bootstrap Setup

  1. Download bootfiles: Download the kern.flp and mfsroot.flp floppy images.

  2. Set up tftp/pxe-boot directory:

    1. Put pxeboot in the boot directory:

      # rm -rf /usr/obj/*
      # cd /usr/src/sys/boot
      # make
      # cp /usr/src/sys/boot/i386/pxeldr/pxeboot /usr/tftpboot
      
    2. Using the vndevice mount the kern.flp file and copy its contents to /usr/tftpboot:

      # mdconfig -a -t vnode -f kern.flp -u 0 # (vnconfig vn0 kern.flp) associate a vndevice with the file
      # mount /dev/md0 /mnt # (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
      
  3. Compile a custom kernel for the clients (particularly to avoid the device config screen at boot) and stick it in /usr/tftpboot.

  4. Make a special loader.rc to and install it in /usr/tftpboot/boot/loader.rc so that it does not prompt for the second disk, here is mine.

  5. 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
    
  6. Make your sysinstall script install.cfg, you can use mine as a template, but you must edit it.

  7. 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