Re: [Forum] RE: [Forum] hacked - og hva så?

From: Claus Ladekjær Wilson <clw@get2net.dk>
Date: Tue Mar 19 2002 - 13:22:06 CET

voilà

/etc/rc.d/rc.sysinit

**************************************************************************************
**************************************************************************************
#!/bin/bash
#
# /etc/rc.sysinit - run once at boot time
#
# Taken in part from Miquel van Smoorenburg's bcheckrc.
#

# Rerun ourselves through initlog
if [ -z "$IN_INITLOG" ]; then
 [ -f /sbin/initlog ] && exec /sbin/initlog $INITLOG_ARGS -r /etc/rc.sysinit
fi

# Set the path
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH

HOSTNAME=`/bin/hostname`

# Read in config data.
if [ -f /etc/sysconfig/network ]; then
    . /etc/sysconfig/network
else
    NETWORKING=no
fi

# Read in config data.
if [ -f /etc/sysconfig/usb ]; then
    . /etc/sysconfig/usb
fi

if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
    HOSTNAME=localhost
fi

# Source functions
. /etc/init.d/functions

# This must be done before anything else because now most messages
# are translated so we need correct system font very early
# This must be done before Aurora is started too, since screenchars
# --tty=foo is broken :(
# Note that if setting of system font fails here boot messages
# may be unreadable so we may need to reset LANGUAGE to C in this case
# Load system font
if [ -x /sbin/setsysfont ]; then
    [ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
    if [ -n "$SYSFONT" ]; then
           [ -f /etc/sysconfig/console/consolefonts/$SYSFONT.psf.gz ] || \
                        DELAYED_FONT=yes
    fi
    if [ -n "$SYSFONTACM" ]; then
           [ -f /etc/sysconfig/console/consoletrans/$SYSFONTACM \
                -o -f /etc/sysconfig/console/consoletrans/$SYSFONTACM.acm.gz \
                -o -f /etc/sysconfig/console/consoletrans/$SYSFONTACM.acm ] || \
                        DELAYED_FONT=yes
    fi
    if [ -n "$UNIMAP" ]; then
           [ -f /etc/sysconfig/console/consoletrans/$UNIMAP \
                -o -f /etc/sysconfig/console/consoletrans/$UNIMAP.sfm.gz \
                -o -f /etc/sysconfig/console/consoletrans/$UNIMAP.sfm ] || \
                        DELAYED_FONT=yes
    fi
    # We have to set font before printing message, so we cannot
    # use ``action message command'' directly because it prints
    # message before executing command
    [ "$DELAYED_FONT" != "yes" -o -r /usr/lib/kbd/consolefonts ] && \
            if /sbin/setsysfont; then
                    action "Setting default font: " /bin/true
            else
                    action "Setting default font: " /bin/false
            fi
fi

# Do the following while waiting for an 'I' from the user...
{
# Print a banner. ;)
# C-like escape sequences don't work as 2nd and up parameters of gprintf,
# so real escap chars were written
if [ "$BOOTUP" != "serial" ]; then
 gprintf "\t\t\tWelcome to %sMandrake%s Linux" `echo -en "\\033[1;36m"` `echo
-en "\\033[0;39m"`
else
 gprintf "\t\t\tWelcome to %sMandrake%s Linux" "" ""
fi
echo -en "\r"
echo
if [ "$PROMPT" != "no" ]; then
 gprintf "\t\tPress 'I' to enter interactive startup."
 echo -en "\r"
 echo
 sleep 1
fi

# This must be done before Aurora can be started (See
# /sbin/Monitor for explanational code :)
# Mount /proc (done here so volume labels can work with fsck)
action "Mounting proc filesystem" mount -n -t proc /proc /proc

# Try to get devfsd
if [ -c /dev/.devfsd ]; then
  if [ -x /sbin/devfsd ]; then
    # copy /lib/dev-state before starting devfsd to avoid accidentally
    # triggering devfsd actions (like module loading)
    if [ -d /lib/dev-state ]; then
        cp -af /lib/dev-state/* /dev > /dev/null 2>&1
    fi
    action "Running DevFs deamon" devfsd /dev
    if [ -f /etc/sysconfig/mouse ];then
      . /etc/sysconfig/mouse
      device=`echo $device | sed -e 's/psaux/misc\/psaux/' -e
's/ttyS\(.\)/tts\/\1/g'`
      if [ -n "$device" ]; then
        rm -f /dev/mouse
        ln -s /dev/$device /dev/mouse
      fi
    fi
  else
    # devfs is used but devfsd isn't installed
    gprintf " #### your system is currently using devfs but devfsd isn't
availlable"
    gprintf " #### you should disable devfs (add 'devfs=nomount' to the
paramaters"
    gprintf " #### that your bootloader gives to the kernel"
    # Let devfs being tested, but disable it on /dev
    action " Disabling devfs (was mounted on /dev)" umount /dev
  fi
fi

# Ah, the user wasn't fast enought to press an 'i', so we just
# continue and let him/her press "Service confirmation" in Aurora
# instaed...
kill -TERM `/sbin/pidof getkey` >/dev/null 2>&1
} &
if [ "$PROMPT" != "no" ]; then
   /sbin/getkey i && export CONFIRM=yes
fi
wait

[ -f /lib/aurora/functions -a -x /etc/aurora/Monitor ] && /etc/aurora/Monitor
startable && aurora=1

if [ -n "$aurora" ]; then
    . /lib/aurora/functions

    # We do not want these to be recalculated, especially if Aurora is running
    # (Named pipes has same strange affectance on /sbin/consoletype).
    export BOOTUP MOVE_TO_COL SETCOLOR_SUCCESS SETCOLOR_FAILURE
SETCOLOR_WARNING SETCOLOR_NORMAL LOGLEVEL
    
    aurora_start ()
     {
      STRING=`gprintf "Booting Aurora..."`
      echo -n "$STRING"
      if ! grep -qi textboot /proc/cmdline > /dev/null 2>&1 && ! grep -qi
failsafe /proc/cmdline 2>/dev/null ; then
       /etc/aurora/Monitor start 11
       if /etc/aurora/Monitor query ; then
            export DISPLAY=:1
            exec < /lib/aurora/output
            exec > /lib/aurora/input
            exec 2>&1
            /etc/aurora/rc
            aurora_cmd
             aurora_set_missionsize 9
             aurora_reset_dialog ync
            aurora_end
            echo "$STRING"
            success "$STRING"
       else
            if [ "$1" == "fail" ] ; then
             failure "$STRING"
            else
             passed "$STRING"
            fi
       fi
      else
       passed "$STRING"
      fi
      echo ""
     }
else
    # define empty functions for the wrapper functions
    aurora_direct () { :; }
    aurora_end () { :; }
fi

# Setup redirections used to reset output from Aurora in some
# places...
exec 3<&0
exec 4>&1
exec 5>&2

# If the partition where Monitor resides is mounted, we are able to
# start Aurora at this point. Otherwise, we'l have to wait until it is
# mounted...
if [ -n "$aurora" ] ; then
 aurora_start
fi

# Fix console loglevel
/bin/dmesg -n $LOGLEVEL

# Unmount the initrd, if necessary
# (pixel) do not unmount if /initrd/loopfs is mounted (happens for root
loopback)
if grep -q /initrd /proc/mounts && ! grep -q /initrd/loopfs /proc/mounts ;
then
   action "Unmounting initrd: " umount /initrd
   /sbin/blockdev --flushbufs /dev/ram0 >/dev/null 2>&1
fi

# Configure kernel parameters
action "Configuring kernel parameters: " sysctl -e -p /etc/sysctl.conf

#
ARCH=$(/bin/uname -m)

# Set the system clock.
ARC=0
SRM=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

CLOCKDEF=""
if [ "$ARCH" = "ppc" ];then
CLOCKFLAGS="$CLOCKFLAGS -s"
else
CLOCKFLAGS="$CLOCKFLAGS --hctosys"
fi

case "$UTC" in
   yes|true)
    CLOCKFLAGS="$CLOCKFLAGS -u";
    CLOCKDEF="$CLOCKDEF (utc)";
   ;;
   no|false)
    CLOCKFLAGS="$CLOCKFLAGS --localtime";
    CLOCKDEF="$CLOCKDEF (localtime)";
   ;;
esac

case "$ARC" in
     yes|true)
             CLOCKFLAGS="$CLOCKFLAGS -A";
             CLOCKDEF="$CLOCKDEF (arc)";
     ;;
esac
case "$SRM" in
     yes|true)
        CLOCKFLAGS="$CLOCKFLAGS -S";
        CLOCKDEF="$CLOCKDEF (srm)";
     ;;
esac

if [ "$ARCH" = "alpha" -a -f /lib/modules/$(uname -r)/modules.dep ];then
/sbin/hwclock $CLOCKFLAGS
elif [ "$ARCH" != "alpha" ];then
/sbin/hwclock $CLOCKFLAGS
fi

action "Setting clock %s: `date`" "$CLOCKDEF" date

if [ "`/sbin/consoletype`" = "vt" ]; then
 # Load keymap
 if [ -x /bin/loadkeys ]; then
 KEYTABLE=
 KEYMAP=
 if [ -f /etc/sysconfig/console/default.kmap ]; then
  KEYMAP=/etc/sysconfig/console/default.kmap
 else
  if [ -f /etc/sysconfig/keyboard ]; then
    . /etc/sysconfig/keyboard
  fi
  if [ -n "$KEYTABLE" -a -d "/usr/lib/kbd/keymaps" -o -d "/lib/kbd/keymaps"
]; then
     KEYMAP=$KEYTABLE
  fi
 fi
 if [ -n "$KEYMAP" ]; then
  # Since this takes in/output from stdin/out, we can't use initlog
  if [ -n "$KEYTABLE" ]; then
    gprintf "Loading default keymap (%s): " $KEYTABLE
  else
    gprintf "Loading default keymap: "
  fi
  loadkeys $KEYMAP < /dev/tty0 > /dev/tty0 2>/dev/null && \
     success "Loading default keymap" || failure "Loading default keymap"
  echo
 fi
 fi
fi

# Start up swapping.
action "Activating swap partitions: " swapon -a

# Set the hostname.
action "Setting hostname %s: " ${HOSTNAME} hostname ${HOSTNAME}

# Set the NIS domain name
if [ -n "$NISDOMAIN" ]; then
    action "Setting NIS domain name %s: " $NISDOMAIN domainname $NISDOMAIN
else
    domainname ""
fi

# Initialize USB controller and HID devices
if [[ $KEYBOARD_AT_BOOT = "YES" || $KEYBOARD_AT_BOOT = "Yes" ||
$KEYBOARD_AT_BOOT = "yes" ]];then
    usb=0
    if ! grep -iq "nousb" /proc/cmdline 2>/dev/null && ! grep -q "usb"
/proc/devices 2>/dev/null ; then
        aliases=`/sbin/modprobe -c | egrep -s "^alias[[:space:]]+usb-interface" |
awk '{ print $3 }'`
        if [ -n "$aliases" -a "$aliases" != "off" ] ; then
            modprobe usbcore
            action "Mounting USB filesystem: " mount -t usbdevfs usbdevfs
/proc/bus/usb
            for alias in $aliases ; do
                action "Initializing USB controller (%s): " $alias modprobe $alias
            done
            [ $? -eq 0 -a -n "$aliases" ] && usb=1
        fi
    fi
    if [ $usb = "1" ];then
        sleep 5
        action "Initializing USB HID interface: " modprobe hid 2> /dev/null
        action "Initializing USB keyboard: " modprobe keybdev
    fi
fi

if [ -f /fastboot ] || grep -iq "fastboot" /proc/cmdline 2>/dev/null ; then
        fastboot=yes
    else
        fastboot=
fi

if [ -r /etc/sysconfig/init ]; then
    . /etc/sysconfig/init
fi

if [ "$FSCKOPTIONS" ]; then
        fsckoptions="$FSCKOPTIONS"
    else
        fsckoptions=
fi

if [ -f /forcefsck ]; then
        fsckoptions="-f $fsckoptions"
fi

if [ "$BOOTUP" != "serial" ]; then
    if ! [ -n "$aurora" ] || ! /etc/aurora/Monitor query ; then
        fsckoptions="-C $fsckoptions"
    fi
else
        fsckoptions="-V $fsckoptions"
fi
 
Fsck()
{ initlog -c "/sbin/fsck $*"
        rc=$?
        if [ $rc -ne 0 -a $rc -ne 1 ]; then
            if [ -n "$aurora" ] && /etc/aurora/Monitor query ; then
              aurora_cmd
                aurora_set_dialog_title yn
            fi
            echo "Failed to check filesystem. Do you want to repair the errors?"
            echo "(beware, you can loose data)"
            if [ -n "$aurora" ] && /etc/aurora/Monitor query ; then
                aurora_end
                aurora_show_dialog yn
              aurora_end
            fi
            read answer

            if strstr "yY" "$answer" ; then
                initlog -c "/sbin/fsck $* -y"
                rc=$?
            fi
        fi
}

_RUN_QUOTACHECK=0
ROOTFSTYPE=`grep " / " /proc/mounts | awk '{ print $3 }'`
if [ -z "$fastboot" -a "$ROOTFSTYPE" != "nfs" ]; then

        gprintf "Checking root filesystem\n"
        Fsck -T -a $fsckoptions /
        
        if [ "$rc" = "0" ]; then
                echo_success
                echo
        elif [ "$rc" = "1" ]; then
                echo_passed
                echo
        fi
        
        # A return of 2 or higher means there were serious problems.
        if [ $rc -gt 1 ]; then
            echo_failure
            aurora_direct
                echo
                echo
                gprintf "*** An error occurred during the file system check.\n"
                gprintf "*** Dropping you to a shell; the system will reboot\n"
                gprintf "*** when you leave the shell.\n"

                PS1="(Repair filesystem) \# # "; export PS1
                sulogin

            aurora_end
            gprintf "Unmounting file systems\n"
            umount -a
            mount -n -o remount,ro /
            gprintf "Automatic reboot in progress.\n"
            reboot -f
        elif [ "$rc" = "1" ]; then
                _RUN_QUOTACHECK=1
        fi
fi

# Possibly update quotas if fsck was run on /.
grep -E '[[:space:]]+/[[:space:]]+' /etc/fstab | \
    awk '{ print $4 }' | \
    grep -q quota
_ROOT_HAS_QUOTA=$?
if [ X"$_RUN_QUOTACHECK" = X1 -a \
    "$_ROOT_HAS_QUOTA" -a \
    -x /sbin/quotacheck ]; then
        if [ -x /sbin/convertquota ]; then
            if [ -f /quota.user ]; then
                action "Converting old user quota files: " \
                    /sbin/convertquota -u / && rm -f /quota.user
            fi
            if [ -f /quota.group ]; then
                action "Converting old group quota files: " \
                    /sbin/convertquota -g / && rm -f /quota.group
            fi
        fi
        action "Checking root filesystem quotas: " /sbin/quotacheck -n /
fi

# check for arguments passed from kernel

if grep -iq nopnp /proc/cmdline >/dev/null 2>&1 ; then
    PNP=
else
    PNP=yes
fi

# set up pnp
if [ -x /sbin/isapnp -a -f /etc/isapnp.conf -a ! -f /proc/isapnp ]; then
    if [ -n "$PNP" ]; then
        action "Setting up ISA PNP devices: " /sbin/isapnp /etc/isapnp.conf
    else
        action "Skipping ISA PNP configuration at users request: " /bin/true
    fi
fi

# Remount the root filesystem read-write.
state=`awk '/(^\/dev\/root| \/ )/ { print $4 }' /proc/mounts`
[ "$state" != "rw" ] && \
  action "Remounting root filesystem in read-write mode: " mount -n -o
remount,rw /

# LVM initialization
if [ -x /sbin/vgchange -a -f /etc/lvmtab ]; then
        action "Setting up Logical Volume Management:" /sbin/vgscan &&
/sbin/vgchange -a y
fi

# Clear mtab
>/etc/mtab

# Remove stale backups
rm -f /etc/mtab~ /etc/mtab~~

# Enter root, /proc and (potentially) /proc/bus/usb and devfs into mtab.
# (pixel) also added /initrd/loopfs for loopback root
mount -f /initrd/loopfs 2>/dev/null
mount -f /
mount -f /proc
[ -f /proc/bus/usb/devices ] && mount -f -t usbdevfs usbdevfs /proc/bus/usb
[ -e /dev/.devfsd ] && mount -f -t devfs devfs /dev

# If Aurora wasn't started prior to this, and if the partition where
# Monitor resides is mounted, start it now. Otherwise, we'l have to
# wait until it is mounted...
if [ -n "$aurora" ] ; then
 if ! /etc/aurora/Monitor query ; then
  aurora_start
 fi
fi

# Turn on harddisk optimization
# There is only one file /etc/sysconfig/harddisks for all disks
# after installing the hdparm-RPM. If you need different hdparm parameters
# for each of your disks, copy /etc/sysconfig/harddisks to
# /etc/sysconfig/harddiskhda (hdb, hdc...) and modify it.
# each disk witch has no special parameters will use the defaults.
 
disk[0]=s; disk[1]=hda; disk[2]=hdb; disk[3]=hdc;
disk[4]=hdd; disk[5]=hde; disk[6]=hdf; disk[7]=hdg; disk[8]=hdh;
 
 
if [ -x /sbin/hdparm ]; then
   for device in 0 1 2 3 4 5 6 7 8; do
   unset MULTIPLE_IO USE_DMA EIDE_32BIT LOOKAHEAD EXTRA_PARAMS
        if [ -f /etc/sysconfig/harddisk${disk[$device]} ]; then
                . /etc/sysconfig/harddisk${disk[$device]}
                HDFLAGS[$device]=
                if [ -n "$MULTIPLE_IO" ]; then
                    HDFLAGS[$device]="-q -m$MULTIPLE_IO"
                fi
                if [ -n "$USE_DMA" ]; then
                    HDFLAGS[$device]="${HDFLAGS[$device]} -q -d$USE_DMA"
                fi
                if [ -n "$EIDE_32BIT" ]; then
                    HDFLAGS[$device]="${HDFLAGS[$device]} -q -c$EIDE_32BIT"
                fi
                if [ -n "$LOOKAHEAD" ]; then
                    HDFLAGS[$device]="${HDFLAGS[$device]} -q -A$LOOKAHEAD"
                fi
                if [ -n "$EXTRA_PARAMS" ]; then
                    HDFLAGS[$device]="${HDFLAGS[$device]} $EXTRA_PARAMS"
                fi
        else
                HDFLAGS[$device]="${HDFLAGS[0]}"
        fi
        if [ -e "/proc/ide/${disk[$device]}/media" ] ; then
             hdmedia=`cat /proc/ide/${disk[$device]}/media`
             if [ "$hdmedia" = "disk" -o "$hdmedia" = "cdrom" ]; then
                  if [ -n "${HDFLAGS[$device]}" ]; then
                      action "Setting hard drive parameters for %s: "
${disk[$device]} /sbin/hdparm ${HDFLAGS[$device]} /dev/${disk[$device]}
                  fi
             fi
        fi
   done
fi

# The root filesystem is now read-write, so we can now log via syslog()
directly..
if [ -n "$IN_INITLOG" ]; then
    IN_INITLOG=
fi

if ! grep -iq nomodules /proc/cmdline >/dev/null 2>&1 && [ -f /proc/ksyms ];
then
    USEMODULES=y
else
    USEMODULES=
fi

# Our modutils don't support it anymore, so we might as well remove
# the preferred link.
rm -f /lib/modules/preferred
rm -f /lib/modules/default
if [ -x /sbin/depmod -a -n "$USEMODULES" ]; then
    # If they aren't using a recent sane kernel, make a link for them
    if [ ! -n "`uname -r | grep -- "-"`" ]; then
       ktag="`cat /proc/version`"
       mtag=`grep -l "$ktag" /lib/modules/*/.rhkmvtag 2> /dev/null`
       if [ -n "$mtag" ]; then
           mver=`echo $mtag | sed -e 's,/lib/modules/,,' -e 's,/.rhkmvtag,,' -e 's,[
        ].*$,,'`
       fi
       if [ -n "$mver" ]; then
         ln -sf /lib/modules/$mver /lib/modules/default
       fi
    fi
    if [ -L /lib/modules/default ]; then
            INITLOG_ARGS= action "Finding module dependencies: " depmod -A default
    else
        INITLOG_ARGS= action "Finding module dependencies: " depmod -A
    fi
fi

# tweak isapnp settings if needed.
if [ -n "$PNP" -a -f /proc/isapnp -a -x /sbin/sndconfig ]; then
    /sbin/sndconfig --mungepnp >/dev/null 2>&1
fi

if [ -f /proc/sys/kernel/modprobe ]; then
   if [ -n "$USEMODULES" ]; then
       sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1
       sysctl -w kernel.hotplug="/sbin/hotplug" >/dev/null 2>&1
   else
       # We used to set this to NULL, but that causes 'failed to exec'
messages"
       sysctl -w kernel.modprobe="/bin/true" >/dev/null 2>&1
       sysctl -w kernel.hotplug="/bin/true" >/dev/null 2>&1
   fi
fi

# Load modules (for backward compatibility with VARs)
if [ -x /etc/rc.d/rc.modules ]; then
        /etc/rc.d/rc.modules
fi

# Add raid devices
if [ ! -f /proc/mdstat ]; then
        modprobe md >/dev/null 2>&1
fi

if [ -f /proc/mdstat -a -f /etc/raidtab ]; then
        gprintf "Starting up RAID devices: "

        rc=0
        
        for i in `grep "^[^*]*raiddev" /etc/raidtab | awk '{print $2}'`
        do
                RAIDDEV=`basename $i`
                RAIDSTAT=`grep "^$RAIDDEV : active" /proc/mdstat`
                if [ -z "$RAIDSTAT" ]; then
                        # First scan the /etc/fstab for the "noauto"-flag
                        # for this device. If found, skip the initialization
                        # for it to avoid dropping to a shell on errors.
                        # If not, try raidstart...if that fails then
                        # fall back to raidadd, raidrun. If that
                        # also fails, then we drop to a shell
                        RESULT=1
                        NOAUTO=`grep "^$i" /etc/fstab | grep -c "noauto"`
                        if [ $NOAUTO -gt 0 ]; then
                            RESULT=0
                            RAIDDEV="$RAIDDEV(skipped)"
                        fi
                        if [ $RESULT -gt 0 -a -x /sbin/raidstart ]; then
                                /sbin/raidstart $i
                                RESULT=$?
                        fi
                        if [ $RESULT -gt 0 -a -x /sbin/raid0run ]; then
                                /sbin/raid0run $i
                                RESULT=$?
                        fi
                        if [ $RESULT -gt 0 -a -x /sbin/raidadd -a -x /sbin/raidrun ]; then
                                /sbin/raidadd $i
                                /sbin/raidrun $i
                                RESULT=$?
                        fi
                        if [ $RESULT -gt 0 ]; then
                                rc=1
                        fi
                        echo -n "$RAIDDEV "
                else
                        echo -n "$RAIDDEV "
                fi
        done

        # A non-zero return means there were problems.
        if [ $rc -gt 0 ]; then
            aurora_direct
                echo
                echo
                gprintf "*** An error occurred during the RAID startup\n"
                gprintf "*** Dropping you to a shell; the system will reboot\n"
                gprintf "*** when you leave the shell.\n"

                PS1="(RAID Repair) \# # "; export PS1
                sulogin

            aurora_end
            gprintf "Unmounting file systems\n"
            umount -a
            mount -n -o remount,ro /
            gprintf "Automatic reboot in progress.\n"
            reboot -f
        fi

        echo_success
        echo
fi

_RUN_QUOTACHECK=0
# Check filesystems
# (pixel) do not check loopback files, will be done later (aren't available
yet)
if [ -z "$fastboot" ]; then
        gprintf "Checking filesystems\n"
        Fsck -T -R -A -a -t opt=noloop $fsckoptions
        if [ "$rc" = "0" ]; then
                echo_success
                echo
        elif [ "$rc" = "1" ]; then
                echo_passed
                echo
        fi

        # A return of 2 or higher means there were serious problems.
        if [ $rc -gt 1 ]; then
            echo_failure
                aurora_direct
                echo
                echo
                gprintf "*** An error occurred during the file system check.\n"
                gprintf "*** Dropping you to a shell; the system will reboot\n"
                gprintf "*** when you leave the shell.\n"

                PS1="(Repair filesystem) \# # "; export PS1
                sulogin

            aurora_end
            gprintf "Unmounting file systems\n"
            umount -a
            mount -n -o remount,ro /
            gprintf "Automatic reboot in progress.\n"
            reboot -f
        elif [ "$rc" = "1" -a -x /sbin/quotacheck ]; then
                _RUN_QUOTACHECK=1
        fi
