diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh index 99cb9dbc..af3b62f3 100755 --- a/modules.d/99base/dracut-lib.sh +++ b/modules.d/99base/dracut-lib.sh @@ -1134,10 +1134,14 @@ emergency_shell() fi shift 2 fi - - echo ; echo - warn "$*" + if getarg splash; then + echo -en '\033[2J' > /dev/tty1 + fi + { + # clear fbsplash + echo "$@" echo + } > /dev/tty1 _emergency_action=$(getarg rd.emergency) [ -z "$_emergency_action" ] \ @@ -1150,6 +1154,16 @@ emergency_shell() source_hook "$hook" warn "$action has failed. To debug this issue add \"rd.shell rd.debug\" to the kernel command line." [ -z "$_emergency_action" ] && _emergency_action=halt + local delay=60 + { + echo "FATAL - contact your bwLehrpool administrator." + while [ "$delay" -gt 0 ]; do + echo -e "System will ${_emergency_action} in $delay seconds or upon key press."'\e[1A\e[K' + (( delay-- )) + sleep 1 + done & + } > /dev/tty1 + read -s -t 60 -n 1 bs < /dev/tty1 fi case "$_emergency_action" in