From 98c3aeba5838be2a072725e65354aa94b09bc9ea Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Tue, 2 Mar 2021 16:15:57 -0500 Subject: initrd: improve console logging --- src/initrd/btrfs-create.sh | 6 ++++-- src/initrd/common.sh | 14 +++++++++++--- src/initrd/menu-select | 7 +++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/initrd/btrfs-create.sh b/src/initrd/btrfs-create.sh index 969ddf6..02ce257 100644 --- a/src/initrd/btrfs-create.sh +++ b/src/initrd/btrfs-create.sh @@ -287,7 +287,10 @@ open_samizdat() modprobe btrfs || return btrfs device scan -u || true btrfs device scan || return - btrfs device ready "$blockdev" || true + if ! btrfs device ready "$blockdev" + then + : btrfs device ready failed, continuing anyway + fi mount -t btrfs "$blockdev" /root || return samizdat_movemounts "$imgfile" LoSetup -D @@ -417,7 +420,6 @@ init_gpg() local LOG_DIR=/run/initramfs/samizdat/log if samizdat-password-agent > "$LOG_DIR"/samizdat-password-agent.log 2>&1; then - clear true else echo 'samizdat-password-agent failed; continuing in hope of hope...' diff --git a/src/initrd/common.sh b/src/initrd/common.sh index 0f72efe..8f4e101 100644 --- a/src/initrd/common.sh +++ b/src/initrd/common.sh @@ -55,16 +55,24 @@ bootmenu() { local do_trigger="$1" no_panic="$2" killall dynmenu || true + clear >/dev/tty7 || true + + if [ "$do_trigger" ] + then + echo -n 'Attempting to restart menu after failed boot...' >/dev/tty7 + chvt 7 && sleep 1 || true + fi + if TERM=linux OpenVT -f -c 7 -s -- dynmenu "$MENUFIFO" then - chvt 7 || true - clear || true menutitle 'Samizdat\n\nAs the Internet develops there are\ntransitions in the management arrangements.\nThe time has come to take\na small step in one of those transitions.' 'Choose an installation target.' # menutitle 'Samizdat\nfreedom from surveillance\nno trusted authorities' 'Choose an installation target.' addmenu "ramdisk" "[ Boot to RAM without installing anything ]" "menu-select boot-ram" addmenu "poweroff" "[ Shut down the system immediately ]" "poweroff -f" fi - if [ $? != 0 -a ! "$no_panic" ]; then + + if [ $? != 0 -a ! "$no_panic" ] + then panic "error loading boot menu! the system won't be usable :(" fi diff --git a/src/initrd/menu-select b/src/initrd/menu-select index c374b29..1fcade4 100755 --- a/src/initrd/menu-select +++ b/src/initrd/menu-select @@ -18,6 +18,7 @@ error() clear >&4 echo "error -- ${*:-:(}" >&4 + echo "error -- ${*:-:(}" >/dev/tty1 if [ $sleep -gt 0 ]; then echo "will try again in $sleep seconds..." >&4 @@ -61,6 +62,8 @@ hwclock_to_system() hwclock --hctosys } +chvt 1 +echo -n "Samizdat is attempting to load the root filesystem..." >/dev/tty1 case "$1" in boot-ram) read _ memtotal_kb _ < /proc/meminfo @@ -107,7 +110,7 @@ case "$1" in mount "$dev"2 /plaintext || error init_gpg || error open_samizdat_blockdev "$dev"3 /plaintext/disk.key || error - open_samizdat || error + open_samizdat || error open_samizdat bootdone root-mounted ;; boot-overwrite|boot-new|boot-luks) @@ -129,7 +132,7 @@ case "$1" in if [ "$1" = 'boot-luks' ]; then open_samizdat_blockdev_from_loop "$loopfile" "$loopfile"k || error - open_samizdat || error + open_samizdat || error open_samizdat bootdone root-mounted exit fi -- cgit v1.2.3