fi

# Mount all other filesystems (except for NFS and /proc, which is already
# mounted). Contrary to standard usage,
# filesystems are NOT unmounted in single user mode.
# (pixel) also do not mount loopback, will be done later
action "Mounting local filesystems: " mount -a -t nonfs,smbfs,ncpfs -O
no_netdev,noloop

# (pixel) Check loopback filesystems
if [ ! -f /fastboot ]; then
        gprintf "Checking loopback filesystems"
        Fsck -T -R -A -a -t opt=loop $fsckoptions
        if [ "$rc" = "0" ]; then
                echo_success
                echo
        elif [ "$rc" = "1" ]; then
                echo_passed
                echo
        fi

        # A return of 2 or higher means there were serious problems.
        if [ $rc -gt 1 ]; then
            echo_failure
                aurora_direct
                echo
                echo
                gprintf "*** An error occurred during the file system check.\n"
                gprintf "*** Dropping you to a shell; the system will reboot\n"
                gprintf "*** when you leave the shell.\n"

                PS1="(Repair filesystem) \#"; export PS1
                sulogin

            aurora_end
            gprintf "Unmounting file systems\n"
            umount -a
            mount -n -o remount,ro /
            gprintf "Automatic reboot in progress.\n"
            reboot -f
        elif [ "$rc" = "1" -a -x /sbin/quotacheck ]; then
                action "Checking filesystem quotas: " /sbin/quotacheck -v -R -a
        fi
