3 # $FreeBSD: src/release/scripts/doFS.sh,v 1.24.2.12 2003/04/04 11:58:05 ru Exp $
10 if [ "$1" = "-s" ]; then
24 BOOT1="-b ${RD}/trees/bin/boot/boot1"
25 if [ -f "${RD}/trees/bin/boot/boot2" ]; then
26 BOOT2="-s ${RD}/trees/bin/boot/boot2"
34 if [ "x$VNDEVICE" = "x" ] ; then
37 u=`expr $VNDEVICE : 'vn\([0-9]*\)' || true`
41 mknod /dev/rvnn${u} c 43 `expr 65538 + $u '*' 8`
42 mknod /dev/rvnn${u}c c 43 `expr 2 + $u '*' 8`
43 mknod /dev/vnn${u} b 15 `expr 65538 + $u '*' 8`
44 mknod /dev/vnn${u}c b 15 `expr 2 + $u '*' 8`
50 umount /dev/${VNDEVICE} 2>/dev/null || true
51 umount ${MNT} 2>/dev/null || true
52 vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true
54 dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null
56 vnconfig -s labels -c /dev/r${VNDEVICE} ${FSIMG}
57 disklabel -w -B ${BOOT1} ${BOOT2} ${VNDEVICE} ${FSLABEL}
58 newfs -i ${FSINODE} -o space -m 0 /dev/r${VNDEVICE}c
60 mount /dev/${VNDEVICE}c ${MNT}
62 if [ -d ${FSPROTO} ]; then
63 (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT})
65 cp -p ${FSPROTO} ${MNT}
70 set `df -ki ${MNT} | tail -1`
73 vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true
75 echo "*** Filesystem is ${FSSIZE} K, $4 left"
76 echo "*** ${FSINODE} bytes/inode, $7 left"
77 if [ "${do_size}" ]; then
78 echo ${FSSIZE} > ${FSIMG}.size
91 if [ "x${MDDEVICE}" != "x" ] ; then
92 umount /dev/${MDDEVICE} 2>/dev/null || true
93 umount ${MNT} 2>/dev/null || true
94 mdconfig -d -u ${MDDEVICE} 2>/dev/null || true
97 dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null
99 MDDEVICE=`mdconfig -a -t vnode -f ${FSIMG}`
100 if [ ! -c /dev/${MDDEVICE} ] ; then
101 if [ -f /dev/MAKEDEV ] ; then
102 ( cd /dev && sh MAKEDEV ${MDDEVICE} )
104 echo "No /dev/$MDDEVICE and no MAKEDEV" 1>&2
108 disklabel -w -B ${BOOT1} ${BOOT2} ${MDDEVICE} ${FSLABEL}
109 newfs -i ${FSINODE} -o space -m 0 /dev/${MDDEVICE}c
111 mount /dev/${MDDEVICE}c ${MNT}
113 if [ -d ${FSPROTO} ]; then
114 (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT})
116 cp -p ${FSPROTO} ${MNT}
121 set `df -ki ${MNT} | tail -1`
124 mdconfig -d -u ${MDDEVICE} 2>/dev/null || true
126 echo "*** Filesystem is ${FSSIZE} K, $4 left"
127 echo "*** ${FSINODE} bytes/inode, $7 left"
128 if [ "${do_size}" ]; then
129 echo ${FSSIZE} > ${FSIMG}.size
140 if [ ! -f "${RD}/trees/bin/boot/boot" ]; then
141 cp -p ${RD}/trees/bin/boot/boot1 ${RD}/trees/bin/boot/boot
142 if [ -f "${RD}/trees/bin/boot/boot2" ]; then
143 cat ${RD}/trees/bin/boot/boot2 >> \
144 ${RD}/trees/bin/boot/boot
147 BOOT1="-b ${RD}/trees/bin/boot/boot"