From 6f99e530822ac32f32615590e22a9758ac210e84 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Tue, 18 Dec 2012 14:38:27 +0200 Subject: init-live: default to initrd shell if image isn't found Adds "debugshell" command line parameter for live/install images. If the init live fails to find and mount a root-fs image, dumps to a shell after timeout so that the developer can figure what's wrong. Timeout defaults to 30 seconds, but it can be changed as param argument. Prior art in Ubuntu. Also, leaving a system stale isn't good form. Signed-off-by: Alexandru DAMIAN Signed-off-by: Saul Wold --- meta/recipes-core/initrdscripts/files/init-live.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'meta/recipes-core/initrdscripts') diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh index c591f0d386..e8d7f70c2c 100644 --- a/meta/recipes-core/initrdscripts/files/init-live.sh +++ b/meta/recipes-core/initrdscripts/files/init-live.sh @@ -45,7 +45,13 @@ read_args() { console_params=$arg else console_params="$console_params $arg" - fi + fi ;; + debugshell*) + if [ -z "$optarg" ]; then + shelltimeout=30 + else + shelltimeout=$optarg + fi esac done } @@ -75,6 +81,7 @@ early_setup read_args echo "Waiting for removable media..." +C=0 while true do for i in `ls /media 2>/dev/null`; do @@ -90,6 +97,19 @@ do if [ "$found" = "yes" ]; then break; fi + # don't wait for more than $shelltimeout seconds, if it's set + if [ -n "$shelltimeout" ]; then + echo -n " " $(( $shelltimeout - $C )) + if [ $C -ge $shelltimeout ]; then + echo "..." + echo "Mounted filesystems" + mount | grep media + echo "Available block devices" + ls /dev/sd* + fatal "Cannot find rootfs.img file in /media/* , dropping to a shell " + fi + C=$(( C + 1 )) + fi sleep 1 done -- cgit 1.2.3-korg