From 75b64105fafd33c96a53e37222af8b4d4ed9d393 Mon Sep 17 00:00:00 2001 From: Bob Gilligan Date: Wed, 19 Oct 2011 17:14:00 -0700 Subject: Bugfix 7502: Make "rename system image" work correctly on Xen. --- scripts/rename-image.pl | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/scripts/rename-image.pl b/scripts/rename-image.pl index 837a3ad..fcdf624 100644 --- a/scripts/rename-image.pl +++ b/scripts/rename-image.pl @@ -25,6 +25,9 @@ use warnings; use Getopt::Long; use File::Temp qw/ tempfile tempdir /; +my $UNION_BOOT = '/live/image/boot'; +my $XEN_DEFAULT_IMAGE = "$UNION_BOOT/%%default_image"; + my $old_name; my $new_name; @@ -55,7 +58,8 @@ if (("$new_name" eq "Old-non-image-installation") || ("$new_name" =~ /^initrd/) || ("$new_name" =~ /^vmlinuz/) || ("$new_name" =~ /^System\.map/) || - ("$new_name" =~ /^config-/)) { + ("$new_name" =~ /^config-/) || + ("$new_name" =~ /^%%/)) { printf("Can't use reserved image name.\n"); exit 1; } @@ -63,8 +67,13 @@ if (("$new_name" eq "Old-non-image-installation") || my $cmdline=`cat /proc/cmdline`; my $cur_name; ($cur_name, undef) = split(' ', $cmdline); -$cur_name =~ s/BOOT_IMAGE=\/boot\///; -$cur_name =~ s/\/vmlinuz.*//; +if ($cur_name =~ s/BOOT_IMAGE=\/boot\///) { + $cur_name =~ s/\/vmlinuz.*//; +} else { + if (-l $XEN_DEFAULT_IMAGE) { + $cur_name = readlink($XEN_DEFAULT_IMAGE); + } +} if ($old_name eq $cur_name) { printf("Can't re-name the running image.\n"); @@ -105,6 +114,7 @@ close(GRUBFH); system("mv $image_path/$old_name $image_path/$new_name"); system("cp $tmpfilename $image_path/grub/grub.cfg"); + system("logger -p local3.warning -t 'SystemImage' 'System image $old_name has been renamed $new_name'"); printf("Done.\n"); -- cgit v1.2.3