From patchwork Thu Sep 27 14:20:50 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1/2] initrd: Spawn an emergency shell when something goes wrong Date: Thu, 27 Sep 2012 14:20:50 -0000 From: Ross Burton X-Patchwork-Id: 37365 Message-Id: <20043bb7087432cc241e5d1eaa1059f787701cc4.1348755513.git.ross.burton@intel.com> To: openembedded-core@lists.openembedded.org From: Damien Lespiau set -e allows to exit if a command fails. We install a trap and execute emergency_shell() when either the init script exits or when ctrl-c is typed (say if we are stuck somewhere and we want to debug it). Signed-off-by: Damien Lespiau Signed-off-by: Ross Burton --- meta/recipes-core/initrdscripts/files/init-live.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh index 3fba7dc..fb7af31 100644 --- a/meta/recipes-core/initrdscripts/files/init-live.sh +++ b/meta/recipes-core/initrdscripts/files/init-live.sh @@ -2,6 +2,17 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin +emergency_shell() +{ + echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!" + echo + sh +} +trap "emergency_shell" 0 2 + +# exit immediately if a command fails +set -e + ROOT_MOUNT="/rootfs/" ROOT_IMAGE="rootfs.img" MOUNT="/bin/mount"