diff --git a/elements/fedora/pre-install.d/15-fedora-remove-grub b/elements/fedora/pre-install.d/15-fedora-remove-grub index 8c83ab8d..5541e762 100755 --- a/elements/fedora/pre-install.d/15-fedora-remove-grub +++ b/elements/fedora/pre-install.d/15-fedora-remove-grub @@ -2,7 +2,18 @@ set -e -yum remove -y grub2-tools +yum remove -y grub2 +# Install grub2 dependencies to minimise packages installed during finalise. +install-packages grub2-tools gettext os-prober system-logos + +# Ensure grub2 rpm is in the yum cache +install-packages -d grub2 + +# Copy grub2 rpm out of mounted yum cache for install during finalise +mkdir /tmp/grub +basearch=$(cat /etc/yum/vars/basearch) +cp $(find /tmp/yum/$basearch -regex ".*/grub2-[0-9].*\.rpm") /tmp/grub +echo "rpm -i /tmp/grub/*.rpm" > /tmp/grub/install #GRUB_CFG=/boot/grub2/grub.cfg diff --git a/elements/vm/finalise.d/51-bootloader b/elements/vm/finalise.d/51-bootloader index 412ecd1a..891dc399 100755 --- a/elements/vm/finalise.d/51-bootloader +++ b/elements/vm/finalise.d/51-bootloader @@ -53,7 +53,12 @@ _EOF_ function install_grub2 { - install-packages grub-pc + # Check for offline installation of grub + if [ -f "/tmp/grub/install" ] ; then + source /tmp/grub/install + else + install-packages grub-pc + fi # XXX: grub-probe on the nbd0/loop0 device returns nothing - workaround, manually # specify modules. https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1073731