Browse Source

init: improve emergency logging

master
Harald Hoyer 14 years ago
parent
commit
a382492bf3
  1. 13
      modules.d/99base/init

13
modules.d/99base/init

@ -38,17 +38,19 @@ wait_for_loginit() @@ -38,17 +38,19 @@ wait_for_loginit()

emergency_shell()
{
set +e
if [ "$1" = "-n" ]; then
_rdshell_name=$2
shift 2
else
_rdshell_name=dracut
fi
wait_for_loginit
echo ; echo
echo $@
warn $@
source_all emergency
echo
wait_for_loginit
[ -e /.die ] && exit 1
if getargbool 1 rd.shell -y rdshell || getarg rd.break rdbreak; then
echo "Dropping to debug shell."
echo
@ -56,8 +58,9 @@ emergency_shell() @@ -56,8 +58,9 @@ emergency_shell()
[ -e /.profile ] || echo "exec 0<>/dev/console 1<>/dev/console 2<>/dev/console" > /.profile
sh -i -l
else
echo "Boot has failed, sleeping forever."
while :; do sleep 365d;done
warn "Boot has failed. To debug this issue add \"rdshell\" to the kernel command line."
# cause a kernel panic
exit 1
fi
}

@ -219,7 +222,7 @@ while :; do @@ -219,7 +222,7 @@ while :; do
i=$(($i+1))
[ $i -gt $RDRETRY ] \
&& { flock -s 9 ; emergency_shell "No root device found"; } 9>/.console_lock
&& { flock -s 9 ; emergency_shell "No root device \"$root\" found"; } 9>/.console_lock
done
unset job
unset queuetriggered

Loading…
Cancel
Save