1219918Snwhitehorn#!/bin/sh 2219918Snwhitehorn# 3219918Snwhitehorn# This script generates a "memstick image" (image that can be copied to a 4219918Snwhitehorn# USB memory stick) from a directory tree. Note that the script does not 5219918Snwhitehorn# clean up after itself very well for error conditions on purpose so the 6219918Snwhitehorn# problem can be diagnosed (full filesystem most likely but ...). 7219918Snwhitehorn# 8219918Snwhitehorn# Usage: make-memstick.sh <directory tree> <image filename> 9219918Snwhitehorn# 10219918Snwhitehorn# $FreeBSD$ 11219918Snwhitehorn# 12219918Snwhitehorn 13219918SnwhitehornPATH=/bin:/usr/bin:/sbin:/usr/sbin 14219918Snwhitehornexport PATH 15219918Snwhitehorn 16219918SnwhitehornBLOCKSIZE=10240 17219918Snwhitehorn 18219918Snwhitehornif [ $# -ne 2 ]; then 19219918Snwhitehorn echo "make-memstick.sh /path/to/directory /path/to/image/file" 20219918Snwhitehorn exit 1 21219918Snwhitehornfi 22219918Snwhitehorn 23219918Snwhitehorntempfile="${2}.$$" 24219918Snwhitehorn 25219918Snwhitehornif [ ! -d ${1} ]; then 26219918Snwhitehorn echo "${1} must be a directory" 27219918Snwhitehorn exit 1 28219918Snwhitehornfi 29219918Snwhitehorn 30219918Snwhitehornif [ -e ${2} ]; then 31219918Snwhitehorn echo "won't overwrite ${2}" 32219918Snwhitehorn exit 1 33219918Snwhitehornfi 34219918Snwhitehorn 35224504Snwhitehornecho '/dev/da0s3 / ufs ro,noatime 1 1' > ${1}/etc/fstab 36219918Snwhitehornrm -f ${tempfile} 37219918Snwhitehornmakefs -B big ${tempfile} ${1} 38219918Snwhitehornif [ $? -ne 0 ]; then 39219918Snwhitehorn echo "makefs failed" 40219918Snwhitehorn exit 1 41219918Snwhitehornfi 42219918Snwhitehornrm ${1}/etc/fstab 43219918Snwhitehorn 44271633Semastemkimg -s apm -p freebsd-boot:=${1}/boot/boot1.hfs -p freebsd-ufs/FreeBSD_Install:=${tempfile} -o ${2} 45219918Snwhitehorn 46219918Snwhitehornrm -f ${tempfile} 47219918Snwhitehorn 48