From 9ba761ef27a3ac53588394d2ebbee59e6d7e5ed7 Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Sun, 15 Sep 2013 06:06:08 +1200 Subject: [PATCH] Install fedora grub from cached rpm during finalise When uninstalling grub2, leave all its dependencies including grub2-tools installed to minimise the number of packages which need to be installed in the finalise stage. Since the yum cache is unmounted during finalise, installing grub2 in finalise is slowed by re-populating the yum cache. This change copies the grub2 rpm out of the yum cache so it can be installed from file during finalise. This should prevent disk becoming full during finalise on Fedora. Closes-Bug: #1217185 Change-Id: If095adc4abb52a19a3aa0b1caebfb3e4d8f605ef --- elements/fedora/pre-install.d/15-fedora-remove-grub | 13 ++++++++++++- elements/vm/finalise.d/51-bootloader | 7 ++++++- 2 files changed, 18 insertions(+), 2 deletions(-) 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