]> pd.if.org Git - startuptools/blobdiff - scripts/rc.sysinit
force /etc/mtab to be a symlink to /proc/mounts
[startuptools] / scripts / rc.sysinit
index 20575e4bdc21bd53f534308c6b4bde40084a4e04..b693ecd41f93d77dc0d1499f27c59379e75e53dc 100644 (file)
@@ -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,39 @@ status_begin loading sysctl.conf
 sysctl -q -p
 status_check
 
+# * 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 "looking for kernel modules to load"
+       lspci -k|grep 'Kernel modules:' | awk '{print $3}'| sort -u | xargs -n1 modprobe
+       status_check
+fi
 
 # set up /dev
 
-if [ -x /sbin/mdev ] && [ ! is_true "$USE_UDEVD" ]; then
-       status_starting setting up mdev
+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
@@ -114,24 +139,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