--- elwix/config/etc/uboot/fit2cf.sh 2014/01/23 09:30:22 1.1 +++ elwix/config/etc/uboot/fit2cf.sh 2014/09/15 19:06:46 1.2 @@ -0,0 +1,62 @@ +#!/bin/sh +# +# (C)`10 by Michael Pounov +# ELWIX grow disklabel sectors and fit-to-flash whole unused space +# +# $Id: fit2cf.sh,v 1.2 2014/09/15 19:06:46 misho Exp $ +# + +echo -n "++++ Check existence of fit2cf device ... " +if [ -c /dev/ufs/fit2cf ]; then + echo "OK" + exit 0 +else + echo "Not found!" +fi + +if [ -z $1 ]; then + echo "Not specified disk drive ..." + exit 1 +else + DEV=$(echo $1 | awk '{ + if (!($1 ~ /^\//)) + printf("/dev/%s", $1); + else + printf("%s", $1); + }') + if ! [ -c $DEV ]; then + echo "Wrong device $DEV !!!" + exit 1 + fi +fi + +echo "Fit slice ${DEV}e to whole size of $DEV ..." +DEVSIZE=`diskinfo $DEV | awk '{ printf("%s", $4); }'` +disklabel $DEV 2>&- | awk -vdevsize=$DEVSIZE '($1 == "c:") { + for (i = 1; i <= NF; i++) + printf("%s ", (i == 2) ? devsize : $i); + printf("\n"); + next; + } + ($1 == "a:") { + for (i = 1; i <= NF; i++) { + if (i == 2) + offset = $i + $3 + printf("%s ", $i); + } + printf("\n"); + printf("e: %d %d unused 0 0 0\n", devsize - offset, offset); + next; + } + { printf("%s\n", $0); }' >/tmp/disklabel.tmp + +sysctl kern.geom.debugflags=16 +disklabel -R $DEV /tmp/disklabel.tmp +newfs -b8192 -f1024 -m0 -Lfit2cf ${DEV}e +sysctl kern.geom.debugflags=0 + +rm -f /tmp/disklabel.tmp +echo +echo " Now will restart system to activate new schema !!!" +echo +reboot