fix update-grub chroot silent failure While it probably would be nicer to mount it at the beginning and umount it at the end, we have too many hooks already doing this and changing this seems a bigger task.
57 lines
1.2 KiB
Bash
Executable File
57 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Ensure that either modules-init-tools or kmod is setup.
|
|
#
|
|
# This is most likely required if you're using a custom kernel
|
|
# for your Xen system. But even if it isn't required it can't
|
|
# really do anything bad; just waste a bit of space.
|
|
|
|
|
|
prefix=$1
|
|
|
|
|
|
|
|
#
|
|
# Source our common functions
|
|
#
|
|
if [ -e /usr/share/xen-tools/common.sh ]; then
|
|
. /usr/share/xen-tools/common.sh
|
|
else
|
|
. ./hooks/common.sh
|
|
fi
|
|
|
|
|
|
#
|
|
# Log our start
|
|
#
|
|
logMessage Script $0 starting
|
|
|
|
if [ "${pygrub}" = "1" ]; then
|
|
|
|
#
|
|
# Install the grub 0.9x package ("grub-legacy" on Debian, "grub" on Ubuntu)
|
|
#
|
|
if chroot ${prefix} /usr/bin/apt-cache show grub-legacy 2>/dev/null | egrep -qi 'GRand Unified Bootloader.*Legacy'; then
|
|
installDebianPackage ${prefix} grub-legacy
|
|
else
|
|
installDebianPackage ${prefix} grub
|
|
fi
|
|
|
|
if [ ! -e ${prefix}/boot/grub/default ]; then
|
|
echo default > ${prefix}/boot/grub/default
|
|
fi
|
|
mount -o bind /proc ${prefix}/proc
|
|
mount -o bind /dev ${prefix}/dev
|
|
chroot ${prefix} /usr/sbin/update-grub
|
|
umount ${prefix}/proc
|
|
umount ${prefix}/dev
|
|
|
|
else
|
|
logMessage "pygrub not set, skipping grub-legacy installation"
|
|
fi # if pygrub
|
|
|
|
#
|
|
# Log our finish
|
|
#
|
|
logMessage Script $0 finished
|