make-memstick.sh revision 283307
150472Speter#!/bin/sh
249864Sobrien#
318390Speter# This script generates a "memstick image" (image that can be copied to a
4169718Skan# USB memory stick) from a directory tree.  Note that the script does not
51823Sphk# clean up after itself very well for error conditions on purpose so the
6169718Skan# problem can be diagnosed (full filesystem most likely but ...).
745299Sobrien#
8169718Skan# Usage: make-memstick.sh <directory tree> <image filename>
9136910Sru#
1056513Sobrien# $FreeBSD: head/release/i386/make-memstick.sh 283307 2015-05-23 00:32:58Z gjb $
11169718Skan#
12169718Skan
13169718SkanPATH=/bin:/usr/bin:/sbin:/usr/sbin
1418390Speterexport PATH
15169718Skan
16169718Skanif [ $# -ne 2 ]; then
17169718Skan	echo "make-memstick.sh /path/to/directory /path/to/image/file"
18169718Skan	exit 1
19169718Skanfi
20169718Skan
21169718Skanif [ ! -d ${1} ]; then
22169718Skan	echo "${1} must be a directory"
23169718Skan	exit 1
24169718Skanfi
25259406Spfg
26169718Skanif [ -e ${2} ]; then
27169718Skan	echo "won't overwrite ${2}"
28169718Skan	exit 1
29169718Skanfi
30169718Skan
31169718Skanecho '/dev/ufs/FreeBSD_Install / ufs ro,noatime 1 1' > ${1}/etc/fstab
32169718Skanmakefs -B little -o label=FreeBSD_Install ${2}.part ${1}
33169718Skanif [ $? -ne 0 ]; then
34169718Skan	echo "makefs failed"
35169718Skan	exit 1
36169718Skanfi
37169718Skanrm ${1}/etc/fstab
38169718Skan
39169718Skanmkimg -s gpt -b ${1}/boot/pmbr -p freebsd-boot:=${1}/boot/gptboot -p freebsd-ufs:=${2}.part -p freebsd-swap::1M -o ${2}
40169718Skanrm ${2}.part
41169718Skan
42169718Skan