]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - release/amd64/make-memstick.sh
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / release / amd64 / make-memstick.sh
1 #!/bin/sh
2 #
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 ...).
7 #
8 # Usage: make-memstick.sh <directory tree> <image filename>
9 #
10 # $FreeBSD$
11 #
12
13 PATH=/bin:/usr/bin:/sbin:/usr/sbin
14 export PATH
15
16 if [ $# -ne 2 ]; then
17   echo "make-memstick.sh /path/to/directory /path/to/image/file"
18   exit 1
19 fi
20
21 if [ ! -d ${1} ]; then
22   echo "${1} must be a directory"
23   exit 1
24 fi
25
26 if [ -e ${2} ]; then
27   echo "won't overwrite ${2}"
28   exit 1
29 fi
30
31 echo '/dev/ufs/FreeBSD_Install / ufs ro,noatime 1 1' > ${1}/etc/fstab
32 makefs -B little -o label=FreeBSD_Install ${2} ${1}
33 if [ $? -ne 0 ]; then
34   echo "makefs failed"
35   exit 1
36 fi
37 rm ${1}/etc/fstab
38
39 unit=`mdconfig -a -t vnode -f ${2}`
40 if [ $? -ne 0 ]; then
41   echo "mdconfig failed"
42   exit 1
43 fi
44 gpart create -s BSD ${unit}
45 gpart bootcode -b ${1}/boot/boot ${unit}
46 gpart add -t freebsd-ufs ${unit}
47 mdconfig -d -u ${unit}
48