X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=scripts%2Frc.sysinit;h=ebfe17c286da40ee5474ca5e3da30c93c0cc15a4;hb=8f4b6393d2a3fea2008722d6f2b29b3e3d3bb5c7;hp=29679512ebd2f88352a811a2da92c014e33d956b;hpb=24739081c80609ad45ba78147e2b55cddf7c29a2;p=startuptools diff --git a/scripts/rc.sysinit b/scripts/rc.sysinit index 2967951..ebfe17c 100644 --- a/scripts/rc.sysinit +++ b/scripts/rc.sysinit @@ -39,11 +39,8 @@ mountpoint -q /dev/pts && mountpoint -q /dev/shm status_check -#status_begin mounting virtual filesystems -#mount /proc && -#mount /sys && -#mount /dev -#status_check +# bash seems to rely on this +ln -s /proc/self/fd /dev/fd # * set the host name status_begin Setting hostname @@ -61,11 +58,46 @@ status_begin loading sysctl.conf sysctl -q -p status_check -# * set up /dev +# * fsck and mount filesystems + +#status_starting fsck of / +#mount -o remount,ro / +#fsck -A -T +# TODO actually check the return value +status_begin remounting root filesystem rw +mount -o remount,rw / +status_check + +# need to run depmod here, just in case +# it should be done at kernel install time, but this can avoid +# errors if that goes wrong or there are new or removed modules +status_begin running depmod +depmod +status_check + +# load any kernel modules +# there's probably a better way to do this +# this could also be done in the initial ram-disk, but +# this covers the case where there isn't one, but we still want +# to load more hardware +if ! is_true "$NOPROBEHW" ; then + status_begin "loading kernel modules" + modlist=$(lspci -k|grep 'Kernel modules:' | awk '{print $3}'| sort -u) + if [ -n "$modlist" ]; then + modprobe $modlist + fi + status_check +fi -if [ -x /bin/mdev ] && [ ! is_true "$USE_UDEVD" ]; then - echo /bin/mdev > /proc/sys/kernel/hotplug -elif [ -x /lib/udev/udevd ]; then +# set up /dev + +if [ -x /sbin/mdev ] && ! is_true "$USE_UDEV" ; then + status_begin setting up mdev + echo > /dev/mdev.seq + echo /sbin/mdev > /proc/sys/kernel/hotplug + /sbin/mdev -s + status_check +elif [ -x /sbin/udevd ]; then ## ## begin voodoo scripting from lfs-initscripts ## @@ -77,7 +109,7 @@ elif [ -x /lib/udev/udevd ]; then # this should probably be moved to inittab or started via # something that could monitor it status_starting udevd daemon - /lib/udev/udevd --daemon + /sbin/udevd --daemon status_check # Now traverse /sys in order to "coldplug" devices that have @@ -96,14 +128,11 @@ elif [ -x /lib/udev/udevd ]; then status_begin 'waiting for udevadm to settle' udevadm settle status_check - # fi + # fi # If any LVM based partitions are on the system, ensure they # are activated so they can be used. # if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi - - # log_success_msg2 - ## ## end voodoo scripting ## @@ -113,24 +142,14 @@ fi swapon -a -# * fsck and mount filesystems - -#status_starting fsck of / -#mount -o remount,ro / -#fsck -A -T -# TODO actually check the return value -status_begin remounting root filesystem rw -mount -o remount,rw / -status_check - # mount any remaining filesystems status_begin mounting remaining filesystems -mount -a -t noproc,sysfs,devtmpfs,devpts +mount -a -t noproc,sysfs,devtmpfs,devpts,tmpfs status_check +# force mtab symlink rm -f /etc/mtab -mount -af -mount -f / +ln -s /proc/mounts /etc/mtab # * do any boot time /tmp cleanup or similar