This is not yet updated in the the handbook -- but the
8.0-RELEASE-I386-memstick.img
is an new addition to the FBSD install media world. This is a DD copy of an fixit sysinstall running system. Its very large is size. Three times larger then the disc1.iso. I tested this memstick.img and was unhappy with how long it took to download. In release 8.0 the sysinstall process was updated and now has USB support as option to select where the install files come from.
The thing you have to keep in mind is that most bios older that 2008 do not have option to boot from USB sticks or can only boot from a few different vendor USB sticks. Some vendor sticks will not be reconized by your bios as bootable. Testing the USB stick is the only way to find out if its bootable on your PC.
I normally download the disc1.iso and use the following script to load it to a USB flash drive.
Code:
#!/bin/sh
#Purpose = Use to transfer the FreeBSD install cd1 to
# a bootable 1GB USB flash drive so it can be used to install from.
# First fetch the FreeBSD 8.0-RELEASE-i386-disc1.iso to your
# hard drive /usr. Then execute this script from the command line
#
# fbsd2usb /usr/8.0-RELEASE-i386-disc1.iso /usr/8.0-disc1.img
#
# Change system bios to boot from USB-dd and away you go.
#
# NOTE: This script has to be run from root and your 1GB USB flash drive
# has to be plugged in before running this script.
#
# On the command line enter fbsd2usb iso-path img-path
#
# You can set some variables here. Edit them to fit your needs.
#
# Set serial variable to 0 if you don't want serial console at all,
# 1 if you want comconsole and 2 if you want comconsole and vidconsole
serial=0
set -u
if [ $# -lt 2 ]; then
echo "Usage: $0 source-iso-path output-img-path"
exit 1
fi
isoimage=$1; shift
imgoutfile=$1; shift
# Temp directory to be used later
#export tmpdir=$(mktemp -d -t fbsdmount)
export tmpdir=$(mktemp -d /usr/fbsdmount)
export isodev=$(mdconfig -a -t vnode -f ${isoimage})
ISOSIZE=$(du -k ${isoimage} | awk '{print $1}')
SECTS=$((($ISOSIZE + ($ISOSIZE/5))*4))
#SECTS=$((($ISOSIZE + ($ISOSIZE/5))*2))
echo " "
echo "### Initializing image File started ###"
echo "### This will take about 1 minute ###"
date
dd if=/dev/zero of=${imgoutfile} count=${SECTS}
echo "### Initializing image File completed ###"
date
echo " "
ls -l ${imgoutfile}
export imgdev=$(mdconfig -a -t vnode -f ${imgoutfile})
bsdlabel -w -B ${imgdev}
newfs -O1 /dev/${imgdev}a
mkdir -p ${tmpdir}/iso ${tmpdir}/img
mount -t cd9660 /dev/${isodev} ${tmpdir}/iso
mount /dev/${imgdev}a ${tmpdir}/img
echo " "
echo "### Started Copying files to the image now ###"
echo "### This will take about 6 minutes ###"
date
( cd ${tmpdir}/iso && find . -print -depth | cpio -dump ${tmpdir}/img )
echo "### Completed Copying files to the image ###"
date
if [ ${serial} -eq 2 ]; then
echo "-D" > ${tmpdir}/img/boot.config
echo 'console="comconsole, vidconsole"' >> ${tmpdir}/img/boot/loader.conf
#### note the above is a wrap. it should be moved after the >> above
elif [ ${serial} -eq 1 ]; then
echo "-h" > ${tmpdir}/img/boot.config
echo 'console="comconsole"' >> ${tmpdir}/img/boot/loader.conf
fi
echo " "
echo "### Started writing image to flash drive now ###"
echo "### This will take about 16 minutes ###"
date
dd if=${imgoutfile} of=/dev/da0 bs=1m
echo "### Completed writing image to flash drive at ###"
date
cleanup() {
umount ${tmpdir}/iso
mdconfig -d -u ${isodev}
umount ${tmpdir}/img
mdconfig -d -u ${imgdev}
rm -rf ${tmpdir}
}
cleanup
ls -lh ${imgoutfile}
echo "### Script finished ###"