From 3c4d4b2c9654e418d422b80e052bdf6d9a02a188 Mon Sep 17 00:00:00 2001 From: Thomas Renninger Date: Tue, 15 Jul 2014 15:53:23 +0200 Subject: mkinitrd-suse.sh: Bail out with exit 1 if initrd cannot be generated bnc#886630 Signed-off-by: Thomas Renninger --- mkinitrd-suse.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) Index: dracut-041/mkinitrd-suse.sh =================================================================== --- dracut-041.orig/mkinitrd-suse.sh 2015-01-31 12:54:52.000000000 +0100 +++ dracut-041/mkinitrd-suse.sh 2015-03-17 17:42:12.198799273 +0100 @@ -280,7 +280,8 @@ [[ $targets && $kernels ]] || default_kernel_images if [[ ! $targets || ! $kernels ]];then - error "No kernel found in $boot_dir" + error "No kernel found in $boot_dir or bad modules dir in /lib/modules" + exit 1 fi # We can have several targets/kernels, transform the list to an array @@ -301,6 +302,8 @@ [[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}" shopt -s extglob +failed="" + for ((i=0 ; $i<${#targets[@]} ; i++)); do if [[ $img_vers ]];then @@ -329,14 +332,18 @@ # expansion magics if [ -n "${modules_all}" ];then $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" &>/dev/null + [ $? -ne 0 ] && failed="$failed $target" else $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null + [ $? -ne 0 ] && failed="$failed $target" fi else if [ -n "${modules_all}" ];then $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" + [ $? -ne 0 ] && failed="$failed $target" else $dracut_cmd $dracut_args "$target" "$kernel" + [ $? -ne 0 ] && failed="$failed $target" fi fi done @@ -345,4 +352,12 @@ echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually." else update-bootloader --refresh + [ $? -ne 0 ] && echo "Updating bootloader failed" && exit 1 +fi + +if [ "$failed" != "" ]; then + echo "Generating $failed targets failed" + exit 1 fi + +exit 0