On Fri, 2014-11-21 at 20:34 +0000, Ian Campbell wrote: > Anyway, I'll investigate ischroot or running-in-container which the grub > postinst seem to use already (not sure what it does, might be suitable).
Neither of those seemed quite right, so here is what I came up with. Passes a local piuparts run and installation in a Xen guest. Colin, does this seem sane? It has the affect that grub-* will no longer fail to install if grub-install fails for some reason -- that could be seen as either a good or bad thing I suspect... 8<---------- >From a8eb7d27c945df31eaca58ba02948d0f1964b0e9 Mon Sep 17 00:00:00 2001 From: Ian Campbell <i...@debian.org> Date: Sat, 22 Nov 2014 10:03:48 +0000 Subject: [PATCH] Log a failure in postinst when grub-install fails instead of failing entirely This allows installation of the package when e.g. dev is not mounted etc. The change covers all invocations of grub-install which do not already have special handling of some sort. --- debian/changelog | 7 +++++++ debian/postinst.in | 20 ++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index 40db9e9..90a9412 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +grub2 (2.02~beta2-17) UNRELEASED; urgency=medium + + * Log failure when grub-install fails in postinst, rather than failing the + entire postinst. (Closes: #770412) + + -- Ian Campbell <i...@debian.org> Sat, 22 Nov 2014 07:45:46 +0000 + grub2 (2.02~beta2-16) unstable; urgency=medium [ Ian Campbell ] diff --git a/debian/postinst.in b/debian/postinst.in index 30e6947..056e27d 100644 --- a/debian/postinst.in +++ b/debian/postinst.in @@ -299,6 +299,14 @@ running_in_container() type running-in-container >/dev/null 2>&1 && running-in-container >/dev/null } +run_grub_install() +{ + if ! grub-install $@ ; then + echo "Failed: grub-install $@" >&2 + echo "WARNING: Bootloader is not properly installed, system may not be bootable" >&2 + fi +} + case "$1" in configure) . /usr/share/debconf/confmodule @@ -696,7 +704,7 @@ case "$1" in grub-efi-arm) target=arm-efi ;; grub-efi-arm64) target=arm64-efi ;; esac - grub-install --target="$target" + run_grub_install --target="$target" fi # /boot/grub/ has more chances of being accessible by GRUB @@ -714,22 +722,22 @@ case "$1" in # Output may be empty; if so, just update the core image but # don't install it to any PReP partition. prep_bootdev="$(/usr/lib/grub/powerpc-ieee1275/prep-bootdev)" - grub-install --target=powerpc-ieee1275 $prep_bootdev + run_grub_install --target=powerpc-ieee1275 $prep_bootdev ;; esac ;; grub-yeeloong) - grub-install --target=mipsel-loongson + run_grub_install --target=mipsel-loongson ;; grub-xen) # Install for x86_64 regardless of arch, since a 32-bit userspace can still boot with a 64-bit kernel. - mkdir -p /boot/xen - grub-install --target=x86_64-xen + mkdir -p /boot/xen + run_grub_install --target=x86_64-xen case $(dpkg --print-architecture) in i386) - grub-install --target=i386-xen + run_grub_install --target=i386-xen ;; esac ;; -- 2.1.3 -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org