# need to mount sys because fsck might use it
# try to mount them directly if they fail from fstab?
# TODO bail to emergency shell if these fail?
-# try to mount them directly if they fail from fstab?
-# TODO bail to emergency shell if these fail?
+# TODO set NOVIRTFS='/var/run' and the like to skip some of these?
+
status_begin mounting virtual filesystems
mountpoint -q /proc || mount -t proc proc /proc -o nosuid,noexec,nodev
mountpoint -q /sys || mount -t sysfs sys /sys -o nosuid,noexec,nodev
sysctl -q -p
status_check
-# * set up /dev (via udev on modern linux systems)
-
-##
-## begin voodoo scripting from lfs-initscripts
-##
-
-# udev will handle hotplugs
-echo > /proc/sys/kernel/hotplug
-
-# start udev
-# this should probably be moved to inittab or started via
-# something that could monitor it
-status_starting udevd daemon
-/lib/udev/udevd --daemon
-status_check
+# * fsck and mount filesystems
-# Now traverse /sys in order to "coldplug" devices that have
-# already been discovered
-# this is going to fail if sys isn't mounted
-status_begin populating udevadm triggers
-udevadm trigger --action=add --type=subsystems &&
-udevadm trigger --action=add --type=devices &&
-udevadm trigger --action=change --type=devices
+#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
-# Now wait for udevd to process the uevents we triggered
-# if ! is_true "$OMIT_UDEV_SETTLE"; then
-status_begin waiting for udevadm to settle
-udevadm settle
+status_begin running depmod
+depmod
status_check
-# 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
-##
+# 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
+ ##
+
+ # udev will handle hotplugs
+ echo > /proc/sys/kernel/hotplug
+
+ # start udev
+ # this should probably be moved to inittab or started via
+ # something that could monitor it
+ status_starting udevd daemon
+ /sbin/udevd --daemon
+ status_check
+
+ # Now traverse /sys in order to "coldplug" devices that have
+ # already been discovered
+ # this is going to fail if sys isn't mounted
+ status_begin populating udevadm triggers
+ udevadm trigger --action=add --type=subsystems &&
+ udevadm trigger --action=add --type=devices &&
+ udevadm trigger --action=change --type=devices
+ status_check
+
+ # Now wait for udevd to process the uevents we triggered
+ # if ! is_true "$OMIT_UDEV_SETTLE"; then
+
+ # quoted here so 'for' doesn't confuse syntax highlighting
+ status_begin 'waiting for udevadm to settle'
+ udevadm settle
+ status_check
+ # 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
+ ##
+ ## end voodoo scripting
+ ##
+fi
# * set up swap
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
rm -f /etc/mtab
mount -af
+mount -f /
# * do any boot time /tmp cleanup or similar