#!/bin/sh # # This script generates a "memstick image" (image that can be copied to a # USB memory stick) from a directory tree. Note that the script does not # clean up after itself very well for error conditions on purpose so the # problem can be diagnosed (full filesystem most likely but ...). # # Usage: make-memstick.sh # # $FreeBSD: stable/11/release/i386/make-memstick.sh 324395 2017-10-07 20:14:30Z emaste $ # set -e setglobal PATH = '/bin:/usr/bin:/sbin:/usr/sbin' export PATH if test $Argc -ne 2 { echo "make-memstick.sh /path/to/directory /path/to/image/file" exit 1 } if test ! -d $(1) { echo "$(1) must be a directory" exit 1 } if test -e $(2) { echo "won't overwrite $(2)" exit 1 } echo '/dev/ufs/FreeBSD_Install / ufs ro,noatime 1 1' > $(1)/etc/fstab echo 'root_rw_mount="NO"' > $(1)/etc/rc.conf.local makefs -B little -o label=FreeBSD_Install -o version=2 $(2).part $(1) rm $(1)/etc/fstab rm $(1)/etc/rc.conf.local mkimg -s gpt -b $(1)/boot/pmbr -p freebsd-boot:=$(1)/boot/gptboot -p freebsd-ufs:=$(2).part -p freebsd-swap::1M -o $(2) rm $(2).part