diff options
author | joerg <joerg@FreeBSD.org> | 1996-01-21 17:24:54 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 1996-01-21 17:24:54 +0000 |
commit | 859c177be5724fd77b5c08b0f0c5baf010dfa673 (patch) | |
tree | e69c94e0a9dcb96b8ab8f68accf41a487539dd53 /release/scripts | |
parent | db9288fd24b66f5a0b69155f933ae57f866a5be6 (diff) | |
download | FreeBSD-src-859c177be5724fd77b5c08b0f0c5baf010dfa673.zip FreeBSD-src-859c177be5724fd77b5c08b0f0c5baf010dfa673.tar.gz |
Make the reduction algorithm to tune the file system size less
aggressive, in order to avoid /mnt: file system full problems.
Introduce a deadlock counter.
Turn off echoing again, it's cluttering the screen/log.
Gross hack to avoid the `vn0: invalid primary partition table: no magic'
warning.
Seems that doFS.sh is now doing the job...
Diffstat (limited to 'release/scripts')
-rw-r--r-- | release/scripts/doFS.sh | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/release/scripts/doFS.sh b/release/scripts/doFS.sh index 6422ac8..4d58e46 100644 --- a/release/scripts/doFS.sh +++ b/release/scripts/doFS.sh @@ -1,7 +1,8 @@ : -set -ex +#set -ex VNDEVICE=vn0 +export BLOCKSIZE=512 RD=$1 ; shift MNT=$1 ; shift @@ -10,6 +11,8 @@ FSPROTO=$1 ; shift FSINODE=$1 ; shift FSLABEL=$1 ; shift +deadlock=20 + while true do rm -f fs-image @@ -25,6 +28,9 @@ do vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true dd of=fs-image if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null + # this suppresses the `invalid primary partition table: no magic' + awk 'BEGIN {printf "%c%c", 85, 170}' |\ + dd of=fs-image obs=1 seek=510 conv=notrunc 2>/dev/null vnconfig -s labels -c /dev/r${VNDEVICE} fs-image @@ -68,27 +74,33 @@ do echo ">>> Filesystem is ${FSSIZE} K, $4 left" echo ">>> ${FSINODE} bytes/inode, $7 left" echo ">>> `expr ${FSSIZE} \* 1024 / ${FSINODE}`" - if [ $4 -gt 64 ] ; then + if [ $4 -gt 128 ] ; then echo "Reducing size" - FSSIZE=`expr ${FSSIZE} - $4 + 8` + FSSIZE=`expr ${FSSIZE} - $4 / 2` continue fi - if [ $7 -gt 64 ] ; then + if [ $7 -gt 128 ] ; then echo "Increasing bytes per inode" FSINODE=`expr ${FSINODE} + 8192` continue fi - if [ $4 -gt 8 ] ; then + if [ $4 -gt 32 ] ; then echo "Reducing size" FSSIZE=`expr ${FSSIZE} - 4` FSINODE=`expr ${FSINODE} - 1024` continue fi - if [ $7 -gt 32 ] ; then + if [ $7 -gt 64 ] ; then echo "Increasing bytes per inode" FSINODE=`expr ${FSINODE} + 8192` continue fi + if [ $deadlock -eq 0 ] ; then + echo "Avoiding deadlock, giving up" + echo ${FSSIZE} > fs-image.size + break + fi + deadlock=`expr $deadlock - 1` echo ${FSSIZE} > fs-image.size break; done |