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
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
##
# 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
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
##
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