From 1f3e23f7147ef23f338788a223f8a5901546866a Mon Sep 17 00:00:00 2001 From: Bob Gilligan Date: Wed, 12 Oct 2011 17:13:27 -0700 Subject: Bugfix 7502: Get "add system image" to work on Xen This fix solves the problem with indirection. We introduce a symlink in /live/image/boot pointing to the current default system image. The pygrub config file in /boot/grub/menu.lst points to the kernel and initrd files in the default image by using this symlink in the pathname. Every time we add, delete or change the default system image, we need to change this symlink to point to the new default image. --- scripts/install/install-image-existing | 6 ++++++ scripts/install/install-postinst-new | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/install/install-image-existing b/scripts/install/install-image-existing index 7c75b35b..ea5455ea 100755 --- a/scripts/install/install-image-existing +++ b/scripts/install/install-image-existing @@ -258,6 +258,12 @@ if [ -e "$DEF_GRUB" ]; then sed -n '/^menuentry/,${p}' $old_grub_cfg >>$new_grub_cfg sed -i "s/^set default=[0-9]\+$/set default=$new_index/" $new_grub_cfg mv $new_grub_cfg $old_grub_cfg + + # Update the default image symlink used by Xen + if [ -L $BOOT_DIR/%%default_image ]; then + mv $BOOT_DIR/%%default_image $BOOT_DIR/%%default_image.orig + ln -s $NEWNAME $BOOT_DIR/%%default_image + fi fi logger -p local3.warning -t "SystemImage" "System Image $NEWNAME has been added and made the default boot image" diff --git a/scripts/install/install-postinst-new b/scripts/install/install-postinst-new index d782a5bf..2a9539c6 100755 --- a/scripts/install/install-postinst-new +++ b/scripts/install/install-postinst-new @@ -158,6 +158,9 @@ setup_xen_extras () { echo "kernel $xen_grub_boot_path/vmlinuz root=/dev/$rootdev boot=live vyatta-union=$xen_grub_boot_path console=hvc0" >> $grubfile echo "initrd $xen_grub_boot_path/initrd.img" >> $grubfile + # Add symlink pointing to default image + ln -s $image_name $grub_root/boot/%%default_image + # Add console port entry for the Xen PV console add_console_entry hvc0 "${INST_ROOT}${VYATTA_CFG_DIR}/config.boot" } @@ -191,7 +194,7 @@ image_name=${image_name#$WRITE_ROOT/boot/} # these are the defaults for "union" grub_root=$WRITE_ROOT grub_setup_args="-u $image_name" -xen_grub_boot_path="/boot/$image_name" +xen_grub_boot_path="/boot/%%default_image" if [ "$INSTALL_TYPE" == 'old' ]; then grub_root=$INST_ROOT grub_setup_args="-v $version" -- cgit v1.2.3