#!/bin/sh # # /etc/rc.sysinit # . /etc/rc.conf . /etc/rc.d/functions echo " " printhl "Arch Linux v0.7 $C_OTHER(${C_H2}Wombat$C_OTHER)\n" printhl "${C_H2}http://www.archlinux.org" printhl "Copyright 2002-2005 Judd Vinet" printhl "Distributed under the GNU General Public License (GPL)" printsep # start up our mini logger until syslog takes over /sbin/minilogd # anything more serious than KERN_WARNING goes to the console /bin/dmesg -n 3 # mount /proc and /sys mount -n -t proc none /proc [ "`grep sysfs /proc/filesystems`" ] && mount -n -t sysfs none /sys if [ -e /dev/.devfsd -a -x /sbin/devfsd ]; then # Looks like devfs is running, use it status "Starting DevFS Daemon" /sbin/devfsd /dev elif [ -x /etc/start_udev -a -d /sys/block ]; then # We have a start_udev script and /sys appears to be mounted, use UDev status "Starting UDev Daemon" /etc/start_udev else # Static /dev, our last resort status "Using static /dev filesystem" /bin/true fi if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then if [ -f /etc/lvmtab -a -x /sbin/vgchange ]; then # Kernel 2.4.x, LVM1 groups stat_busy "Activating LVM1 groups" /sbin/vgchange -a y stat_done elif [ -x /sbin/lvm -a -d /sys/block ]; then # Kernel 2.6.x, LVM2 groups stat_busy "Activating LVM2 groups" /sbin/lvm vgchange --ignorelockingfailure -a y stat_done fi fi status "Activating Swap" /sbin/swapon -a status "Mounting Root Read-only" /bin/mount -n -o remount,ro / FORCEFSCK= [ -f /forcefsck ] && FORCEFSCK="-- -f" if [ -x /sbin/fsck ]; then stat_busy "Checking Filesystems" /sbin/fsck -A -T -C -a $FORCEFSCK if [ $? -gt 1 ]; then stat_fail echo echo "***************** FILESYSTEM CHECK FAILED ****************" echo "* *" echo "* Please repair manually and reboot. Note that the root *" echo "* file system is currently mounted read-only. To remount *" echo "* it read-write type: mount -n -o remount,rw / *" echo "* When you exit the maintenance shell the system will *" echo "* reboot automatically. *" echo "* *" echo "************************************************************" echo /sbin/sulogin -p echo "Automatic reboot in progress..." /bin/umount -a /bin/mount -n -o remount,ro / /sbin/reboot -f exit 0 fi stat_done fi stat_busy "Mounting Local Filesystems" /bin/mount -n -o remount,rw / /bin/rm -f /etc/mtab* # make sure / gets written to /etc/mtab /bin/mount -o remount,rw / # re-mount /proc and /sys so they can be written to /etc/mtab umount /proc && mount -t proc none /proc [ "`grep sysfs /proc/filesystems`" ] && umount /sys && mount -t sysfs none /sys # now mount all the local filesystems /bin/mount -a -t nonfs,nosmbfs,noncpfs,nosysfs,nousbfs stat_done stat_busy "Configuring System Clock" if [ "$HARDWARECLOCK" = "UTC" ]; then /sbin/hwclock --utc --hctosys else /sbin/hwclock --localtime --hctosys fi if [ ! -f /var/lib/hwclock/adjtime ]; then echo "0.0 0 0.0" > /var/lib/hwclock/adjtime fi if [ "$TIMEZONE" != "" ]; then /bin/ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime fi stat_done stat_busy "Removing Leftover Files" /bin/rm -f /etc/nologin &>/dev/null /bin/rm -f /etc/shutdownpid &>/dev/null /bin/rm -f /var/locks/* &>/dev/null /bin/rm -f /var/run/*.pid &>/dev/null /bin/rm -f /var/run/daemons/* &>/dev/null /bin/rm -rf /tmp/* /tmp/.* &>/dev/null /bin/rm -f /forcefsck &>/dev/null : > /var/run/utmp # Keep {x,k,g}dm happy with xorg mkdir /tmp/.ICE-unix && chmod 1777 /tmp/.ICE-unix mkdir /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix stat_done #status "Updating Shared Library Links" /sbin/ldconfig if [ "$HOSTNAME" != "" ]; then status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME fi status "Updating Module Dependencies" /sbin/depmod -A if [ -f /var/run/random-seed ]; then stat_busy "Initializing Random Seed" /bin/cat /var/run/random-seed >/dev/urandom stat_done fi if [ "$KEYMAP" != "" ]; then status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP fi if [ "$CONSOLEFONT" != "" ]; then stat_busy "Loading Console Font: $CONSOLEFONT" for i in `seq 1 12`; do if [ "$CONSOLEMAP" != "" ]; then /usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C /dev/vc/${i}; else /usr/bin/setfont $CONSOLEFONT -C /dev/vc/${i}; fi done stat_done fi # Load modules from the MODULES array defined in rc.conf stat_busy "Loading Modules" for mod in "${MODULES[@]}"; do if [[ `echo $mod | grep '^[^\!]' | wc -l` -eq 1 ]]; then /sbin/modprobe $mod fi done stat_done # Now that modules are loaded, try to mount /proc/bus/usb [ "`grep usbfs /proc/filesystems`" ] && mount -t usbfs none /proc/bus/usb # Screen blanks after 15 minutes idle time /usr/bin/setterm -blank 15 # End of file