From: Michael Prokop Date: Wed, 21 Aug 2019 15:53:02 +0000 (+0200) Subject: Properly exit if GRUB installation fails X-Git-Tag: v0.90~4^2 X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=commitdiff_plain;h=52c01f74a2f5c52d17cffdd6cddf042553f3eba0 Properly exit if GRUB installation fails For example when partition table is GPT but grub installation expects a MS-DOS partition table, then grub-install fails but grml-debootstrap ignored this. Since the system isn't bootable then this might go unnoticed, so properly fail as soon as grub-install returns with exit code != 0. --- diff --git a/chroot-script b/chroot-script index 68514e0..3544d5c 100755 --- a/chroot-script +++ b/chroot-script @@ -616,19 +616,31 @@ grub_install() { for device in $SELECTED_PARTITIONS ; do GRUB="${device%%[0-9]}" echo "Installing grub on ${GRUB}:" - grub-install --no-floppy "$GRUB" + if ! grub-install --no-floppy "$GRUB" ; then + echo "Error: failed to execute 'grub-install --no-floppy $GRUB'." >&2 + exit 1 + fi + done rm -f /boot/grub/device.map else echo "Installing grub on ${GRUB}:" case "$RELEASE" in lenny|squeeze|wheezy) - grub-install --no-floppy "$(readlink -f "${GRUB}")" + local grub_dev + grub_dev="$(readlink -f "${GRUB}")" + if ! grub-install --no-floppy "${grub_dev}" ; then + echo "Error: failed to execute 'grub-install --no-floppy ${grub_dev}'." >&2 + exit 1 + fi rm -f /boot/grub/device.map ;; *) echo "(hd0) ${GRUB}" > /boot/grub/device.map - grub-install "(hd0)" + if ! grub-install "(hd0)" ; then + echo "Error: failed to execute 'grub-install (hd0)'." >&2 + exit 1 + fi rm /boot/grub/device.map ;; esac