#!/bin/bash export TERM=vt100 MVHOSTNAME=apheleia export MYTH_RUN_STATUS="1" . /etc/profile TEMP_TEMPLATES=/tmp/templates disk=$2 rootfs=$3 rootsize=$4 datafs=$5 datasize=$6 swapsize=$7 mountpoint="/new_boot" run=$MV_ROOT/bin/install_functions.sh . /etc/systemconfig 2>/dev/null . $MV_ROOT/bin/networkconfig.sh CMDLINE=$(cat /proc/cmdline) BACKUPFILE="/myth/backup/mythconverg.sql.gz" progress () { mypercent=`echo "$1" | cut -d. -f1` if [ x$mypercent = x ] then echo "" > /tmp/.install_percent else echo "${mypercent}% Complete" > /tmp/.install_percent fi } case $1 in full_install_it ) #mv_install.py --rootdisk=$disk --rootfs=$rootfs --rootsize=$rootsize --datafs=$datafs --datasize=$datasize --datadisk=$disk --swapsize=$swapsize -c full_install mv_install.py -c full_install rc=$? echo "mv_install.py exit code $rc" if [ $rc != 0 ] then echo "mv_install error" >> /tmp/.install_error fi exit $rc ;; NETBOOT) echo "-----------------------------------------------------------------------3-----" netboot-full_install ;; find_update) mv_install.py --rootdisk=$disk -c find_upgrade #mv_install.py -c find_upgrade ;; upgrade_it) install_proxy.sh network_check_it setup_network #mv_install.py --rootdisk=$disk --rootfs=$rootfs -c upgrade mv_install.py -c upgrade ;; disk_model_it) model="unknown" size="xxx" case $2 in h* ) model=`cat /proc/ide/$2/model` ;; s*) model=`sginfo /dev/$2|grep Product|awk ' { print $2 } '` ;; esac size=`parted /dev/$2 print |grep Disk|awk ' { print $3 } ' ` echo ""$model" $size " >/tmp/model ;; network_check_it) #Should never return from check_network case $2 in setup_network) vnc_check install_network_setup ;; check_self) #myipdefault=`ifconfig | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'` myipdefault=`ip addr show $default_interface| grep inet |grep -v inet6 | cut -d/ -f1 | awk '{ print $2}'` echo "network check myself" ifconfig ping -c 1 $myipdefault if [ ! $? = 0 ] then exit 3 #can't ping yourself fi ;; check_gw) #check gateway rc=0 echo "network check gateway" /sbin/route -n mygwdefault=`/sbin/route -n |grep $default_interface|grep UG|awk '{ print $2}'` echo "Default gateway seems to be $mygwdefault" if [ ! x$mygwdefault = x ] then #sleep 2 for i in `seq 10` do ping -c 1 $mygwdefault if [ $? = 0 ] then break rc=1 fi done if [ rc = 0 ] then exit 4 fi fi ;; check_ns) #check nameserver echo " network check nameserver" mydns=`cat /etc/resolv.conf|grep nameserver|head -1|awk '{ print $2}'` ping -c 1 $mydns echo " DNS server is $mydns" if [ ! $? = 0 ] then exit 5 fi ;; check_names) echo "network check resolve names" host google.com if [ ! $? = 0 ] then exit 6 fi ;; host_names) #if host is found, then check to see if it's online #if hoip matchs my ip assume it's ok echo "network check my hostname $hostname" echo "Check of hostname with host: $hout" host $hostname status=$? hout=`host $hostname|head -n1` hoip=`echo $hout|awk '{print $4}'` if [ $hoip = found: ] then status=1 fi if [ $hoip = "out;" ] then #;; connection timed out; no servers could be reached echo "DNS servers not found" status=1 fi if [ $status = 0 ] then unkownhost=`host unkown.linhes.org |head -n1 ` unkownhostip=`echo $unkownhost |awk '{print $4}'` fi #found host, now grab the ip if [ $status = 0 ] then hoip=`echo $hout|awk '{print $4}'` /sbin/ifconfig -a |grep -q $hoip if [ $? = 0 ] then echo "DNS ip matches on of my ips $hoip" status=0 else if [ $unkownhostip = $hoip ] then echo "Bad DNS returning false hits" echo "Assuming hostname is OK" echo "DNS unknown: $unkownhostip" echo " HOSTDNS: $hoip " echo " HOST: " /sbin/ifconfig -a |grep "inet addr" status=0 else echo "IP in DNS but doesn't match mine, hostname is not safe to use" echo " hout: $hout" echo " DNS unknown: $unkownhostip" echo " DNS IP:$hoip" echo " HOST: " /sbin/ifconfig -a |grep "inet addr" status=7 fi fi else echo "Couldn't find hostname in DNS, must be safe to use" status=0 fi exit $status ;; esac exit 0 ;; * ) if [ -f /tmp/.install_state ] then state=`cat /tmp/.install_state` else state=" " fi if [ x"${state}" = "xConfiguring system" ] then progress "" else if [ -f /tmp/.startsize.io ] then . /tmp/.startsize.io #finding the drive ddrive=`df | grep $mountpoint | head -n1 | awk -F/ ' { print $3 } ' | cut -d" " -f 1|cut -b1,2,3 ` used=`statgrab -M disk.|grep ${ddrive}.write_bytes|cut -d= -f 2|tr -d " "` used=`echo $used-$STARTSIZE|bc` #echo $used fi if [ ! x$used = x ] then . /root/.install_size #somehow find if it's an install or update if [ -f /tmp/.this_is_upgrade ] then total=$UPGRADESIZE else total=$TOTALSIZE fi percent=`echo "scale=2 ; ($used/$total) * 100 " |bc ` cond2=$(echo "$percent > 98" |bc ) if [ $cond2 -eq 1 ] then percent=98 fi if [ x"${state}" = "xDone" ] then percent=100 fi cond3=$(echo "$percent < 3" |bc ) if [ $cond3 -eq 0 ] then progress $percent fi fi fi ;; esac