--- elwix/config/etc/default/rc 2017/06/28 11:59:10 1.3.2.4 +++ elwix/config/etc/default/rc 2017/10/08 01:38:48 1.3.2.6 @@ -2,7 +2,7 @@ # # Boot startup script for ELWIX BaseFS ... # -# $Id: rc,v 1.3.2.4 2017/06/28 11:59:10 misho Exp $ +# $Id: rc,v 1.3.2.6 2017/10/08 01:38:48 misho Exp $ stty status '^T' @@ -26,10 +26,12 @@ FRMSIZE2="21m" FRMFILE2="elwix-firmware2.sys" FRMPATH="/elwix" +FRM2PATH="/elwix/pkg" FIT2CF="/dev/ufs/fit2cf" CFDIR="/elwix/cf" ELWIX2="/dev/ufs/elwix2" +ELWIX="/dev/ufs/elwix" umask 022 @@ -44,17 +46,17 @@ boot_elwix2() { echo " BaseFS: Loading ELWIX secondary firmware" - mdmfs -s $FRMSIZE2 -S -n -m0 -oasync $FRMDEV2 /elwix/pkg + mdmfs -s $FRMSIZE2 -S -n -m0 -oasync $FRMDEV2 $FRM2PATH if test $? -ne 0; then failed_sysvol "to mount firmware image " $FRMFILE2 fi - cd /elwix/pkg + cd $FRM2PATH pax -r -z -pe -f $FRMPATH/$FRMFILE2 if test $? -ne 0; then failed_sysvol "to load firmware image " $FRMFILE2 fi cd - - mount -ur /elwix/pkg || failed_sysvol mount "secondary firmware" + mount -ur $FRM2PATH } # @@ -66,14 +68,22 @@ echo "ELWIX>>> Firmware BaseFS boot stage ..." if test -c $ELWIX2; then BOOTSLICE=`kenv currdev` if test "${BOOTSLICE#disk0}" != "a:"; then - mount -o ro $ELWIX2 / - else - mount / + ELWIX=$ELWIX2 fi -else - mount / fi +if ! mount -o ro $ELWIX $FRMPATH; then + umount $FRMPATH + fsck -y $ELWIX 1>/dev/null 2>&1 + if ! mount -o ro $ELWIX $FRMPATH; then + umount -f $FRMPATH + fsck -f -y $ELWIX 1>/dev/null 2>&1 + if ! mount -o ro $ELWIX $FRMPATH; then + failed_sysvol mount "system volume" + fi + fi +fi + if ! mount -a; then umount -A fsck -y 1>/dev/null 2>&1 @@ -87,10 +97,14 @@ if ! mount -a; then fi if test -c "$FIT2CF" -a -d "$CFDIR"; then - echo " BaseFS: Mount ELWIX flash volume" - mount -o ro $FIT2CF $CFDIR || \ - fsck -y -tufs $FIT2CF 1>/dev/null 2>&1 && mount -o ro $FIT2CF $CFDIR || \ - failed_sysvol mount "flash volume" + echo " RootFS: Mount ELWIX flash volume" + if ! mount -o ro $FIT2CF $CFDIR; then + umount $CFDIR + fsck -y -tufs $FIT2CF 1>/dev/null 2>&1 + if ! mount -o ro $FIT2CF $CFDIR; then + echo "Error:: mount of $FIT2CF to $CFDIR failed!" + fi + fi fi if test -r "$FRMPATH/$FRMFILE2"; then