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
This commit is contained in:
Steve Baker 2013-09-15 06:06:08 +12:00
parent ccd7b86b60
commit 9ba761ef27
2 changed files with 18 additions and 2 deletions

View File

@ -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

View File

@ -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