3 # This script generates a "memstick image" (image that can be copied to a
4 # USB memory stick) from a directory tree. Note that the script does not
5 # clean up after itself very well for error conditions on purpose so the
6 # problem can be diagnosed (full filesystem most likely but ...).
8 # Usage: make-memstick.sh <directory tree> <image filename>
15 scriptdir=$(dirname $(realpath $0))
16 . ${scriptdir}/../../tools/boot/install-boot.sh
18 PATH=/bin:/usr/bin:/sbin:/usr/sbin
22 echo "make-memstick.sh /path/to/directory /path/to/image/file"
26 if [ ! -d ${1} ]; then
27 echo "${1} must be a directory"
32 echo "won't overwrite ${2}"
36 echo '/dev/ufs/FreeBSD_Install / ufs ro,noatime 1 1' > ${1}/etc/fstab
37 echo 'root_rw_mount="NO"' > ${1}/etc/rc.conf.local
38 makefs -B little -o label=FreeBSD_Install -o version=2 ${2}.part ${1}
40 rm ${1}/etc/rc.conf.local
42 # Make an ESP in a file.
43 espfilename=$(mktemp /tmp/efiboot.XXXXXX)
44 make_esp_file ${espfilename} ${fat32min} ${1}/boot/loader.efi
48 -p efi:=${espfilename} \
49 -p freebsd:-"mkimg -s bsd -b ${1}/boot/boot -p freebsd-ufs:=${2}.part" \