version 1.1, 2014/01/23 09:30:22
|
version 1.1.2.1, 2014/01/23 09:30:22
|
Line 0
|
Line 1
|
|
#!/bin/sh |
|
# |
|
# (C)`10 by Michael Pounov <misho@elwix.org> |
|
# ELWIX grow disklabel sectors and fit-to-flash whole unused space |
|
# |
|
# $Id$ |
|
# |
|
|
|
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 |