From f1b65e92af5e3f9df79f99e55d5aa936c9bca940 Mon Sep 17 00:00:00 2001 From: Frederick Grose Date: Thu, 9 Mar 2017 13:02:58 -0500 Subject: [PATCH] dmsquash-live-root: Provide enhanced feedback on missing overlay. Provide a more prominent alert to the user if an overlay is missing or the overlay module is not available and a temporary overlay will be provided. This, to avoid losing data intended to persist. --- .../90dmsquash-live/dmsquash-live-root.sh | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh index c7526a43..2f0cf407 100755 --- a/modules.d/90dmsquash-live/dmsquash-live-root.sh +++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh @@ -155,10 +155,9 @@ do_live_overlay() { if [ -n "$overlayfs" ]; then modprobe overlay if [ $? != 0 ]; then - echo "OverlayFS is not available; using temporary Device-mapper overlay." > /dev/kmsg + m='OverlayFS is not available; using temporary Device-mapper overlay.' unset -v overlayfs setup [ -n "$reloadsysrootmountunit" ] && unset -v reloadsysrootmountunit - sleep 5 fi fi @@ -166,8 +165,31 @@ do_live_overlay() { if [ -n "$setup" ]; then warn "Using temporary overlay." elif [ -n "$devspec" -a -n "$pathspec" ]; then - echo "Unable to find persistent overlay; using temporary." > /dev/kmsg - sleep 5 + [ -z "$m" ] && + m=' Unable to find a persistent overlay; using a temporary one.' + m=($'\n' "$m" $'\n' + ' All root filesystem changes will be lost on shutdown.' + $'\n' ' Press any key to continue') + echo -e "\n\n\n${m[*]}\n\n\n" > /dev/kmsg + if [ -n "$DRACUT_SYSTEMD" ]; then + if plymouth --ping ; then + if getargbool 0 rhgb || getargbool 0 splash ; then + m[0]='>>>'$'\n''>>>'$'\n''>>>'$'\n\n' + m[5]=$'\n''<<<'$'\n''<<<'$'\n''<<<' + plymouth display-message --text="${m[*]}" + else + plymouth ask-question --prompt="${m[*]}" --command=true + fi + else + m[0]='>>>' + m[5]='<<<' + unset -v m[2] m[4] + systemd-ask-password --timeout=0 "${m[*]}" + fi + else + plymouth --ping && plymouth --quit + read -s -r -p $'\n\n'"${m[*]}:" -n 1 reply + fi fi if [ -n "$overlayfs" ]; then mkdir -m 0755 /run/overlayfs