1204044Skensmith#!/bin/sh 2204044Skensmith# 3204044Skensmith# This script generates a "memstick image" (image that can be copied to a 4204044Skensmith# USB memory stick) from a directory tree. Note that the script does not 5204044Skensmith# clean up after itself very well for error conditions on purpose so the 6264922Sgjb# problem can be diagnosed (full filesystem most likely but ...). 7204044Skensmith# 8204044Skensmith# Usage: make-memstick.sh <directory tree> <image filename> 9204044Skensmith# 10204044Skensmith# $FreeBSD: stable/11/release/i386/make-memstick.sh 333410 2018-05-09 14:38:07Z emaste $ 11204044Skensmith# 12204044Skensmith 13323476Semasteset -e 14323476Semaste 15204044SkensmithPATH=/bin:/usr/bin:/sbin:/usr/sbin 16204044Skensmithexport PATH 17204044Skensmith 18204044Skensmithif [ $# -ne 2 ]; then 19264933Sgjb echo "make-memstick.sh /path/to/directory /path/to/image/file" 20264933Sgjb exit 1 21204044Skensmithfi 22204044Skensmith 23204044Skensmithif [ ! -d ${1} ]; then 24264933Sgjb echo "${1} must be a directory" 25264933Sgjb exit 1 26204044Skensmithfi 27204044Skensmith 28204044Skensmithif [ -e ${2} ]; then 29264933Sgjb echo "won't overwrite ${2}" 30264933Sgjb exit 1 31204044Skensmithfi 32204044Skensmith 33264922Sgjbecho '/dev/ufs/FreeBSD_Install / ufs ro,noatime 1 1' > ${1}/etc/fstab 34293188Sgjbecho 'root_rw_mount="NO"' > ${1}/etc/rc.conf.local 35324395Semastemakefs -B little -o label=FreeBSD_Install -o version=2 ${2}.part ${1} 36219856Snwhitehornrm ${1}/etc/fstab 37293188Sgjbrm ${1}/etc/rc.conf.local 38204044Skensmith 39333410Semastemkimg -s mbr \ 40333410Semaste -b ${1}/boot/mbr \ 41333410Semaste -p freebsd:-"mkimg -s bsd -b ${1}/boot/boot -p freebsd-ufs:=${2}.part" \ 42332639Semaste -o ${2} 43283307Sgjbrm ${2}.part 44204044Skensmith 45