--- elwix/install2img.sh 2011/07/21 14:26:08 1.1 +++ elwix/install2img.sh 2011/10/18 09:02:05 1.2 @@ -0,0 +1,153 @@ +#!/bin/sh +# +# ELWIX install script for image +# +# (C) AITNET ltd - Sofia/Bulgaria +# by Michael Pounov +# +# $Id: install2img.sh,v 1.2 2011/10/18 09:02:05 misho Exp $ +# + +[ -r ./config/rc.elwix ] && . ./config/rc.elwix +if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then + echo + echo "ELWIX project is not configured !?!" + echo + exit 1 +fi + +if [ "${USER}" != "root" ]; then + echo + echo "ELWIX project is not configured - install must build under root !?!" + echo + exit 1 +fi + +MNT="/mnt" +DEV="" + +mkdevice() +{ + echo "+++ Make prepare file image ... " + rm -f $IMG + dd if=/dev/zero of=${IMG} bs=1024 count=${IMG_SIZE} + + echo -n "+++ Assign memory device to image ... " + DEV=`mdconfig -a -tvnode -f ${IMG}` + echo $DEV + + if [ -z "$DEV" ]; then + rm -f $IMG + exit 3 + fi +} + +initdev() +{ + echo -n "+++ Init device label ... " + if disklabel -w $1; then + echo "OK" + else + echo "Failed!" + exit 3 + fi + + if newfs -b8192 -f1024 -m0 -Lelwix ${1}a; then + echo "+++ Formatting ... OK" + else + echo "+++ Formatting ... Failed!" + exit 3 + fi +} + +mountdev() +{ + echo -n "+++ Mount device $1 to $MNT ... " + if mount /dev/${1}a $MNT; then + echo "OK" + else + echo "Failed!" + exit 4 + fi +} + +umountdev() +{ + echo -n "+++ Unmount $MNT ... " + if umount $MNT; then + echo "OK" + else + echo "Failed!" + exit 4 + fi +} + +enablejfs() +{ + if tunefs -n enable -j enable ${1}a; then + echo "Start FS Journaling ... OK" + else + echo "Start FS Journaling ... Failed!" + exit 6 + fi +} + +boot2dev() +{ + echo -n "+++ Installboot to device $1 ... " + if disklabel -B -b ${WORLD}/boot/boot -m ${TARGET} ${1}; then + echo "OK" + else + echo "Failed!" + exit 7 + fi +} + +install2() +{ + echo -n "+++ Install ELWIX OS from $1 into $MNT ... " + if tar -xzvpf $1 -C $MNT; then + echo "OK" + else + echo "Failed!" + exit 5 + fi +} + +cleandev() +{ + mdconfig -d -u $1 +} + +gencksum() +{ + echo -n "+++ Generate check sums ... " + md5 ${IMG} >${MD5CHK} + sha1 ${IMG} >${SHA1CHK} + echo "OK" +} + +### main() + +if [ ! -r ${1:-"${REL}/${OS}"} ]; then + echo + echo "Error:: ELWIX OS file not found!" + echo + exit 2 +fi + +mkdevice + +initdev $DEV + +mountdev $DEV +install2 ${1:-"$REL/$OS"} +umountdev + +#enablejfs $DEV +boot2dev $DEV + +cleandev $DEV + +gencksum +echo "ELWIX OS image complete."