#!/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."