#!/bin/sh # # (C)`10 by Michael Pounov # 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