#! /bin/sh # # /etc/rc.d/rc.sysinit - run once at boot time # # Taken in part from Miquel van Smoorenburg's bcheckrc. # # Set the path PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH mount -t proc /proc /proc # Clear mtab >/etc/mtab # Enter root and /proc into mtab. mount -f / mount -f /proc ###### Creating /etc & /var ##################### # mount /var echo -n "Makeing /var:" if [ ! -f /var.ramdisk.gz ]; then echo "var.ramdisk.gz: No such file -- Please call maintenancer" sulogin reboot fi gzip -d -c < /var.ramdisk.gz > /dev/ram2 mount -t minix /dev/ram2 /var if [ ! -d /var/log ]; then echo "/var: No such directory -- Please call maintenancer" sulogin reboot fi echo " OK" # mount /dev echo -n "Makeing /dev:" DEVSAVE="/var/tmp/dev.tmp" if [ ! -c /dev/null ]; then echo "Can't create /dev(1) -- Please call maintenancer" sulogin reboot fi if [ -f $DEVSAVE ]; then rm -f $DEVSAVE fi mkfs.minix -i 256 /dev/ram1 300 > /var/tmp/log 2>&1 find /dev -print | cpio -o -H newc > $DEVSAVE 2> /var/tmp/log mount -t minix /dev/ram1 /dev cpio -i -H newc < $DEVSAVE 2> /var/tmp/log rm -f $DEVSAVE if [ ! -c /dev/null ]; then echo "Can't create /dev(2) -- Please call maintenancer" sulogin reboot fi touch /dev/write-test if [ ! -f /dev/write-test ]; then echo "Can't create /dev(3) -- Please call maintenancer" sulogin reboot fi rm -f /dev/write-test echo " OK" ########## Get network-infmation from ifconfig ################ IPADDR=`ifconfig eth0 | fgrep inet | head -1 | awk '{ print $2; }' | sed 's/addr://'` NETMASK=`ifconfig eth0 | fgrep inet | head -1 | awk '{ print $4; }' | sed 's/Mask://'` MACADDR=`ifconfig eth0 | fgrep HWaddr | awk '{print $5}' | sed 's/:/-/g' | tr A-Z a-z` # Check IPADDR if [ -z "$IPADDR" ]; then echo "Bogus IP-ADDRESS(1) -- Please call maintenancer" sulogin reboot fi # Check NETMASK if [ -z "$NETMASK" ]; then echo "Bogus NETMASK -- Please call maintenancer" sulogin reboot fi # Check MACADDR if [ -z "$MACADDR" ]; then echo "Bogus MAC-ADDR(1) -- Please call maintenancer" sulogin reboot fi echo "IP-ADDR: $IPADDR, NETMASK: $NETMASK, MAC-ADDR: $MACADDR"; ########## Get network-infmation from Table ################ if [ ! -f /etc/conf.diskless ]; then echo "conf.diskless: No such file -- Please call maintenancer" sulogin reboot fi HOSTNAME=`grep -v ^# /etc/conf.diskless | fgrep ":$IPADDR:" | head -1 | awk -F: '{print $1}'` XIPADDR=`grep -v ^# /etc/conf.diskless | fgrep ":$IPADDR:" | head -1 | awk -F: '{print $2}'` XMACADDR=`grep -v ^# /etc/conf.diskless | fgrep ":$IPADDR:" | head -1 | awk -F: '{print $3}' | tr A-Z a-z` ## check hostname ######################### if [ -z "$HOSTNAME" ]; then echo "Bogus IP-ADDRESS(2) -- Please call maintenancer" sulogin reboot fi ## compare "ifconfig" and "/etc/conf.diskless" ######################### if [ ${XIPADDR} != ${IPADDR} ]; then echo "Bogus IP-ADDRESS(3) -- Please call maintenancer" sulogin reboot fi if [ ${XMACADDR} != ${MACADDR} ]; then echo "Bogus MAC-ADDR(2) -- Please call maintenancer" sulogin reboot fi ########################################################################## # Create /var/etc/IPADDR if [ -f /var/etc/IPADDR ]; then rm -f /var/etc/IPADDR fi echo ${IPADDR} > /var/etc/IPADDR # Create /var/etc/NETMASK if [ -f /var/etc/NETMASK ]; then rm -f /var/etc/NETMASK fi echo ${NETMASK} > /var/etc/NETMASK # Set the hostname. hostname ${HOSTNAME} echo hostname: `hostname` if [ -f /var/etc/HOSTNAME ]; then rm -f /var/etc/HOSTNAME fi echo ${HOSTNAME} > /var/etc/HOSTNAME ##################################################################### # Read in config data. if [ ! -f /etc/sysconfig/network ]; then echo "No such configuration file -- Please call maintenancer" sulogin reboot fi . /etc/sysconfig/network domainname "" fsckoptions='' if [ ! -f /etc/HOSTNAME ]; then echo ${HOSTNAME} > /etc/HOSTNAME fi # Clean out /etc. rm -f /etc/mtab~ /fastboot /fsckoptions >/var/run/utmp # Delete UUCP lock files. rm -f /var/lock/LCK* # Delete stale subsystem files. rm -f /var/lock/subsys/* # Delete stale pid files rm -f /var/run/*.pid # Delete X locks rm -f /tmp/.X*-lock # Delete Postgres sockets rm -f /tmp/.s.PGSQL.* # Set the system clock. echo -n "Setting clock" ARC=0 UTC=0 if [ -f /etc/sysconfig/clock ]; then . /etc/sysconfig/clock # convert old style clock config to new values if [ "${CLOCKMODE}" = "GMT" ]; then UTC=true elif [ "${CLOCKMODE}" = "ARC" ]; then ARC=true fi fi if [ -x /sbin/hwclock ]; then CLOCKFLAGS="--hctosys" CLOCK=/sbin/hwclock else CLOCKFLAGS="-a" CLOCK=/sbin/clock fi case "$UTC" in yes|true) CLOCKFLAGS="$CLOCKFLAGS -u"; echo -n " (utc)" ;; esac case "$ARC" in yes|true) CLOCKFLAGS="$CLOCKFLAGS -A"; echo -n " (arc)" ;; esac echo -n ": " $CLOCK $CLOCKFLAGS date # Now that we have all of our basic modules loaded and the kernel going, # let's dump the syslog ring somewhere so we can find it later dmesg > /var/log/dmesg # Feed entropy into the entropy pool /etc/rc.d/init.d/random start