3 # $FreeBSD: src/release/scripts/doFS.sh,v 1.24.2.12 2003/04/04 11:58:05 ru Exp $
4 # $DragonFly: src/release/scripts/Attic/doFS.sh,v 1.3 2003/08/25 20:17:25 rob Exp $
11 if [ "$1" = "-s" ]; then
25 BOOT1="-b ${RD}/trees/bin/boot/boot1"
26 if [ -f "${RD}/trees/bin/boot/boot2" ]; then
27 BOOT2="-s ${RD}/trees/bin/boot/boot2"
35 if [ "x$VNDEVICE" = "x" ] ; then
38 u=`expr $VNDEVICE : 'vn\([0-9]*\)' || true`
42 mknod /dev/vnn${u} c 43 `expr 65538 + $u '*' 8`
43 ln -s /dev/vnn${u} /dev/rvnn${u}
44 mknod /dev/vnn${u}c c 43 `expr 2 + $u '*' 8`
45 ln -s /dev/vnn${u}c /dev/rvnn${u}c
51 umount /dev/${VNDEVICE} 2>/dev/null || true
52 umount ${MNT} 2>/dev/null || true
53 vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true
55 dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null
57 vnconfig -s labels -c /dev/r${VNDEVICE} ${FSIMG}
58 disklabel -w -B ${BOOT1} ${BOOT2} ${VNDEVICE} ${FSLABEL}
59 newfs -i ${FSINODE} -o space -m 0 /dev/r${VNDEVICE}c
61 mount /dev/${VNDEVICE}c ${MNT}
63 if [ -d ${FSPROTO} ]; then
64 (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT})
66 cp -p ${FSPROTO} ${MNT}
71 set `df -ki ${MNT} | tail -1`
74 vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true
76 echo "*** Filesystem is ${FSSIZE} K, $4 left"
77 echo "*** ${FSINODE} bytes/inode, $7 left"
78 if [ "${do_size}" ]; then
79 echo ${FSSIZE} > ${FSIMG}.size
92 if [ "x${MDDEVICE}" != "x" ] ; then
93 umount /dev/${MDDEVICE} 2>/dev/null || true
94 umount ${MNT} 2>/dev/null || true
95 mdconfig -d -u ${MDDEVICE} 2>/dev/null || true
98 dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null
100 MDDEVICE=`mdconfig -a -t vnode -f ${FSIMG}`
101 if [ ! -c /dev/${MDDEVICE} ] ; then
102 if [ -f /dev/MAKEDEV ] ; then
103 ( cd /dev && sh MAKEDEV ${MDDEVICE} )
105 echo "No /dev/$MDDEVICE and no MAKEDEV" 1>&2
109 disklabel -w -B ${BOOT1} ${BOOT2} ${MDDEVICE} ${FSLABEL}
110 newfs -i ${FSINODE} -o space -m 0 /dev/${MDDEVICE}c
112 mount /dev/${MDDEVICE}c ${MNT}
114 if [ -d ${FSPROTO} ]; then
115 (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT})
117 cp -p ${FSPROTO} ${MNT}
122 set `df -ki ${MNT} | tail -1`
125 mdconfig -d -u ${MDDEVICE} 2>/dev/null || true
127 echo "*** Filesystem is ${FSSIZE} K, $4 left"
128 echo "*** ${FSINODE} bytes/inode, $7 left"
129 if [ "${do_size}" ]; then
130 echo ${FSSIZE} > ${FSIMG}.size
141 if [ ! -f "${RD}/trees/bin/boot/boot" ]; then
142 cp -p ${RD}/trees/bin/boot/boot1 ${RD}/trees/bin/boot/boot
143 if [ -f "${RD}/trees/bin/boot/boot2" ]; then
144 cat ${RD}/trees/bin/boot/boot2 >> \
145 ${RD}/trees/bin/boot/boot
148 BOOT1="-b ${RD}/trees/bin/boot/boot"