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...
This commit is contained in:
parent
ce723857c4
commit
1117d2af7a
@ -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,9 +74,20 @@ 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 128 ] ; then
|
||||
echo "Increasing bytes per inode"
|
||||
FSINODE=`expr ${FSINODE} + 8192`
|
||||
continue
|
||||
fi
|
||||
if [ $4 -gt 32 ] ; then
|
||||
echo "Reducing size"
|
||||
FSSIZE=`expr ${FSSIZE} - 4`
|
||||
FSINODE=`expr ${FSINODE} - 1024`
|
||||
continue
|
||||
fi
|
||||
if [ $7 -gt 64 ] ; then
|
||||
@ -78,17 +95,12 @@ do
|
||||
FSINODE=`expr ${FSINODE} + 8192`
|
||||
continue
|
||||
fi
|
||||
if [ $4 -gt 8 ] ; then
|
||||
echo "Reducing size"
|
||||
FSSIZE=`expr ${FSSIZE} - 4`
|
||||
FSINODE=`expr ${FSINODE} - 1024`
|
||||
continue
|
||||
fi
|
||||
if [ $7 -gt 32 ] ; then
|
||||
echo "Increasing bytes per inode"
|
||||
FSINODE=`expr ${FSINODE} + 8192`
|
||||
continue
|
||||
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
|
||||
|
@ -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,9 +74,20 @@ 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 128 ] ; then
|
||||
echo "Increasing bytes per inode"
|
||||
FSINODE=`expr ${FSINODE} + 8192`
|
||||
continue
|
||||
fi
|
||||
if [ $4 -gt 32 ] ; then
|
||||
echo "Reducing size"
|
||||
FSSIZE=`expr ${FSSIZE} - 4`
|
||||
FSINODE=`expr ${FSINODE} - 1024`
|
||||
continue
|
||||
fi
|
||||
if [ $7 -gt 64 ] ; then
|
||||
@ -78,17 +95,12 @@ do
|
||||
FSINODE=`expr ${FSINODE} + 8192`
|
||||
continue
|
||||
fi
|
||||
if [ $4 -gt 8 ] ; then
|
||||
echo "Reducing size"
|
||||
FSSIZE=`expr ${FSSIZE} - 4`
|
||||
FSINODE=`expr ${FSINODE} - 1024`
|
||||
continue
|
||||
fi
|
||||
if [ $7 -gt 32 ] ; then
|
||||
echo "Increasing bytes per inode"
|
||||
FSINODE=`expr ${FSINODE} + 8192`
|
||||
continue
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user