File:  [ELWIX - Embedded LightWeight unIX -] / elwix / config / etc / default / fit2cf.sh
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Jul 5 23:43:00 2011 UTC (13 years ago) by misho
Branches: misho
CVS tags: start, elwix2_6, elwix2_3, elwix2_2, elwix2_1, elwix2_0, elwix1_9_mips, elwix1_9, elwix1_8, elwix1_7, elwix1_6, elwix1_5, elwix1_4, Patch1, ELWIX2_5, ELWIX2_2p0, ELWIX2_1, ELWIX2_0, ELWIX1_9, ELWIX1_8, ELWIX1_7, ELWIX1_6, ELWIX1_5
ELWIX project

#!/bin/sh
#
# (C)`10 by Michael Pounov <misho@elwix.org>
#  ELWIX grow disklabel sectors and fit-to-flash whole unused space
#
# $Id: fit2cf.sh,v 1.1.1.1 2011/07/05 23:43:00 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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>