diff options
author | Colin Guthrie <colin@mageia.org> | 2012-10-28 20:16:00 +0000 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2012-10-28 20:16:00 +0000 |
commit | 5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f (patch) | |
tree | ec8a31bfe3ca67db6c5f31e1e34e59708fdfe557 /rc.d/rc.sysinit | |
parent | 35326f41a29186a00331117c4419a904c6563c7c (diff) | |
parent | bf95e22c4164b82112d043169495a71d1bfa0068 (diff) | |
download | initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.gz initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.bz2 initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.xz initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.zip |
Merge tag 'initscripts-9.41-1' into mga-41
Tag as initscripts-9.41-1
Conflicts:
.gitignore
Makefile
inittab
po/xgettext_sh.py
prefdm
rc.d/init.d/functions
rc.d/init.d/halt
rc.d/init.d/killall
rc.d/init.d/netfs
rc.d/init.d/network
rc.d/init.d/single
rc.d/rc
rc.d/rc.local
rc.d/rc.sysinit
service
src/console_check.c
src/console_init.c
sysconfig.txt
sysconfig/network-scripts/ifdown
sysconfig/network-scripts/ifdown-eth
sysconfig/network-scripts/ifup
sysconfig/network-scripts/ifup-eth
sysconfig/network-scripts/ifup-ippp
sysconfig/network-scripts/network-functions
systemd/system/fedora-wait-storage.service
udev/rules.d/10-console.rules
Merge Notes:
1. prefdm: We are keeping the current prefdm script which parses
/etc/sysconfig/desktop to find the current preferred dm. We also
keep the hunk in sysconfig.txt which relates to the afore mentioned
file. Longer term, we should drop this and move to per-dm units.
2. sysconfig/network-scripts/ifup-ippp is still removed at our end...
is there a replacement?
3. I used our /sbin/service as it varies quite a lot from fedora. I'd
be tempted to drop our custom version in favour of upstream
(s/libexec/lib/)
4. ifup/ifdown NM wrappers have been included - previously we just
printed a "Device is manged by NM skipping.." message.
CONFLICT (modify/delete): udev/rules.d/10-console.rules deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of udev/rules.d/10-console.rules left in tree.
Auto-merging systemd/system/fedora-wait-storage.service
CONFLICT (content): Merge conflict in systemd/system/fedora-wait-storage.service
Auto-merging systemd/fedora-storage-init
Auto-merging sysconfig/network-scripts/network-functions
CONFLICT (content): Merge conflict in sysconfig/network-scripts/network-functions
Removing sysconfig/network-scripts/net.hotplug
Auto-merging sysconfig/network-scripts/ifup-sit
Auto-merging sysconfig/network-scripts/ifup-post
Auto-merging sysconfig/network-scripts/ifup-plusb
CONFLICT (modify/delete): sysconfig/network-scripts/ifup-ippp deleted in
HEAD and modified in initscripts-9.41-1. Version initscripts-9.41-1 of sysconfig/network-scripts/ifup-ippp left in tree.
Auto-merging sysconfig/network-scripts/ifup-eth
CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifup-eth
Auto-merging sysconfig/network-scripts/ifup
CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifup
Auto-merging sysconfig/network-scripts/ifdown-sit
Auto-merging sysconfig/network-scripts/ifdown-post
Auto-merging sysconfig/network-scripts/ifdown-eth
CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifdown-eth
Auto-merging sysconfig/network-scripts/ifdown
CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifdown
Auto-merging sysconfig.txt
CONFLICT (content): Merge conflict in sysconfig.txt
Removing src/testdinit
Removing src/testd.c
Removing src/securetty.c
Removing src/securetty.8
Removing src/getkey.c
Removing src/getkey.1
Removing src/fstab-decode.c
Removing src/fstab-decode.8
CONFLICT (modify/delete): src/console_init.c deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of src/console_init.c left in tree.
CONFLICT (modify/delete): src/console_check.c deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of src/console_check.c left in tree.
Auto-merging service
CONFLICT (content): Merge conflict in service
CONFLICT (modify/delete): rc.d/rc.sysinit deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc.sysinit left in tree.
CONFLICT (modify/delete): rc.d/rc.local deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc.local left in tree.
CONFLICT (modify/delete): rc.d/rc deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc left in tree.
CONFLICT (modify/delete): rc.d/init.d/single deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/single left in tree.
Auto-merging rc.d/init.d/network
CONFLICT (content): Merge conflict in rc.d/init.d/network
CONFLICT (modify/delete): rc.d/init.d/netfs deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/netfs left in tree.
Auto-merging rc.d/init.d/netconsole
CONFLICT (modify/delete): rc.d/init.d/killall deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/killall left in tree.
CONFLICT (modify/delete): rc.d/init.d/halt deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/halt left in tree.
Auto-merging rc.d/init.d/functions
CONFLICT (content): Merge conflict in rc.d/init.d/functions
CONFLICT (modify/delete): prefdm deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of prefdm left in tree.
Auto-merging ppp/ip-up.ipv6to4
CONFLICT (modify/delete): po/xgettext_sh.py deleted in HEAD and modified in initscripts-9.41-1. Version initscripts-9.41-1 of po/xgettext_sh.py left in tree.
Removing inittab.upstart
Removing inittab.systemd
Removing inittab.s390
Auto-merging inittab
CONFLICT (content): Merge conflict in inittab
Removing init/tty.conf
Removing init/start-ttys.conf
Removing init/splash-manager.conf
Removing init/serial.conf
Removing init/rcS.conf
Removing init/rcS-sulogin.conf
Removing init/rc.conf
Removing init/quit-plymouth.conf
Removing init/prefdm.conf
Removing init/plymouth-shutdown.conf
Removing init/control-alt-delete.conf
Removing crypttab.5
Removing README-init
Removing NetworkManager/dispatcher.d/05-netfs
Auto-merging Makefile
CONFLICT (content): Merge conflict in Makefile
Auto-merging .gitignore
CONFLICT (content): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.
Diffstat (limited to 'rc.d/rc.sysinit')
-rwxr-xr-x | rc.d/rc.sysinit | 1191 |
1 files changed, 0 insertions, 1191 deletions
diff --git a/rc.d/rc.sysinit b/rc.d/rc.sysinit deleted file mode 100755 index 46d04fe8..00000000 --- a/rc.d/rc.sysinit +++ /dev/null @@ -1,1191 +0,0 @@ -#!/bin/bash -# -# /etc/rc.d/rc.sysinit - run once at boot time -# -# Taken in part from Miquel van Smoorenburg's bcheckrc. -# - -HOSTNAME=$(/bin/hostname) - -. /etc/init.d/functions - -set -m - -if [ -f /etc/sysconfig/network ]; then - . /etc/sysconfig/network -fi - -# Read in config data. -if [ -f /etc/sysconfig/system ]; then - . /etc/sysconfig/system -fi - -if [ -r /etc/hostname ]; then - HOSTNAME=$(cat /etc/hostname) -fi - -if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then - HOSTNAME=localhost -fi - -if [ ! -e /proc/mounts ]; then - mount -n -t proc /proc /proc - mount -n -t sysfs /sys /sys >/dev/null 2>&1 -fi - -PLYMOUTH= -[ -x /bin/plymouth ] && PLYMOUTH=yes - - -# Only read this once. -cmdline=$(cat /proc/cmdline) - -for t in $cmdline; do - case $t in - -s|single|S|s) REQUESTED_RUNLEVEL="S" ;; - [1-9]) REQUESTED_RUNLEVEL="$t" ;; - esac -done -[ -z "$REQUESTED_RUNLEVEL" ] && REQUESTED_RUNLEVEL=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab) -[ -z "$REQUESTED_RUNLEVEL" ] && REQUESTED_RUNLEVEL="3" - -# killing splash when using single-user mode -if [ "$REQUESTED_RUNLEVEL" == "S" ]; then - [ -n "$PLYMOUTH" ] && /bin/plymouth quit 2>/dev/null -fi - -uname_r=`uname -r` - -# Read in config data. -if [ -f /etc/sysconfig/speedboot ]; then - . /etc/sysconfig/speedboot -fi - -if strstr "$cmdline" speedboot= ; then - for arg in $cmdline ; do - if [ "${arg##speedboot=}" != "${arg}" ]; then - SPEEDBOOT=${arg##speedboot=} - fi - done -fi - -if [ "$REQUESTED_RUNLEVEL" != 5 -o -f /etc/rc.d/rc5.d/S*network-auth -o -f /etc/crypttab ]; then - SPEEDBOOT=no -fi - -# disable speedboot if more than one profile is found (and not selected in cmdline) -if echo /etc/netprofile/profiles/* | grep -q ' ' ; then - if ! strstr "$cmdline" PROFILE= ; then - SPEEDBOOT=no - fi -fi - -if strstr "$cmdline" failsafe ; then - SPEEDBOOT=no -fi - -# Check to see if systemd is used as the init system and disable speedboot as it -# generally messes things up (manifests itself as user permission problems, -# especially with autologins). -if [ "$SPEEDBOOT" != "no" ]; then - if /bin/mountpoint -q /sys/fs/cgroup/systemd; then - SPEEDBOOT=no - fi -fi - -# Check if a possible DKMS display driver is queued to be built on this boot -# or an interfering driver was loaded by initrd. -if [ "$SPEEDBOOT" != "no" ] && [ -x /sbin/display_driver_helper ] && ! /sbin/display_driver_helper --check-speedboot; then - SPEEDBOOT=no -fi - -if [ "$SPEEDBOOT" = "probe" ]; then - SPEEDBOOT_PROBE=yes -fi - -if [ "x$SPEEDBOOT" = "xauto" ]; then - STATUS=`grep -m 1 "$uname_r" /var/lib/speedboot/status 2>/dev/null` - case "$STATUS" in - *first\ time*) SPEEDBOOT=yes ;; - *FAILED*) SPEEDBOOT=no ;; - *OK*) SPEEDBOOT=yes ;; - *STANDARD\ BOOT*) SPEEDBOOT=yes ;; - *) SPEEDBOOT=no ;; - esac -fi - -if [ "$SPEEDBOOT" = "yes" ]; then - export SPEEDBOOT - PROMPT=no -else - unset SPEEDBOOT -fi - -if [ "x$SPEEDBOOT" != "xyes" ]; then -if [ ! -d /proc/bus/usb ]; then - modprobe usbcore >/dev/null 2>&1 && mount -n -t usbfs -o devmode=0664,devgid=43 /proc/bus/usb /proc/bus/usb -else - mount -n -t usbfs -o devmode=0664,devgid=43 /proc/bus/usb /proc/bus/usb -fi -fi #SPEEDBOOT - -if [ -f /.readahead_collect -a -r /etc/sysconfig/readahead ]; then - . /etc/sysconfig/readahead - if [ "x$READAHEAD_COLLECT" == "xyes" -a ! -f /forcefsck -a -x /sbin/readahead-collector ]; then - /sbin/readahead-collector - fi -elif [ -x /sbin/readahead_early ]; then - /sbin/readahead_early > /dev/null 2>&1 -fi - -if [ -x /etc/rc.early.local ]; then - . /etc/rc.early.local -fi - -# Unmount the initrd, if necessary -# (pixel) do not unmount if /initrd/loopfs is mounted (happens for root loopback) -# (bluca) handle udev /dev tmpfs here since kernel will happily umount /dev after initrd end -# (blino) do it before the udev service is started so that it uses the /dev tmpfs from initrd -if LC_ALL=C grep -q /initrd /proc/mounts && ! LC_ALL=C grep -q /initrd/loopfs /proc/mounts ; then - if LC_ALL=C grep -q /initrd/dev /proc/mounts; then - mount --move /initrd/dev /dev - fi - action "Unmounting initrd: " umount -l /initrd - /sbin/blockdev --flushbufs /dev/ram0 >/dev/null 2>&1 -fi - -if [ "x$SPEEDBOOT" = "xyes" ]; then - /sbin/start_udev - udevadm trigger --action=add --subsystem-match=pci --attr-match=class="0x0c03*" - udevadm trigger --action=add --subsystem-match=block - udevadm settle & - UDEV_DISK_PID=$! - udevadm trigger --action=add --subsystem-match=mem --subsystem-match=input --subsystem-match=tty --subsystem-match=acpi --subsystem-match=rtc --subsystem-match=hid - udevadm trigger --action=add --subsystem-match=pci --attr-match=class="0x060000*" - udevadm trigger --action=add --subsystem-match=pci --attr-match=class="0x03*" - udevadm settle & - UDEV_PID=$! -fi - -PLYMOUTH= -[ -x /bin/plymouth ] && PLYMOUTH=yes - -# Check SELinux status -SELINUX_STATE= -if [ -e "/sys/fs/selinux/enforce" ] && [ "$(cat /proc/self/attr/current)" != "kernel" ]; then - if [ -r "/sys/fs/selinux/enforce" ] ; then - SELINUX_STATE=$(cat "/sys/fs/selinux/enforce") - else - # assume enforcing if you can't read it - SELINUX_STATE=1 - fi -fi - -if [ -n "$SELINUX_STATE" ] && [ -x /sbin/restorecon ] && __fgrep " /dev " /proc/mounts >/dev/null 2>&1 ; then - /sbin/restorecon -R /dev 2>/dev/null -fi - -disable_selinux() { - gprintf "*** Warning -- SELinux is active\n" - gprintf "*** Disabling security enforcement for system recovery.\n" - gprintf "*** Run 'setenforce 1' to reenable.\n" - echo "0" > "/sys/fs/selinux/enforce" -} - -relabel_selinux() { - # if /sbin/init is not labeled correctly this process is running in the - # wrong context, so a reboot will be required after relabel - AUTORELABEL= - . /etc/selinux/config - echo "0" > /sys/fs/selinux/enforce - [ -n "$PLYMOUTH" ] && plymouth --hide-splash - - if [ "$AUTORELABEL" = "0" ]; then - echo - gprintf "*** Warning -- SELinux %s policy relabel is required. \n" ${SELINUXTYPE} - gprintf "*** /etc/selinux/config indicates you want to manually fix labeling\n" - gprintf "*** problems. Dropping you to a shell; the system will reboot\n" - gprintf "*** when you leave the shell.\n" - sulogin - - else - echo - gprintf "*** Warning -- SELinux %s policy relabel is required.\n" ${SELINUXTYPE} - gprintf "*** Relabeling could take a very long time, depending on file\n" - gprintf "*** system size and speed of hard drives.\n" - - /sbin/fixfiles -F restore > /dev/null 2>&1 - fi - rm -f /.autorelabel - gprintf "Unmounting file systems\n" - umount -a - mount -n -o remount,ro / - gprintf "Automatic reboot in progress.\n" - reboot -f -} - -# Print a text banner. -# C-like escape sequences don't work as 2nd and up parameters of gprintf, -# so real escap chars were written -PRODUCT=`sed "s/.*release \([0-9.]*\).*/\1/g" /etc/release 2> /dev/null` -SYSTEM=${SYSTEM="Mageia"} - -if [ -r /etc/sysconfig/oem ]; then - . /etc/sysconfig/oem -fi - -if [ "$BOOTUP" != "serial" ]; then - gprintf "\t\t\tWelcome to %s" "`echo -en '\\033[1;36m'`$SYSTEM`echo -en '\\033[0;39m'` $PRODUCT" -else - gprintf "\t\t\tWelcome to %s" "$SYSTEM $PRODUCT" -fi -echo -en "\r" -echo -if [ "$PROMPT" != "no" ]; then - gprintf "\t\tPress 'I' to enter interactive startup." - echo -fi - -# Fix console loglevel -if [ -n "$LOGLEVEL" ]; then - /bin/dmesg -n $LOGLEVEL -fi - -initsplash 5 -rc_splash start 1 - -# Initialize hardware -if [ -f /proc/sys/kernel/modprobe ]; then - if ! strstr "$cmdline" nomodules && [ -f /proc/modules ] ; then - sysctl -w kernel.modprobe="/sbin/modprobe" >/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 - fi -fi - -touch /dev/.in_sysinit >/dev/null 2>&1 - -# Set default affinity -if [ -x /bin/taskset ]; then - if strstr "$cmdline" default_affinity= ; then - for arg in $cmdline ; do - if [ "${arg##default_affinity=}" != "${arg}" ]; then - /bin/taskset -p ${arg##default_affinity=} 1 - fi - done - fi -fi - -nashpid=$(pidof nash 2>/dev/null) -[ -n "$nashpid" ] && kill $nashpid >/dev/null 2>&1 -unset nashpid -if [ "x$SPEEDBOOT" != "xyes" ]; then -action $"Starting udev: " /sbin/udevd --daemon -/sbin/udevadm trigger --type=subsystems --action=add -/sbin/udevadm trigger --type=devices --action=add -/sbin/udevadm settle -fi #SPEEDBOOT - -# Load other user-defined modules -for file in /etc/sysconfig/modules/*.modules ; do - [ -x $file ] && $file -done - -# Load modules (for backward compatibility with VARs) -if [ -f /etc/rc.modules ]; then - if [ "x$SPEEDBOOT" != "xyes" ]; then - /etc/rc.modules - else - ionice -c 3 /etc/rc.modules & - MODULES_PID=$! - fi -fi - -mount -n -t devpts -o mode=620 none /dev/pts >/dev/null 2>&1 -[ -n "$SELINUX_STATE" ] && restorecon /dev/pts >/dev/null 2>&1 - -mount -n -t tmpfs none /dev/shm >/dev/null 2>&1 - -# Configure kernel parameters -update_boot_stage RCkernelparam -apply_sysctl - -if [ "x$SPEEDBOOT" != "xyes" ]; then - -# If brltty exist start it (after udev so that vcsa device nodes are created) -[ -x /bin/brltty -a "$BRLTTY" != "no" ] && action "Starting braille terminal" /bin/brltty && SPEEDBOOT="DISABLED reason: braille" - -fi #SPEEDBOOT - -# Set the hostname. -update_boot_stage RChostname -action "Setting hostname %s: " ${HOSTNAME} hostname ${HOSTNAME} - -# Set the NIS domain name -if [ -n "$NISDOMAIN" ]; then - action "Setting NIS domain name %s: " $NISDOMAIN nisdomainname $NISDOMAIN -fi - -if [ "x$SPEEDBOOT" != "xyes" ]; then -# Now that we load only one scsi_hostadapter in the initrd, we -# need to load the others here -modprobe scsi_hostadapter >/dev/null 2>&1 -# Now that we use modular IDE, we need to do the same for IDE controllers -modprobe ide-controller >/dev/null 2>&1 -# Sync waiting for storage. -{ rmmod scsi_wait_scan ; modprobe scsi_wait_scan ; rmmod scsi_wait_scan ; } >/dev/null 2>&1 - -# Start any MD RAID arrays that haven't been started yet -if [ -f /etc/mdadm.conf -a -x /sbin/mdadm ]; then - MDADM_RETURN=`/sbin/mdadm -As --auto=yes --run 2>&1` - RETVAL=$? - if [ $RETVAL -gt 0 ]; then - echo $MDADM_RETURN | grep -q 'No arrays found in config file' - RETVAL=$? - # only enable speedboot if no array is configured - if [ $RETVAL -gt 0 ]; then - SPEEDBOOT="DISABLED: reason:MD RAID" - fi - else # MD RAID arrays detected, better to disable speedboot - SPEEDBOOT="DISABLED: reason:MD RAID" - - fi -fi -fi #SPEEDBOOT - -# Device mapper & related initialization -if ! __fgrep "device-mapper" /proc/devices >/dev/null 2>&1 ; then - modprobe dm-mod >/dev/null 2>&1 -fi - -if [ "x$SPEEDBOOT" != "xyes" ]; then -if [ -f /etc/crypttab ]; then - init_crypto 0 -fi - -if ! strstr "$cmdline" nompath && [ -f /etc/multipath.conf ] && \ - [ -x /sbin/multipath ]; then - modprobe dm-multipath > /dev/null 2>&1 - /sbin/multipath -v 0 - if [ -x /sbin/kpartx ]; then - /sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -p p" >/dev/null - fi -fi - -if ! strstr "$cmdline" nodmraid && [ -x /sbin/dmraid ]; then - modprobe dm-mirror >/dev/null 2>&1 - dmraidsets=$(LC_ALL=C /sbin/dmraid -s -c -i) - if [ "$dmraidsets" != "no raid disks" -a "$dmraidsets" != "no block devices found" ]; then - for dmname in $dmraidsets; do - if [[ "$dmname" =~ '^isw_.*' ]] && \ - ! strstr "$cmdline" noiswmd; then - continue - fi - - /sbin/dmraid -ay -i --rm_partitions -p "$dmname" >/dev/null 2>&1 - /sbin/kpartx -a -p p "/dev/mapper/$dmname" - SPEEDBOOT="DISABLED reason:dmraid" - done - fi - fi -fi #SPEEDBOOT - -# Start any MD RAID arrays that haven't been started yet -[ -r /proc/mdstat ] && [ -r /dev/md/md-device-map ] && /sbin/mdadm -IRs - -if [ -x /sbin/lvm ]; then - action "Setting up Logical Volume Management:" /sbin/lvm vgchange -a y --ignorelockingfailure -fi - -if [ "x$SPEEDBOOT" != "xyes" ]; then -if [ -f /etc/crypttab ]; then - init_crypto 0 -fi -fi #SPEEDBOOT - -if strstr "$cmdline" fastboot || [ -f /fastboot ]; then - fastboot=yes -fi - -if [ -f /fsckoptions ]; then - fsckoptions=$(cat /fsckoptions) -fi - -# (blino) always source autofsck settings, for AUTOFSCK_CRYPTO_TIMEOUT (#16029) -[ -f /etc/sysconfig/autofsck ] && . /etc/sysconfig/autofsck - -if strstr "$cmdline" forcefsck || [ -f /forcefsck ]; then - fsckoptions="-f $fsckoptions" -elif [ -f /.autofsck ]; then - if [ "$AUTOFSCK_DEF_CHECK" = "yes" ]; then - AUTOFSCK_OPT="$AUTOFSCK_OPT -f" - fi - if [ -n "$AUTOFSCK_SINGLEUSER" ]; then - [ -n "$PLYMOUTH" ] && plymouth --hide-splash - rc_splash verbose - echo - gprintf "*** Warning -- the system did not shut down cleanly. \n" - gprintf "*** Dropping you to a shell; the system will continue\n" - gprintf "*** when you leave the shell.\n" - [ -n "$SELINUX_STATE" ] && echo "0" > /sys/fs/selinux/enforce - sulogin - [ -n "$SELINUX_STATE" ] && echo "1" > /sys/fs/selinux/enforce - [ -n "$PLYMOUTH" ] && plymouth --show-splash - fi - fsckoptions="$AUTOFSCK_OPT $fsckoptions" -fi - -if [ "$BOOTUP" = "color" ]; then - fsckoptions="-C $fsckoptions" -else - fsckoptions="-V $fsckoptions" -fi - -READONLY= -if [ -f /etc/sysconfig/readonly-root ]; then - . /etc/sysconfig/readonly-root -fi -if strstr "$cmdline" readonlyroot ; then - READONLY=yes - [ -z "$RW_MOUNT" ] && RW_MOUNT=/var/lib/stateless/writable - [ -z "$STATE_MOUNT" ] && STATE_MOUNT=/var/lib/stateless/state -fi -if strstr "$cmdline" noreadonlyroot ; then - READONLY=no -fi - -if [ "$READONLY" = "yes" -o "$TEMPORARY_STATE" = "yes" ]; then - - mount_empty() { - if [ -e "$1" ]; then - echo "$1" | cpio -p -vd "$RW_MOUNT" &>/dev/null - mount -n --bind "$RW_MOUNT$1" "$1" - fi - } - - mount_dirs() { - if [ -e "$1" ]; then - mkdir -p "$RW_MOUNT$1" - find "$1" -type d -print0 | cpio -p -0vd "$RW_MOUNT" &>/dev/null - mount -n --bind "$RW_MOUNT$1" "$1" - fi - } - - mount_files() { - if [ -e "$1" ]; then - cp -a --parents "$1" "$RW_MOUNT" - mount -n --bind "$RW_MOUNT$1" "$1" - fi - } - - # Common mount options for scratch space regardless of - # type of backing store - mountopts= - - # Scan partitions for local scratch storage - rw_mount_dev=$(blkid -t LABEL="$RW_LABEL" -l -o device) - - # First try to mount scratch storage from /etc/fstab, then any - # partition with the proper label. If either succeeds, be sure - # to wipe the scratch storage clean. If both fail, then mount - # scratch storage via tmpfs. - if mount $mountopts "$RW_MOUNT" > /dev/null 2>&1 ; then - rm -rf "$RW_MOUNT" > /dev/null 2>&1 - elif [ x$rw_mount_dev != x ] && mount $rw_mount_dev $mountopts "$RW_MOUNT" > /dev/null 2>&1; then - rm -rf "$RW_MOUNT" > /dev/null 2>&1 - else - mount -n -t tmpfs $RW_OPTIONS $mountopts none "$RW_MOUNT" - fi - - for file in /etc/rwtab /etc/rwtab.d/* /dev/.initramfs/rwtab ; do - is_ignored_file "$file" && continue - [ -f $file ] && cat $file | while read type path ; do - case "$type" in - empty) - mount_empty $path - ;; - files) - mount_files $path - ;; - dirs) - mount_dirs $path - ;; - *) - ;; - esac - [ -n "$SELINUX_STATE" ] && [ -e "$path" ] && restorecon -R "$path" - done - done - - # Use any state passed by initramfs - [ -d /dev/.initramfs/state ] && cp -a /dev/.initramfs/state/* $RW_MOUNT - - # In theory there should be no more than one network interface active - # this early in the boot process -- the one we're booting from. - # Use the network address to set the hostname of the client. This - # must be done even if we have local storage. - ipaddr= - if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]; then - ipaddr=$(ip addr show to 0.0.0.0/0 scope global | awk '/[[:space:]]inet / { print gensub("/.*","","g",$2) }') - for ip in $ipaddr ; do - HOSTNAME= - eval $(ipcalc -h $ip 2>/dev/null) - [ -n "$HOSTNAME" ] && { hostname ${HOSTNAME} ; break; } - done - fi - - # Clients with read-only root filesystems may be provided with a - # place where they can place minimal amounts of persistent - # state. SSH keys or puppet certificates for example. - # - # Ideally we'll use puppet to manage the state directory and to - # create the bind mounts. However, until that's all ready this - # is sufficient to build a working system. - - # First try to mount persistent data from /etc/fstab, then any - # partition with the proper label, then fallback to NFS - state_mount_dev=$(blkid -t LABEL="$STATE_LABEL" -l -o device) - if mount $mountopts $STATE_OPTIONS "$STATE_MOUNT" > /dev/null 2>&1 ; then - /bin/true - elif [ x$state_mount_dev != x ] && mount $state_mount_dev $mountopts "$STATE_MOUNT" > /dev/null 2>&1; then - /bin/true - elif [ ! -z "$CLIENTSTATE" ]; then - # No local storage was found. Make a final attempt to find - # state on an NFS server. - - mount -t nfs $CLIENTSTATE/$HOSTNAME $STATE_MOUNT -o rw,nolock - fi - - if [ -w "$STATE_MOUNT" ]; then - - mount_state() { - if [ -e "$1" ]; then - [ ! -e "$STATE_MOUNT$1" ] && cp -a --parents "$1" "$STATE_MOUNT" - mount -n --bind "$STATE_MOUNT$1" "$1" - fi - } - - for file in /etc/statetab /etc/statetab.d/* ; do - is_ignored_file "$file" && continue - [ ! -f "$file" ] && continue - - if [ -f "$STATE_MOUNT/$file" ] ; then - mount -n --bind "$STATE_MOUNT/$file" "$file" - fi - - for path in $(grep -v "^#" "$file" 2>/dev/null); do - mount_state "$path" - [ -n "$SELINUX_STATE" ] && [ -e "$path" ] && restorecon -R "$path" - done - done - - if [ -f "$STATE_MOUNT/files" ] ; then - for path in $(grep -v "^#" "$STATE_MOUNT/files" 2>/dev/null); do - mount_state "$path" - [ -n "$SELINUX_STATE" ] && [ -e "$path" ] && restorecon -R "$path" - done - fi - fi -fi - -if [[ " $fsckoptions" != *" -y"* ]]; then - fsckoptions="-a $fsckoptions" -fi - -_RUN_QUOTACHECK=0 -if strstr "$cmdline" forcequotacheck || [ -f /forcequotacheck ] ; then - _RUN_QUOTACHECK=1 -fi -Fsck() -{ - fsck $* - rc=$? - - if [ "$rc" -eq "0" ]; then - echo_success - echo - elif [ "$rc" -eq "1" ]; then - echo_passed - echo - _RUN_QUOTACHECK=1 - elif [ "$rc" -eq "2" -o "$rc" -eq "3" ]; then - gprintf "Unmounting file systems\n" - umount -a - mount -n -o remount,ro / - gprintf "Automatic reboot in progress.\n" - reboot -f - elif [ $((rc & 4)) = 4 ]; then - # Return code is a or between return codes for the filesystems - # 4 means that a filesystem remains corrupted - rc_splash verbose - echo_failure - 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" - - str=`gprintf "(Repair filesystem)"` - PS1="$str \# # "; export PS1 - [ "$SELINUX_STATE" = "1" ] && disable_selinux - sulogin - - gprintf "Unmounting file systems\n" - umount -a - mount -n -o remount,ro / - gprintf "Automatic reboot in progress.\n" - reboot -f - else - echo_failure - echo - gprintf "*** A non fatal error occurred during the file system check.\n" - fi -} - -remount_needed() { - local state oldifs - [ "$READONLY" = "yes" ] && return 1 - state=$(LC_ALL=C awk '/ \/ / && ($3 !~ /rootfs/) { print $4 }' /proc/mounts) - oldifs=$IFS - IFS="," - for opt in $state ; do - if [ "$opt" = "rw" ]; then - IFS=$oldifs - return 1 - fi - done - IFS=$oldifs - return 0 -} - -if [ "x$SPEEDBOOT" = "xyes" ]; then - wait $UDEV_DISK_PID -fi -# do not check / if already rw (for example with unionfs) -if [ -z "$fastboot" -a "$READONLY" != "yes" ] && remount_needed; then - gprintf "Checking root filesystem\n" - Fsck -T -a $fsckoptions / -fi -_RUN_QUOTACHECK=0 - -# Remount the root filesystem read-write. -update_boot_stage RCmountfs -if remount_needed ; then - action "Remounting root filesystem in read-write mode: " mount -n -o remount,rw / -fi - -# wait for usb storage scanning processes to finish -if ! strstr "$cmdline" nousb; then - LC_ALL=C grep '08' /sys/bus/usb/devices/*/bInterfaceClass >/dev/null 2>&1 - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - countdown=20 - until [ -d /sys/module/usb_storage -o $countdown -eq 0 ]; do - usleep 100000; let countdown=$countdown-1; - done - while ps -eocomm | grep -q usb-stor-scan; do - sleep 1; - done - fi -fi - -if [ "x$SPEEDBOOT" != "xyes" ]; then -# Clean up SELinux labels -if [ -n "$SELINUX_STATE" ]; then - restorecon /etc/mtab /etc/ld.so.cache /etc/blkid/blkid.tab /etc/resolv.conf >/dev/null 2>&1 - SPEEDBOOT="DISABLED reason: SELinux" -fi - -[ -x /sbin/hibernate-cleanup.sh ] && /sbin/hibernate-cleanup.sh start - -# If relabeling, relabel mount points. -if [ -n "$SELINUX_STATE" -a "$READONLY" != "yes" ]; then - if strstr "$cmdline" autorelabel || [ -f /.autorelabel ] ; then - restorecon $(awk '!/^#/ && $4 !~ /noauto/ && $2 ~ /^\// { print $2 }' /etc/fstab) >/dev/null 2>&1 - fi -fi -fi - -if [ "$READONLY" != "yes" ] ; then - # Clear mtab - (> /etc/mtab) &> /dev/null - - # Remove stale backups - rm -f /etc/mtab~ /etc/mtab~~ - - # Enter mounted filesystems into /etc/mtab - mount -f / - mount -f /proc >/dev/null 2>&1 - mount -f /sys >/dev/null 2>&1 - mount -f /dev/pts >/dev/null 2>&1 - mount -f /dev/shm >/dev/null 2>&1 - mount -f /proc/bus/usb >/dev/null 2>&1 -fi -# (pixel) also added /initrd/loopfs for loopback root -mount -f /initrd/loopfs 2>/dev/null - -if [ -x /sbin/isapnp -a -f /etc/isapnp.conf -a ! -f /proc/isapnp ]; then - # check for arguments passed from kernel - if ! strstr "$cmdline" nopnp ; then - PNP=yes - fi - 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 - -# 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 - -# 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 noopts=loop $fsckoptions -fi - -# Mount all other filesystems (except for network bases filesystems and /proc, which is already -# mounted). Contrary to standard usage, -# filesystems are NOT unmounted in single user mode. -# (pixel) also do not mount loopback and encrypted filesystems -# will be done later -( -# export locales (needed by mount.ntfs-3g) -export LC_ALL -export LANG -# The 'no' applies to all listed filesystem types. See mount(8). -if [ "$READONLY" != "yes" ] ; then - action "Mounting local filesystems: " mount -a -t nodevpts,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev,noloop,noencrypted -else - action "Mounting local filesystems: " mount -a -n -t nodevpts,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev,noloop,noencrypted -fi -) - -if [ "x$SPEEDBOOT" != "xyes" ]; then -[[ -z $AUTOFSCK_CRYPTO_TIMEOUT ]] && AUTOFSCK_CRYPTO_TIMEOUT=15 - -#Mounting Encrypted filesystem -encrypted_swap= -if [[ ! -f /fastboot ]];then - encrypted= - while read -a entry;do - device=${entry[0]} - mountpoint=${entry[1]} - options=${entry[3]} - type=${entry[2]} - if [[ $options == *encryption=* || $options == *encrypted* ]];then - [[ $options == *noauto* ]] && continue - if [[ $type == *swap* ]];then - encrypted_swap="$encrypted_swap $device" - continue - fi - encrypted="$encrypted $mountpoint" - fi - done < /etc/fstab - if [[ -n $encrypted ]];then - modprobe cryptoloop - rc_splash verbose - echo "We have discovered Encrypted filesystems, do you want to mount them now ?" - MSG=`gprintf "Press Y within %%d seconds to mount your encrypted filesystems..."` - KEYS=`gprintf "yY"` - if /sbin/getkey -c $AUTOFSCK_CRYPTO_TIMEOUT -m "$MSG" "$KEYS"; then - echo -e '\n' - for i in ${encrypted};do - echo -n "${i} "; mount ${i} - done - else - echo -e '\n' - fi - fi -fi - -# (pixel) Check loopback filesystems -if [ ! -f /fastboot ]; then - modprobe loop - gprintf "Checking loopback filesystems" - Fsck -T -R -A -a -t opts=loop $fsckoptions -fi - -fi #SPEEDBOOT - -# Mount loopback -action "Mounting loopback filesystems: " mount -a -O loop - -# Update quotas if necessary -if [ X"$_RUN_QUOTACHECK" = X1 ] && [ -x /sbin/quotacheck ]; then - action "Checking local filesystem quotas: " /sbin/quotacheck -anug -fi - -if [ -x /sbin/quotaon ]; then - action "Turning on user and group quotas for local filesystems: " /sbin/quotaon -aug -fi - -if [ "x$SPEEDBOOT" != "xyes" ]; then -# Check to see if a full relabel is needed -if [ -n "$SELINUX_STATE" -a "$READONLY" != "yes" ]; then - if strstr "$cmdline" autorelabel || [ -f /.autorelabel ] ; then - relabel_selinux - fi -else - if [ "$READONLY" != "yes" ] && [ -d /etc/selinux ]; then - [ -f /.autorelabel ] || touch /.autorelabel - fi -fi -fi #SPEEDBOOT - -# Initialize pseudo-random number generator -if [ -f "/var/lib/random-seed" ]; then - cat /var/lib/random-seed > /dev/urandom -else - [ "$READONLY" != "yes" ] && touch /var/lib/random-seed -fi -if [ "$READONLY" != "yes" ]; then - chmod 600 /var/lib/random-seed - dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=512 2>/dev/null -fi -if [ "x$SPEEDBOOT" != "xyes" ]; then -if [ -f /etc/crypttab ]; then - init_crypto 1 - SPEEDBOOT="DISABLED reason: crypto FS" -fi - -# Configure machine if necessary. -if [ -f /.unconfigured ]; then - - if [ -x /bin/plymouth ]; then - /bin/plymouth quit - fi - - if [ -x /usr/bin/system-config-keyboard ]; then - /usr/bin/system-config-keyboard - fi - if [ -x /usr/bin/passwd ]; then - /usr/bin/passwd root - fi - if [ -x /usr/sbin/system-config-network-tui ]; then - /usr/sbin/system-config-network-tui - fi - if [ -x /usr/sbin/timeconfig ]; then - /usr/sbin/timeconfig - fi - if [ -x /usr/sbin/authconfig-tui ]; then - /usr/sbin/authconfig-tui --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 nisdomainname $NISDOMAIN - fi - fi - - rm -f /.unconfigured -fi -fi - -# Clean out /. -rm -f /fastboot /fsckoptions /forcefsck /.autofsck /forcequotacheck /halt \ - /poweroff /.suspended /etc/killpower &> /dev/null - -# Do we need (w|u)tmpx files? We don't set them up, but the sysadmin might... -_NEED_XFILES= -[ -f /var/run/utmpx ] || [ -f /var/log/wtmpx ] && _NEED_XFILES=1 - -# Clean up /var. -rm -rf /var/lock/cvs/* /var/run/screen/* -find /var/lock /var/run ! -type d ! -path '/var/lock/TMP_1ST' -exec rm -f {} \; - -if [ "x$SPEEDBOOT" = "xyes" ]; then - wait $MODULES_PID - wait $UDEV_PID - /etc/rc.d/rc S & - RC_PID=$! -fi -{ -# Clean up utmp/wtmp -> /var/run/utmp -touch /var/log/wtmp /var/log/btmp -chgrp utmp /var/run/utmp /var/log/wtmp /var/log/btmp -chmod 0664 /var/run/utmp /var/log/wtmp -chmod 0600 /var/log/btmp -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 -[ -n "$SELINUX_STATE" ] && restorecon /var/run/utmp* /var/log/wtmp* /var/log/btmp >/dev/null 2>&1 - -# Clean up various /tmp bits -[ -n "$SELINUX_STATE" ] && restorecon /tmp -rm -f /tmp/.X*-lock /tmp/.lock.* /tmp/.s.PGSQL.* -rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \ - /tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-* \ - /tmp/ssh-* /tmp/.fam_socket /tmp/.esd /tmp/.esd-* \ - /tmp/pulse-* /tmp/.sawfish-* /tmp/esrv* /tmp/kio* \ - /var/lib/gdm/core.* - -# Make ICE directory -mkdir -m 1777 -p /tmp/.ICE-unix >/dev/null 2>&1 -chown root:root /tmp/.ICE-unix -[ -n "$SELINUX_STATE" ] && restorecon /tmp/.ICE-unix >/dev/null 2>&1 - -# Start up swapping. -update_boot_stage RCswap -action "Enabling /etc/fstab swaps: " swapon -a -e 2>/dev/null -if [ "$AUTOSWAP" = "yes" ]; then - curswap=$(awk '/^\/dev/ { print $1 }' /proc/swaps | while read x; do get_numeric_dev dec $x ; echo -n " "; done) - swappartitions=$(blkid -t TYPE=swap -o device) - if [ x"$swappartitions" != x ]; then - for partition in $swappartitions ; do - [ ! -e $partition ] && continue - majmin=$(get_numeric_dev dec $partition) - echo $curswap | grep -qw "$majmin" || action "Enabling local swap partitions: " swapon $partition - done - fi -fi - -# Set up binfmt_misc -/bin/mount -t binfmt_misc none /proc/sys/fs/binfmt_misc > /dev/null 2>&1 - -# Boot time profiles. Yes, this should be somewhere else. -if strstr "$cmdline" netprofile= && [ -x /usr/sbin/system-config-network-cmd ]; then - for arg in $cmdline ; do - if [ "${arg##netprofile=}" != "${arg}" ]; then - /usr/sbin/system-config-network-cmd --profile ${arg##netprofile=} - fi - done -fi - -( -# Now turn on swap in case we swap to files. -action "Enabling swap space: " swapon -a -e - -if [ "x$SPEEDBOOT" != "xyes" ]; then -# 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 [ -n "$USEMODULES" -a -f /proc/scsi/scsi ] && LC_ALL=C grep -q 'Type: Sequential-Access' /proc/scsi/scsi 2>/dev/null ; then - LC_ALL=C fgrep -q ' 9 st' /proc/devices || modprobe st >/dev/null 2>&1 - SPEEDBOOT="DISABLED reason: SCSI tape" -fi -fi #SPEEDBOOT - -( -# 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 which has no special parameters will use the defaults. -# Each non-disk which has no special parameters will be ignored. -# - -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; -disk[9]=hdi; disk[10]=hdj; disk[11]=hdk; disk[12]=hdl; -disk[13]=hdm; disk[14]=hdn; disk[15]=hdo; disk[16]=hdp; -disk[17]=hdq; disk[18]=hdr; disk[19]=hds; disk[20]=hdt; -disk[21]=sda; disk[22]=sdb; disk[23]=sdc; disk[24]=sdd; -disk[25]=sde; disk[26]=sdf; disk[27]=sdg; disk[28]=sdh; -disk[29]=sr0; disk[30]=sr1; disk[31]=sr2; disk[32]=sr3; -disk[33]=scd0; disk[34]=scd1; disk[35]=scd2; disk[36]=scd3; -disk[37]=sg0; disk[38]=sg1; disk[39]=sg2; disk[40]=sg3; - - -# Skip hard disks optimization if software RAID arrays are currently -# resyncing and disks heavily active, because hdparm might hang and -# lock system startup in such situation - -if [ ! -f /proc/mdstat ] || ! /bin/egrep -qi "re(cover|sync)|syncing" /proc/mdstat; then - if [ -x /sbin/hdparm ]; then - for device in {0..40}; 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" -o -e "/sys/block/${disk[$device]}/device/vendor" ]; then - if [ -e "/proc/ide/${disk[$device]}/media" ]; then - hdmedia=`cat /proc/ide/${disk[$device]}/media` - else - hdmedia=`cat /sys/block/${disk[$device]}/device/vendor` - fi - if [ "$hdmedia" = "disk" -o "$vendor" = "ATA" -o -f "/etc/sysconfig/harddisk${disk[$device]}" ]; then - if [ -n "${HDFLAGS[$device]}" ]; then - sleep 2 - action "Setting hard drive parameters for %s: " ${disk[$device]} /sbin/hdparm ${HDFLAGS[$device]} /dev/${disk[$device]} - fi - fi - fi - done - fi -else - action "RAID Arrays are resyncing. Skipping hard drive parameters section." /bin/true -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 -s -f 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 -[ -f /var/log/dmesg ] && mv -f /var/log/dmesg /var/log/dmesg.old -dmesg -s 131072 > /var/log/dmesg -) & - -# create the crash indicator flag to warn on crashes, offer fsck with timeout -touch /.autofsck &> /dev/null - -if [ "$PROMPT" != no ]; then - while :; do - pid=$(/sbin/pidof getkey) - [ -n "$pid" -o -e /var/run/getkey_done ] && break - usleep 100000 - done - [ -n "$pid" ] && kill -TERM "$pid" >/dev/null 2>&1 -fi -} & -if strstr "$cmdline" confirm ; then - touch /var/run/confirm -fi -if [ "x$SPEEDBOOT" != "xyes" ]; then -if [ "$PROMPT" != "no" ]; then - /sbin/getkey i && touch /var/run/confirm - touch /var/run/getkey_done -fi -wait -[ "$PROMPT" != no ] && rm -f /var/run/getkey_done -fi - -if strstr "$cmdline" failsafe; then - touch /var/run/failsafe -fi - -if [ -f /var/lock/TMP_1ST ];then - if [ -f /etc/init.d/mandrake_firstime ];then - /bin/sh /etc/init.d/mandrake_firstime - fi -fi - -if [ "x$SPEEDBOOT" = "xyes" ]; then - if [ ! -f /.readahead_collect -a -x /sbin/readahead_later ]; then - /sbin/readahead_later > /dev/null 2>&1 - fi - wait $RC_PID - countdown=10 - until [ -e /tmp/.X11-unix/X0 -o $countdown -eq 0 ]; do - sleep 1; let countdown=$countdown-1; - done - - - - /sbin/udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=block --subsystem-nomatch=mem --subsystem-nomatch=input --subsystem-nomatch=acpi --subsystem-nomatch=rtc --subsystem-nomatch=hid - /sbin/udevadm settle --timeout=5 > /dev/null 2>&1 - /sbin/udevadm control --env=STARTUP= - mount -n -t usbfs -o devmode=0664,devgid=43 /proc/bus/usb /proc/bus/usb - - # (anssi) at this point plymouth should have quit, reopen descriptors to - # ensure that the output of the rest of this script is seen if the user is - # not in X11 - exec 0<>/proc/self/fd/0 1<>/proc/self/fd/1 2<>/proc/self/fd/2 -fi - -if [ -f /etc/init.d/mandrake_everytime ]; then - /bin/sh /etc/init.d/mandrake_everytime -fi - -if [ "x$SPEEDBOOT_PROBE" = "xyes" ]; then - sed -i -e "/$uname_r .*/d" /var/lib/speedboot/status 2>/dev/null - unset SPEEDBOOT_PROBE -fi - -if [ "x$SPEEDBOOT" = "xyes" -a ! -e /tmp/.X11-unix/X0 ]; then - /etc/init.d/dm stop - grep -q "$uname_r" /var/lib/speedboot/status 2> /dev/null - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - sed -i -e "s/^$uname_r FAILED (first time)/$uname_r FAILED/g" -e "/FAILED/!s/^$uname_r .*/$uname_r FAILED (first time)/g" /var/lib/speedboot/status - else - echo "$uname_r FAILED (first time)" >> /var/lib/speedboot/status - fi -fi - -# system configuration doesn't permit speedboot or speedboot failed, disable it -if strstr "$SPEEDBOOT" DISABLED ; then - grep -q $uname_r /var/lib/speedboot/status 2> /dev/null - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - sed -i -e "s/^$uname_r .*/$uname_r $SPEEDBOOT/g" /var/lib/speedboot/status - else - echo "$uname_r $SPEEDBOOT" >> /var/lib/speedboot/status - fi -fi - -unset SPEEDBOOT - -# (pixel) a kind of profile for XF86Config -# if no XFree=XXX given on kernel command-line, restore XF86Config.standard -for i in XF86Config XF86Config-4; do - if [ -L "/etc/X11/$i" ]; then - XFree=`sed -n 's/.*XFree=\(\w*\).*/\1/p' /proc/cmdline` - [ -n "$XFree" ] || XFree=standard - [ -r "/etc/X11/$i.$XFree" ] && ln -sf "$i.$XFree" "/etc/X11/$i" - fi -done - -# Let rhgb know that we're leaving rc.sysinit -if [ -x /bin/plymouth ]; then - /bin/plymouth --sysinit -fi - -# remove this file at the very end, for speedboot -rm -f /dev/.in_sysinit - |