My little Ultra 20 under my desk runs with two boot environments and flip-flop between them as I upgrade using Live Upgrade. The basic procedure is: rename the old inactive BE (lurename), update it with the contents of the currently running BE (lumake), upgrade it to the latest and greatest (luupgrade), activate it (luactivate) and reboot.

This is quite a pain free experience and has worked well for me. I never actually delete the alternate BE as I don't need the space. However, other people need to and ever since GRUB was introduced into Solaris 10 (x86 only) they encounter the following error when attempting to delete the BE that contains the GRUB menu:

# ludelete -n snv_22
ERROR: The boot environment <snv_22> contains the GRUB menu.
ERROR: You are not allowed to delete this BE.
Unable to delete boot environment.
#

This is a long standing issue (I've got a workaround if you want it) that has plagued many a sysadmin using Live Upgrade on Solaris 10 x86 and Nevada. Well, not any more.

This morning I decided I'd upgrade from snv_94 to snv_96 and I hit a hurdle on the first command - the lurename. I was presented with this message:

# lurename -e snv_88 -n snv_96

This system contains only a single GRUB menu for all boot environments. To
enhance reliability and improve the user experience, live upgrade requires
you to run a one time conversion script to migrate the system to multiple
redundant GRUB menus. This is a one time procedure and you will not be
required to run this script on subsequent invocations of Live Upgrade
commands. To run this script invoke:

/usr/lib/lu/lux86menu_propagate /path/to/new/Solaris/install/image

where /path/to/new/Solaris/install/image is an absolute
path to the Solaris media or netinstall image from which you installed the
Live Upgrade packages.

Unable to rename boot environment.
#

I know this is sad, but I got a little excited. Finally they've resolved the ludelete and GRUB issue in Nevada. Wooohooo!!!!

So I did as instructed...

# /usr/lib/lu/lux86menu_propagate /cdroms/prefcs/os/nv/combined.nvx_wos/94/
Validating the contents of the media </cdroms/prefcs/os/nv/combined.nvx_wos/94/>.
The media is a standard Solaris media.
The media contains a Solaris operating system image.
The media contains <solaris> version <11>.
Installing latest Live Upgrade packages from media
Updating Live Upgrade packages on all BEs
Successfully updated Live Upgrade packages on all BEs
Successfully extracted GRUB from media
Extracted GRUB menu from GRUB slice
Installing GRUB bootloader to all GRUB based BEs
stage1 written to partition 1 sector 0 (abs 41945715)
stage2 written to partition 1, 265 sectors starting at 50 (abs 41945765)
stage1 written to partition 1 sector 0 (abs 41945715)
stage2 written to partition 1, 265 sectors starting at 50 (abs 41945765)
System does not have an applicable x86 boot partition
install GRUB to all BEs successful
Converting root entries to findroot
Generated boot signature <be_snv_88> for BE <snv_88>
Converting GRUB menu entry for BE <snv_88>
Added findroot entry for BE <snv_88> to GRUB menu
Generated boot signature <be_snv_94> for BE <snv_94>
Converting GRUB menu entry for BE <snv_94>
Added findroot entry for BE <snv_94> to GRUB menu
No more bootadm entries. Deletion of bootadm entries is complete.
Changing GRUB menu default setting to <8>
Done eliding bootadm entries.
File </boot/grub/menu.lst> propagation successful
Menu propagation successful
File </etc/lu/GRUB_slice> deletion successful
Successfully deleted GRUB_slice file
File <etc/lu/GRUB_root> deletion successful
Successfully deleted GRUB_root file
Propagating findroot GRUB for menu conversion.
File </etc/lu/installgrub.findroot> propagation successful
File </etc/lu/stage1.findroot> propagation successful
File </etc/lu/stage2.findroot> propagation successful
File </etc/lu/GRUB_capability> propagation successful
Deleting stale GRUB loader from all BEs.
File </etc/lu/installgrub.latest> deletion successful
File </etc/lu/stage1.latest> deletion successful
File </etc/lu/stage2.latest> deletion successful
Conversion was successful
#

Done. And comparison of the two menu.lst file indicates we've got two identical GRUB menus - one in each of my BEs, which means I'll be able to delete any one of them, if I so wish.

# luumount snv_88
# lumount snv_88
/.alt.snv_88
# diff /boot/grub/menu.lst /.alt.snv_88/boot/grub/menu.lst
No differences encountered
#

Finally!!! Live Upgrade on Solaris x86 is fixed and should now work as it does on SPARC - ie without any problems or having to jump through hoops.

Apparently, this issue is due to be resolved in Solaris 10 update 6 when it's released later this year.