summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/linhes-live/etc/rc.sysinit-live
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/linhes-live/etc/rc.sysinit-live')
-rwxr-xr-xabs/core-testing/linhes-live/etc/rc.sysinit-live466
1 files changed, 466 insertions, 0 deletions
diff --git a/abs/core-testing/linhes-live/etc/rc.sysinit-live b/abs/core-testing/linhes-live/etc/rc.sysinit-live
new file mode 100755
index 0000000..3f72a50
--- /dev/null
+++ b/abs/core-testing/linhes-live/etc/rc.sysinit-live
@@ -0,0 +1,466 @@
+#!/bin/bash
+#
+# /etc/rc.sysinit
+#
+
+###
+# Based on initscripts 2008.05-1
+###
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+###############################################################
+### These functions have been separated out, so that they can be
+### replaced in linhes live systems.
+
+f_header ()
+{
+ echo " "
+ printhl "Arch Linux $C_OTHER(${C_H2}Core Dump$C_OTHER)\n"
+ printhl "${C_H2}http://www.archlinux.org"
+ printhl "Copyright 2002-2007 Judd Vinet"
+ printhl "Copyright 2007-2008 Aaron Griffin"
+ printhl "Distributed under the GNU General Public License (GPL)"
+ printsep
+}
+
+f_fscheck ()
+{
+ status "Mounting Root Read-only" /bin/mount -n -o remount,ro /
+
+ if [ -x /sbin/fsck ]; then
+ stat_busy "Checking Filesystems"
+ if /bin/grep -qw quiet /proc/cmdline; then
+ /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >/dev/null 2>&1
+ else
+ /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK 2>/dev/null
+ fi
+ fsckret=$?
+ if [ ${fsckret} -gt 1 ]; then
+ stat_fail
+ if [ $((${fsckret}&2)) -eq 2 ]; then
+ echo
+ echo "********************** REBOOT REQUIRED *********************"
+ echo "* *"
+ echo "* The system will be rebooted automatically in 15 seconds. *"
+ echo "* *"
+ echo "************************************************************"
+ echo
+ /bin/sleep 15
+ else
+ 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
+ fi
+ 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 /
+
+ f_mountlocal
+ stat_done
+}
+
+f_mountlocal ()
+{
+ # Write /proc, /sys and /dev to /etc/mtab
+ if [ -e /proc/mounts ]; then
+ /bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab
+ fi
+ # now mount all the local filesystems
+ /bin/mount -a -t $NETFS
+}
+
+f_swapon ()
+{
+ status "Activating Swap" /sbin/swapon -a
+}
+
+###############################################################
+
+### Override above functions if running linhes live system
+[ -f /etc/live-sysinit ] && . /etc/live-sysinit
+
+#F Print header
+f_header
+
+# mount /proc, /sys and our RAM /dev
+/bin/mount -n -t ramfs none /dev
+/bin/mount -n -t proc none /proc
+/bin/mount -n -t sysfs none /sys
+
+# Create our default nodes that minilogd may need
+/bin/mknod /dev/null c 1 3
+/bin/mknod /dev/zero c 1 5
+/bin/mknod /dev/console c 5 1
+
+# More initial /dev setup that udev doesn't do
+/bin/ln -snf /proc/self/fd /dev/fd
+/bin/ln -snf /proc/self/fd/0 /dev/stdin
+/bin/ln -snf /proc/self/fd/1 /dev/stdout
+/bin/ln -snf /proc/self/fd/2 /dev/stderr
+/bin/ln -snf /proc/kcore /dev/core
+/bin/mkdir /dev/pts
+/bin/mkdir /dev/shm
+
+# start up our mini logger until syslog takes over
+/sbin/minilogd
+
+# anything more serious than KERN_WARNING goes to the console
+# 'verbose' cmdline parameter enables more messages
+if /bin/grep -q " verbose" /proc/cmdline; then
+ /bin/dmesg -n 8
+else
+ /bin/dmesg -n 3
+fi
+
+# enable rtc access
+/sbin/modprobe rtc-cmos >/dev/null 2>&1
+RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null); RTC_MAJOR="${RTC_MAJOR%% *}"
+if [ -n "$RTC_MAJOR" ]; then
+ /bin/mkdir /dev/misc/
+ /bin/mknod /dev/misc/rtc0 c $RTC_MAJOR 0
+ /bin/ln -s /dev/misc/rtc0 /dev/rtc
+fi
+
+HWCLOCK_PARAMS="--hctosys"
+if [ "$HARDWARECLOCK" = "UTC" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
+else
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
+fi
+if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa"
+fi
+
+# Set clock early to fix some bugs with filesystem checks
+# Clock is set again later to match rc.conf
+if [ -f /etc/localtime ]; then
+ /sbin/hwclock $HWCLOCK_PARAMS --noadjfile
+fi
+
+echo > /proc/sys/kernel/hotplug
+
+if [ -x /sbin/udevadm -a -d /sys/block ]; then
+ # We have udev and /sys appears to be mounted, use UDev
+ #status "Starting UDev Daemon" /etc/start_udev init
+
+ stat_busy "Starting UDev Daemon"
+ /sbin/udevd --daemon
+ stat_done
+else
+ # Static /dev, our last resort
+ status "Using static /dev filesystem" true
+fi
+
+# Load modules from the MODULES array defined in rc.conf
+if ! [ "$load_modules" = "off" ]; then
+ if [ -f /proc/modules ]; then
+ stat_busy "Loading Modules"
+ for mod in "${MODULES[@]}"; do
+ if [ "$mod" = "${mod#!}" ]; then
+ /sbin/modprobe $mod
+ fi
+ done
+ stat_done
+ fi
+ if [ -d /proc/acpi ]; then
+ stat_busy "Loading standard ACPI modules"
+ ACPI_MODULES="ac battery button fan processor thermal"
+ k="$(echo $BLACKLIST ${MOD_BLACKLIST[@]} | /bin/sed 's|-|_|g')"
+ j="$(echo ${MODULES[@]} | /bin/sed 's|-|_|g')"
+ #add disabled MODULES (!) to blacklist - much requested feature
+ for m in ${j}; do
+ [ "$m" != "${m#!}" ] && k="${k} ${m#!}"
+ done
+ # add disablemodules= from commandline to blacklist
+ k="${k} $(echo ${disablemodules} | /bin/sed 's|-|_|g' | /bin/sed 's|,| |g')"
+ for n in ${ACPI_MODULES}; do
+ if ! echo ${k} | /bin/grep "\<$n\>" 2>&1 >/dev/null; then
+ /sbin/modprobe $n > /dev/null 2>&1
+ fi
+ done
+ stat_done
+ fi
+fi
+
+# run udev uevents
+if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then
+ #status "Loading UDev uevents" /etc/start_udev uevents
+ stat_busy "Loading UDev uevents"
+ udevstart="$(/bin/date +%s%0N)"
+ /sbin/udevadm trigger
+ /sbin/udevadm settle
+ stat_done
+ udevend="$(/bin/date +%s%0N)"
+ printhl " UDev uevent processing time: $((($udevend-$udevstart)/1000000))ms"
+fi
+
+# bring up the loopback interface
+if [ -d /sys/class/net/lo ]; then
+ stat_busy "Bringing up loopback interface"
+ /sbin/ifconfig lo 127.0.0.1 up
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+fi
+
+# If necessary, find md devices and manually assemble RAID arrays
+if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ]; then
+ # udev won't create these md nodes, so we do it ourselves
+ for dev in $(/bin/grep ^ARRAY /etc/mdadm.conf | /bin/awk '{print $2}'); do
+ path=$(echo $dev | /bin/sed 's|/[^/]*$||')
+ node=$(echo $dev | /bin/sed "s|^$path/||")
+ minor=$(echo $node | /bin/sed 's|^[^0-9]*||')
+ [ ! -e $path/$node ] && /bin/mknod $path/$node b 9 $minor
+ done
+ status "Activating RAID arrays" /sbin/mdadm --assemble --scan
+fi
+
+if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
+ if [ -x /sbin/lvm -a -d /sys/block ]; then
+ # Kernel 2.6.x, LVM2 groups
+ /sbin/modprobe -q dm-mod 2>/dev/null
+ stat_busy "Activating LVM2 groups"
+ /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
+ /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+fi
+
+# Set up non-root encrypted partition mappings
+if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then
+ /sbin/modprobe -q dm-mod 2>/dev/null
+ stat_busy "Unlocking encrypted volumes:"
+ csfailed=0
+ CS=/sbin/cryptsetup.static
+ do_crypt() {
+ if [ $# -ge 3 ]; then
+ cname="$1"
+ csrc="$2"
+ cpass="$3"
+ shift 3
+ copts="$*"
+ stat_append "${cname}.."
+ # For some fun reason, the parameter ordering varies for
+ # LUKS and non-LUKS devices. Joy.
+ if [ "${cpass}" = "SWAP" ]; then
+ # This is DANGEROUS! The only possible safety check
+ # is to not proceed in case we find a LUKS device
+ # This may cause dataloss if it is not used carefully
+ if $CS isLuks $csrc 2>/dev/null; then
+ false
+ else
+ $CS -d /dev/urandom $copts create $cname $csrc >/dev/null
+ if [ $? -eq 0 ]; then
+ stat_append "creating swapspace.."
+ /sbin/mkswap -L $cname /dev/mapper/$cname >/dev/null
+ fi
+ fi
+ elif [ "${cpass}" = "ASK" ]; then
+ printf "\nOpening '${cname}' volume:\n"
+
+ if $CS isLuks $csrc 2>/dev/null; then
+ $CS $copts luksOpen $csrc $cname < /dev/console
+ else
+ $CS $copts create $cname $csrc < /dev/console
+ fi
+ elif [ "${cpass:0:1}" != "/" ]; then
+ if $CS isLuks $csrc 2>/dev/null; then
+ echo "$cpass" | $CS $copts luksOpen $csrc $cname >/dev/null
+ else
+ echo "$cpass" | $CS $copts create $cname $csrc >/dev/null
+ fi
+ else
+ if $CS isLuks $csrc 2>/dev/null; then
+ $CS -d $cpass $copts luksOpen $csrc $cname >/dev/null
+ else
+ $CS -d $cpass $copts create $cname $csrc >/dev/null
+ fi
+ fi
+ if [ $? -ne 0 ]; then
+ csfailed=1
+ stat_append "failed "
+ else
+ stat_append "ok "
+ fi
+ fi
+ }
+ while read line; do
+ eval do_crypt "$line"
+ done </etc/crypttab
+ if [ $csfailed -eq 0 ]; then
+ stat_done
+ else
+ stat_fail
+ fi
+ # Maybe someone has LVM on an encrypted block device
+ if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
+ if [ -x /sbin/lvm -a -d /sys/block ]; then
+ /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
+ /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
+ fi
+ fi
+fi
+
+FORCEFSCK=
+[ -f /forcefsck ] && FORCEFSCK="-- -f"
+NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk"
+
+#F Check filesystems
+f_fscheck
+
+#F Activate swaps
+f_swapon
+
+stat_busy "Configuring System Clock"
+if [ ! -f /var/lib/hwclock/adjtime ]; then
+ echo "0.0 0 0.0" > /var/lib/hwclock/adjtime
+fi
+if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
+ /bin/rm -f /etc/localtime
+ /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
+fi
+
+/sbin/hwclock $HWCLOCK_PARAMS
+stat_done
+
+if [ -f /var/run/random-seed ]; then
+ stat_busy "Initializing Random Seed"
+ /bin/cat /var/run/random-seed >/dev/urandom
+ stat_done
+fi
+
+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 -rf /tmp/* /tmp/.* &>/dev/null
+/bin/rm -f /forcefsck &>/dev/null
+(cd /var/run && /usr/bin/find . ! -type d -exec /bin/rm -f -- {} \; )
+: > /var/run/utmp
+# Keep {x,k,g}dm happy with xorg
+/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix
+/bin/mkdir /tmp/.X11-unix && /bin/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
+
+# Flush old locale settings
+: >/etc/profile.d/locale.sh
+/bin/chmod 755 /etc/profile.d/locale.sh
+# Set user defined locale
+[ -z "$LOCALE" ] && LOCALE="en_US"
+stat_busy "Setting Locale: $LOCALE"
+echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh
+stat_done
+
+if echo "$LOCALE" | /bin/grep -qi utf ; then
+ stat_busy "Setting Consoles to UTF-8 mode"
+ # UTF-8 consoles are default since 2.6.24 kernel
+ # this code is needed not only for older kernels,
+ # but also when user has set vt.default_utf8=0 but LOCALE is *.UTF-8.
+ /usr/bin/kbd_mode -u
+ for i in $(/usr/bin/seq 0 63); do
+ printf "\e%%G" > /dev/vc/${i}
+ done
+ # the $CONSOLE check helps us avoid this when running scripts from cron
+ echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%G"; fi' >>/etc/profile.d/locale.sh
+ stat_done
+ [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q -u $KEYMAP
+else
+ stat_busy "Setting Consoles to legacy mode"
+ # make non-UTF-8 consoles work on 2.6.24 and newer kernels
+ /usr/bin/kbd_mode -a
+ for i in $(/usr/bin/seq 0 63); do
+ printf "\e%%@" > /dev/vc/${i}
+ done
+ # the $CONSOLE check helps us avoid this when running scripts from cron
+ echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%@"; fi' >>/etc/profile.d/locale.sh
+ stat_done
+ [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP
+fi
+
+if [ -n "$CONSOLEFONT" ]; then
+ stat_busy "Loading Console Font: $CONSOLEFONT"
+ #CONSOLEMAP in UTF-8 shouldn't be used
+ if [ -n "$CONSOLEMAP" ] && echo "$LOCALE" | /bin/grep -qi utf ; then
+ CONSOLEMAP=""
+ fi
+ for i in $(/usr/bin/seq 0 63); do
+ if [ -n "$CONSOLEMAP" ]; then
+ /usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1
+ else
+ /usr/bin/setfont $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1
+ fi
+ done
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ for i in $(/usr/bin/seq 0 63); do
+ printf "\e(K" > /dev/vc/${i}
+ done
+ # the $CONSOLE check helps us avoid this when running scripts from cron
+ echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e(K"; fi' >>/etc/profile.d/locale.sh
+ stat_done
+ fi
+fi
+
+# Adding persistent network/cdrom generated rules
+if [ -f "/dev/.udev/tmp-rules--70-persistent-cd.rules" ]; then
+ stat_busy "Adding persistent cdrom udev rules"
+ /bin/cat /dev/.udev/tmp-rules--70-persistent-cd.rules >> /etc/udev/rules.d/70-persistent-cd.rules
+ stat_done
+fi
+if [ -f "/dev/.udev/tmp-rules--70-persistent-net.rules" ]; then
+ stat_busy "Adding persistent network udev rules"
+ /bin/cat /dev/.udev/tmp-rules--70-persistent-net.rules >> /etc/udev/rules.d/70-persistent-net.rules
+ stat_done
+fi
+
+# Save our dmesg output from this boot
+if [ -f /var/log/dmesg.log ]; then
+ /bin/rm /var/log/dmesg.log
+fi
+/bin/dmesg > /var/log/dmesg.log
+
+# vim: set ts=2 noet:
+# End