#!/bin/sh . /etc/initrd.defaults is_nfs() { [ "${REAL_ROOT}" = "/dev/nfs" ] && return 0 return 1 } is_livecd() { [ "${CDROOT}" = "1" ] && return 0 return 1 } good_msg() { [ -n "${QUIET}" ] && [ -z "${DEBUG}" ] && return 0 msg_string=$1 msg_string="${msg_string:-...}" [ "$2" != 1 ] && \ echo -e "${GOOD}>>${NORMAL}${BOLD} ${msg_string} ${NORMAL}" } warn_msg() { msg_string=$1 msg_string="${msg_string:-...}" [ "$2" != 1 ] && \ echo -e "${WARN}**${NORMAL}${BOLD} ${msg_string} ${NORMAL}" } bad_msg() { msg_string=$1 msg_string="${msg_string:-...}" if [ "$2" != 1 ]; then # TODO(lxnay): fix circular dep with 00-splash.sh splashcmd verbose echo -e "${BAD}!!${NORMAL}${BOLD} ${msg_string} ${NORMAL}" fi } quiet_kmsg() { # if QUIET is set make the kernel less chatty [ -n "${QUIET}" ] && echo "0" > /proc/sys/kernel/printk } verbose_kmsg() { # if QUIET is set make the kernel less chatty [ -n "${QUIET}" ] && echo "6" > /proc/sys/kernel/printk } test_success() { local ret=${?} local error_string="${1:-run command}" if [ "${ret}" != "0" ]; then bad_msg "Failed to ${1}; failing back to the shell..." run_shell fi } sdelay() { if [ -n "${SDELAY}" ]; then good_msg "Waiting ${SDELAY} seconds..." sleep ${SDELAY} elif is_livecd; then local msg="Hint: Use scandelay[=seconds] if" msg="${msg} your live medium is slowand boot fails" good_msg "${msg}" fi } run_shell() { /bin/ash } do_rundebugshell() { # TODO(lxnay): fix circular dep with 00-splash.sh splashcmd verbose good_msg 'Type "exit" to continue with normal bootup.' [ -x /bin/sh ] && /bin/sh || /bin/ash } rundebugshell() { if [ -n "${DEBUG}" ]; then good_msg "Starting debug shell as requested." good_msg "Stopping by: ${1}" do_rundebugshell fi } maybe_setup_ld_cache() { # This calls ldconfig if /etc/ld.so.cache was not # created at initramfs build time. This may happen # if the initramfs was generated by an unprivileged user # since running ldconfig -r requires root privileges. if [ ! -e "/etc/ld.so.cache" ]; then ldconfig fi }