#!/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/lock/* &>/dev/null /bin/rm -f /var/run/*.pid &>/dev/null /bin/rm -f /var/run/daemons/* &>/dev/null /bin/rm -f /var/run/net/* &>/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 # Set the NIS domain name, if necessary [ -f /etc/conf.d/nisdomainname ] && . /etc/conf.d/nisdomainname if [ "$NISDOMAINNAME" != "" ]; then status "Setting NIS Domain Name: $NISDOMAINNAME" /bin/nisdomainname $NISDOMAINNAME 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 # Set user defined locale if [ "$LOCALE" != "" ]; then stat_busy "Setting Locale: $LOCALE" echo "export LANG=$LOCALE" >/etc/profile.d/locale.sh /bin/chmod 755 /etc/profile.d/locale.sh # # If locale is *.utf set console to Unicode mode if [ `echo $LOCALE | /bin/grep -i utf` != "" ]; then /usr/bin/kbd_mode -u /usr/bin/dumpkeys | /bin/loadkeys --unicode echo 'for i in `seq 1 12`; do'>>/etc/profile.d/locale.sh echo ' echo -ne "\033%G"'>>/etc/profile.d/locale.sh echo 'done'>>/etc/profile.d/locale.sh if [ "$CONSOLEFONT" = "" ]; then CONSOLEFONT="LatArCyrHeb-16" fi fi stat_done else rm -f /etc/profile.d/locale.sh 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 USB support /sbin/modprobe usbcore >/dev/null 2>&1 [ "`grep usbfs /proc/filesystems`" ] && mount -t usbfs none /proc/bus/usb # Load modules from the MODULES array defined in rc.conf if [ -f /proc/modules ]; then 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 fi # Screen blanks after 15 minutes idle time /usr/bin/setterm -blank 15 # End of file # vim: set ts=2 noet: