#!/bin/sh msg () { [ "${quiet}" != "y" ] && echo $@; } err () { echo "ERROR: $@"; } msg ":: Loading Initramfs" /bin/mount -t sysfs none /sys /bin/mount -t proc none /proc read CMDLINE </proc/cmdline export CMDLINE # Used so hooks can override params to kinit export root="" export rootdelay="0" export kinit_params="" echo "/bin/modprobe" > /proc/sys/kernel/modprobe for cmd in $CMDLINE; do case "$cmd" in [0123456Ss]) continue ;; *=*) export "${cmd}" ;; *) export "${cmd}=y" ;; esac done OLDIFS=$IFS IFS=, if [ "x${disablehooks}" != "x" ]; then for d in ${disablehooks}; do export "hook_${d}=disabled" done fi if [ "x${disablemodules}" != "x" ]; then for d in ${disablemodules}; do export "mod_${d}=disabled" done fi IFS=$OLDIFS . /config for m in $MODULES; do TST="" eval "TST=\$mod_${h}" if [ "${TST}" != "disabled" ]; then /bin/modprobe -q $m > /dev/null 2>&1 fi done if [ -e "/hooks" ]; then for h in $HOOKS; do TST="" eval "TST=\$hook_${h}" if [ "${TST}" != "disabled" ]; then run_hook () { msg "$h: no run function defined"; } if [ -e "/hooks/$h" ]; then . /hooks/$h msg ":: Running Hook [${h}]" run_hook fi fi done fi if [ "${break}" = "y" ]; then echo ":: Break requested, type 'exit' to resume operation" echo " NOTE: klibc contains no 'ls' binary, used 'echo *' instead" PS1="ramfs$ " /bin/sh -i fi #Special handling is udev is running udevpid=$(/bin/minips -C udevd -o pid=) if [ "x${udevpid}" != "x" ]; then /bin/kill -9 $udevpid /bin/sleep 0.01 fi # Optimize fs type loop for mounting rootfs msg ":: Initramfs Completed - control passing to kinit" echo "/sbin/modprobe" > /proc/sys/kernel/modprobe exec /bin/kinit "root=${root}" "rootdelay=${rootdelay}" ${kinit_params} < /dev/console > /dev/null 2>&1