diff options
author | ru <ru@FreeBSD.org> | 2004-01-28 22:44:17 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2004-01-28 22:44:17 +0000 |
commit | 7fee131f30acc3400b4469561c2d14223c1f65bb (patch) | |
tree | e934d9ce97c31ce495503077cef95840caece5cf /release | |
parent | 0d118a298f7792728e4709f9d9de88d015b2a852 (diff) | |
download | FreeBSD-src-7fee131f30acc3400b4469561c2d14223c1f65bb.zip FreeBSD-src-7fee131f30acc3400b4469561c2d14223c1f65bb.tar.gz |
- Removed more bitrot (the "while" loops).
- Factored out common parts of dofs_vn() and dofs_md().
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/doFS.sh | 82 |
1 files changed, 28 insertions, 54 deletions
diff --git a/release/scripts/doFS.sh b/release/scripts/doFS.sh index 246c59c..b61c7ed 100644 --- a/release/scripts/doFS.sh +++ b/release/scripts/doFS.sh @@ -30,28 +30,22 @@ if [ ${FSSIZE} -eq 0 -a ${FSLABEL} = "auto" ]; then fi dofs_vn () { - if [ "x$VNDEVICE" = "x" ] ; then - VNDEVICE=vn0 - fi - u=`expr $VNDEVICE : 'vn\([0-9]*\)' || true` - VNDEVICE=vnn$u - - rm -f /dev/*vnn* - mknod /dev/rvnn${u} c 43 `expr 65538 + $u '*' 8` - mknod /dev/rvnn${u}c c 43 `expr 2 + $u '*' 8` - mknod /dev/vnn${u} b 15 `expr 65538 + $u '*' 8` - mknod /dev/vnn${u}c b 15 `expr 2 + $u '*' 8` - - while true - do - rm -f ${FSIMG} + if [ "x$VNDEVICE" = "x" ] ; then + VNDEVICE=vn0 + fi + u=`expr $VNDEVICE : 'vn\([0-9]*\)' || true` + VNDEVICE=vnn$u + + rm -f /dev/*vnn* + mknod /dev/rvnn${u} c 43 `expr 65538 + $u '*' 8` + mknod /dev/rvnn${u}c c 43 `expr 2 + $u '*' 8` + mknod /dev/vnn${u} b 15 `expr 65538 + $u '*' 8` + mknod /dev/vnn${u}c b 15 `expr 2 + $u '*' 8` umount /dev/${VNDEVICE} 2>/dev/null || true umount ${MNT} 2>/dev/null || true vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true - dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null - vnconfig -s labels -c /dev/r${VNDEVICE} ${FSIMG} trap "umount ${MNT}; vnconfig -u /dev/r${VNDEVICE}; rm -f /dev/*vnn*" EXIT @@ -60,36 +54,15 @@ dofs_vn () { newfs -i ${FSINODE} -o space -m 0 /dev/r${VNDEVICE}c mount /dev/${VNDEVICE}c ${MNT} - - if [ -d ${FSPROTO} ]; then - (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT}) - else - cp -p ${FSPROTO} ${MNT} - fi - - df -ki ${MNT} - - set `df -ki ${MNT} | tail -1` - - echo "*** Filesystem is ${FSSIZE} K, $4 left" - echo "*** ${FSINODE} bytes/inode, $7 left" - break; - done } dofs_md () { - while true - do - rm -f ${FSIMG} - if [ "x${MDDEVICE}" != "x" ] ; then umount /dev/${MDDEVICE} 2>/dev/null || true umount ${MNT} 2>/dev/null || true mdconfig -d -u ${MDDEVICE} 2>/dev/null || true fi - dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null - MDDEVICE=`mdconfig -a -t vnode -f ${FSIMG}` if [ ! -c /dev/${MDDEVICE} ] ; then echo "No /dev/$MDDEVICE" 1>&2 @@ -102,30 +75,18 @@ dofs_md () { newfs -O1 -i ${FSINODE} -o space -m 0 /dev/${MDDEVICE}c mount /dev/${MDDEVICE}c ${MNT} - - if [ -d ${FSPROTO} ]; then - (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT}) - else - cp -p ${FSPROTO} ${MNT} - fi - - df -ki ${MNT} - - set `df -ki ${MNT} | tail -1` - - echo "*** Filesystem is ${FSSIZE} K, $4 left" - echo "*** ${FSINODE} bytes/inode, $7 left" - break; - done } +rm -f ${FSIMG} +dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null + # # We don't have any bootblocks on ia64. Note that -B implies -r, # so we have to specifically specify -r when we don't have -B. # bsdlabel fails otherwise. # case `uname -r` in -[1-4].*) +4.*) if [ -f "${RD}/trees/base/boot/boot1" ]; then BOOT="-B -b ${RD}/trees/base/boot/boot1" if [ -f "${RD}/trees/base/boot/boot2" ]; then @@ -145,3 +106,16 @@ case `uname -r` in dofs_md ;; esac + +if [ -d ${FSPROTO} ]; then + (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT}) +else + cp -p ${FSPROTO} ${MNT} +fi + +df -ki ${MNT} + +set `df -ki ${MNT} | tail -1` + +echo "*** File system is ${FSSIZE} K, $4 left" +echo "*** ${FSINODE} bytes/inode, $7 left" |