fi

# Mount loopback
action "Mounting loopback filesystems: " mount -a -t opt=loop

# Restart devfsd actions now that the filesystems are ready
if [ -c /dev/.devfsd ]; then
  if [ -x /sbin/devfsd ]; then
      # cleanup dynamic desktop directories before calling devfsd actions
      rm -f /usr/share/gnome/desktop/* /usr/share/apps/kdesktop/Desktop/*
      
      action "Running devfsd actions: " killall -HUP devfsd
  fi
fi

# at this point everything should be mounted; if the loading
# of the system font failed, try again
if [ "$DELAYED_FONT" = "yes" ]; then
   if [ -x /sbin/setsysfont ]; then
       [ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
       action "Setting default font: " /sbin/setsysfont
   fi
fi

if [ -x /etc/rc.d/init.d/keytable -a -d /usr/lib/kbd/keymaps ]; then
    /etc/rc.d/init.d/keytable start
fi

# Try to get linuxconf profile.
if profile=$(sed 's/.*prof=\([^ ]*\).*$/\1/' /proc/cmdline) && \
                        [ -d "/etc/linuxconf/archive/$profile" ] && \
        ! grep -q "confver.current $profile" /etc/conf.linuxconf;then

        action "Setting profile to %s: " $profile /bin/linuxconf --selectprofile
$profile
        
        # Setting again network scripts.
        if [ -f /etc/sysconfig/network ]; then
            source /etc/sysconfig/network
            hostname ${HOSTNAME}
            [ -n "$NISDOMAIN" ] && domainname $NISDOMAIN
        fi
fi

# check remaining quotas other than root
if [ X"$_RUN_QUOTACHECK" = X1 -a -x /sbin/quotacheck ]; then
        if [ -x /sbin/convertquota ]; then
            # try to convert old quotas
            for mountpt in `cat /etc/mtab | awk '$4 ~ /quota/{print $2}'`; do
                if [ -f "$mountpt/quota.user" ]; then
                    action "Converting old user quota files: " \
                    /sbin/convertquota -u $mountpt && \
                        rm -f $mountpt/quota.user
                fi
                if [ -f "$mountpt/quota.group" ]; then
                    action "Converting old group quota files: " \
                    /sbin/convertquota -g $mountpt && \
                        rm -f $mountpt/quota.group
                fi
            done
        fi
        action "Checking local filesystem quotas: " /sbin/quotacheck -aR
fi

if [ -x /sbin/quotaon ]; then
    action "Enabling local filesystem quotas: " /sbin/quotaon -a
fi

# Turn on process accounting
if [ -x /sbin/accton ] ; then
        action "Turning on process accounting" /sbin/accton /var/log/pacct
fi

# Configure machine if necessary.
if [ -f /.unconfigured ]; then
    if [ -x /usr/bin/passwd ]; then
        /usr/bin/passwd root
    fi
    if [ -x /usr/sbin/netconfig ]; then
        /usr/sbin/netconfig
    fi
    if [ -x /usr/sbin/timeconfig ]; then
        /usr/sbin/timeconfig
    fi
    if [ -x /usr/sbin/kbdconfig ]; then
        /usr/sbin/kbdconfig
    fi
    if [ -x /usr/sbin/authconfig ]; then
        /usr/sbin/authconfig --nostart
    fi
    if [ -x /usr/sbin/ntsysv ]; then
        /usr/sbin/ntsysv --level 35
    fi

    # Reread in network configuration data.
    if [ -f /etc/sysconfig/network ]; then
        . /etc/sysconfig/network

        # Reset the hostname.
        action "Resetting hostname %s: " ${HOSTNAME} hostname ${HOSTNAME}

        # Reset the NIS domain name.
        if [ -n "$NISDOMAIN" ]; then
            action "Resetting NIS domain name %s: " $NISDOMAIN domainname $NISDOMAIN
        else
            domainname ""
        fi
    fi

    rm -f /.unconfigured
fi

if [ -x /sbin/quotaon ]; then
    action "Turning on user and group quotas for local filesystems: "
/sbin/quotaon -a
fi

# Clean out /etc.
rm -f /fastboot /fsckoptions /forcefsck /halt /poweroff

# Do we need (w|u)tmpx files? We don't set them up, but the sysadmin might...
_NEED_XFILES=
[ -f /var/run/utmpx -o -f /var/log/wtmpx ] && _NEED_XFILES=1

# Clean up /var
# I'd use find, but /usr may not be mounted.
for afile in /var/lock/* /var/run/* /var/lib/pcmcia/*; do
   if [ -d "$afile" ]; then
      [ "`basename $afile`" != "news" -a "`basename $afile`" != "sudo" -a
"`basename $afile`" != "mon" ] && rm -f $afile/*
   else
      [ "$afile" = "/var/lock/TMP_1ST" ] && continue
      rm -f $afile
   fi
done
rm -f /var/lib/rpm/__db*

# Reset pam_console permissions
[ -x /sbin/pam_console_apply ] && /sbin/pam_console_apply -r

{
# Clean up utmp/wtmp
>/var/run/utmp
touch /var/log/wtmp
chgrp utmp /var/run/utmp /var/log/wtmp
chmod 0664 /var/run/utmp /var/log/wtmp
if [ -n "$_NEED_XFILES" ]; then
>/var/run/utmpx
  touch /var/log/wtmpx
  chgrp utmp /var/run/utmpx /var/log/wtmpx
  chmod 0664 /var/run/utmpx /var/log/wtmpx
fi

# Delete X locks
rm -f /tmp/.X*-lock

# Delete Postgres sockets
rm -f /tmp/.s.PGSQL.*

# Now turn on swap in case we swap to files.
swapon -a >/dev/null 2>&1
action "Enabling swap space: " /bin/true

# Initialize the serial ports.
if [ -f /etc/rc.serial ]; then
        . /etc/rc.serial
fi

if [ -r /etc/rc.firewall ]; then
        . /etc/rc.firewall
elif [ -f /etc/rc.d/rc.firewall ]; then #backward compat
    . /etc/rc.d/rc.firewall
fi

# If a SCSI tape has been detected, load the st module unconditionally
# since many SCSI tapes don't deal well with st being loaded and unloaded
if [ -f /proc/scsi/scsi ] && grep -q 'Type: Sequential-Access'
/proc/scsi/scsi 2>/dev/null ; then
        if grep -qv ' 9 st' /proc/devices ; then
                if [ -n "$USEMODULES" ] ; then
                        # Try to load the module. If it fails, ignore it...
                        insmod -p st >/dev/null 2>&1 && modprobe st >/dev/null 2>&1
                fi
        fi
fi

# If they asked for ide-scsi, load it
if grep -q "ide-scsi" /proc/cmdline ; then
        modprobe ide-cd >/dev/null 2>&1
        modprobe ide-scsi >/dev/null 2>&1
fi

# Adjust symlinks as necessary in /boot to keep system services from
# spewing messages about mismatched System maps and so on.
if [ -L /boot/System.map -a -r /boot/System.map-`uname -r` -a \
        ! /boot/System.map -ef /boot/System.map-`uname -r` ] ; then
        ln -s -f System.map-`uname -r` /boot/System.map 2>/dev/null
fi
if [ ! -e /boot/System.map -a -r /boot/System.map-`uname -r` ] ; then
        ln -sf System.map-`uname -r` /boot/System.map 2>/dev/null
fi

# Adjust symlinks as necessary in /boot to have the default config
if [ -L /boot/config -a -r /boot/config-`uname -r` ] ; then
        ln -sf config-`uname -r` /boot/config 2>/dev/null
fi
if [ ! -e /boot/config -a -r /boot/config-`uname -r` ] ; then
        ln -sf config-`uname -r` /boot/config 2>/dev/null
fi

# 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 -s 131072 > /var/log/dmesg
sleep 1
kill -TERM `/sbin/pidof getkey` >/dev/null 2>&1
} &
if [ "$PROMPT" != "no" ]; then
   /sbin/getkey i && touch /var/run/confirm
fi
wait

if grep -qi "failsafe" /proc/cmdline;then
    touch /var/run/failsafe
fi

if [ -f /etc/init.d/mandrake_everytime ];then
        /bin/sh /etc/init.d/mandrake_everytime
fi

# If Aurora wasn't started prior to this, start it now.
if [ -n "$aurora" ] ; then
 if ! /etc/aurora/Monitor query ; then
  aurora_start fail
 fi
fi

**************************************************************************************
**************************************************************************************

tirsdag den 19. marts 2002 12:34 skrev du:
> Hej igen
>
> > t 21 00:21:33 localhost rc.sysinit: §hide§
> > Oct 21 00:21:34 localhost last message repeated 3 times
> > Oct 21 00:21:34 localhost rc.sysinit: §hide§ §hide§ Finding module
> > dependencies: §end§ Finding module dependencies: §end§ §hide§
>
> Kan du ikke vise din rc.sysinit her på listen?
>
> den ligger i /etc/rc.d/rc.sysinit
>
> Mvh Bjarke

-- 
Hilsen / Greetings
Claus Ladekjær Wilson
Kirkedammen 19, 2.th
8000 Århus C
tlf. 86112234
mail: clw@get2net.dk
***running Linux Mandrake 8.1 kernel 2.4.18
Received on Tue Mar 19 13:20:26 2002

This archive was generated by hypermail 2.1.8 : Tue Jul 19 2005 - 16:03:30 CEST