Perform Live Upgrade on Solaris 10 x86, update 7 to update 8

Download and mount ISO image you want to use for live upgrade.

bash-3.00# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
————————– ——– —— ——— —— ———-
BE1 yes yes yes no –
BE2 yes no no yes –

Specify source boot environment (BE1) and new boot environment (Solaris_10_u8) which is a snapshot of source boot environment (BE1):

bash-3.00# lucreate -c “BE1″ -n “Solaris_10_u8″
Checking GRUB menu…
System has findroot enabled GRUB
Analyzing system configuration.
Comparing source boot environment file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment .
Source boot environment is .
Creating boot environment .
Cloning file systems from boot environment to create boot environment .
Creating snapshot for on .
Creating clone for on .
Setting canmount=noauto for in zone on .
Creating snapshot for on .
Creating clone for on .
Setting canmount=noauto for in zone on .
Creating snapshot for on .
Creating clone for on .
Setting canmount=noauto for in zone on .
WARNING: split filesystem file system type cannot inherit
mount point options <-> from parent filesystem file
type <-> because the two file systems have different types.
Saving existing file in top level dataset for BE as //boot/grub/menu.lst.prev.
Saving existing file in top level dataset for BE as //boot/grub/menu.lst.prev.
File propagation successful
Copied GRUB menu from PBE to ABE
No entry for BE in GRUB menu
Population of boot environment successful.
Creation of boot environment successful.

bash-3.00# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
————————– ——– —— ——— —— ———-
BE1 yes yes yes no –
BE2 yes no no yes –
Solaris_10_u8 yes no no yes –

if you are doing straight upgrade (not changing mounting of any partitions), then you can verify filesystems that are part of your old and new boot environment (they should be the same):

bash-3.00# lufslist BE1
boot environment name: BE1
This boot environment is currently active.
This boot environment will be active on next system boot.

Filesystem fstype device size Mounted on Mount Options
———————– ——– ———— ——————- ————–
/dev/zvol/dsk/rpool-vigilante/swap02 swap 12884901888 – -
/dev/zvol/dsk/rpool-vigilante/swap swap 2147483648 – -
rpool-vigilante/ROOT/BE1 zfs 36503444992 / -
rpool-vigilante/ROOT/BE1/opt zfs 813439488 /opt -
rpool-vigilante/ROOT/BE1/var zfs 4603225600 /var -
rpool-vigilante/export zfs 3617869312 /export -
rpool-vigilante/export/home zfs 3617849856 /export/home -
rpool-vigilante zfs 90195877888 /rpool-vigilante -
rpool-vigilante/suspend-data zfs 19456 /rpool-vigilante/vda/suspend-data -
bash-3.00# lufslist Solaris_10_u8
boot environment name: Solaris_10_u8

Filesystem fstype device size Mounted on Mount Options
———————– ——– ———— ——————- ————–
/dev/zvol/dsk/rpool-vigilante/swap02 swap 12884901888 – -
/dev/zvol/dsk/rpool-vigilante/swap swap 2147483648 – -
rpool-vigilante/ROOT/Solaris_10_u8 zfs 57545728 / -
rpool-vigilante/export zfs 3617869312 /export -
rpool-vigilante/export/home zfs 3617849856 /export/home -
rpool-vigilante/ROOT/Solaris_10_u8/opt zfs 274432 /opt -
rpool-vigilante zfs 90207728128 /rpool-vigilante -
rpool-vigilante/suspend-data zfs 19456 /rpool-vigilante/vda/suspend-data -
rpool-vigilante/ROOT/Solaris_10_u8/var zfs 28694528 /var -

To upgrade Solaris_10_u8 boot environment, run:

bash-3.00# luupgrade -u -n Solaris_10_u8 -s /mnt/

System has findroot enabled GRUB
No entry for BE in GRUB menu
Uncompressing miniroot
Copying failsafe kernel from media.
63093 blocks
miniroot filesystem is
Mounting miniroot at
Validating the contents of the media .
The media is a standard Solaris media.
The media contains an operating system upgrade image.
The media contains version <10>.
Constructing upgrade profile to use.
Locating the operating system upgrade program.
Checking for existence of previously scheduled Live Upgrade requests.
Creating upgrade profile for BE .
Checking for GRUB menu on ABE .
Saving GRUB menu on ABE .
Checking for x86 boot partition on ABE.
Determining packages to install or upgrade for BE .
Performing the operating system upgrade of the BE .
CAUTION: Interrupting this process may leave the boot environment unstable
or unbootable.
Upgrading Solaris: 100% completed
Installation of the packages from this media is complete.
Restoring GRUB menu on ABE .
Updating package information on boot environment .
Package information successfully updated on boot environment .
Adding operating system patches to the BE .
The operating system patch installation is complete.
ABE boot partition backing deleted.
PBE GRUB has no capability information.
PBE GRUB has no versioning information.
ABE GRUB is newer than PBE GRUB. Updating GRUB.
GRUB update was successfull.
Configuring failsafe for system.
Failsafe configuration is complete.
INFORMATION: The file on boot
environment contains a log of the upgrade operation.
INFORMATION: The file on boot
environment contains a log of cleanup operations required.
INFORMATION: Review the files listed above. Remember that all of the files
are located on boot environment . Before you activate boot
environment , determine if any additional system
maintenance is required or if additional media of the software
distribution must be installed.
The Solaris upgrade of the boot environment is complete.
Installing failsafe
Failsafe install is complete.

Now we need to activate new boot environment so that system will boot from it:

bash-3.00# luactivate Solaris_10_u8
System has findroot enabled GRUB
Generating boot-sign, partition and slice information for PBE
Saving existing file in top level dataset for BE as //etc/bootsign.prev.
A Live Upgrade Sync operation will be performed on startup of boot environment .

Setting failsafe console to .
Generating boot-sign for ABE
Saving existing file in top level dataset for BE as //etc/bootsign.prev.
Generating partition and slice information for ABE
Copied boot menu from top level dataset.
Generating multiboot menu entries for PBE.
Generating multiboot menu entries for ABE.
Disabling splashimage
No more bootadm entries. Deletion of bootadm entries is complete.
GRUB menu default setting is unaffected
Done eliding bootadm entries.

**********************************************************************

The target boot environment has been activated. It will be used when you
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.

**********************************************************************

In case of a failure while booting to the target BE, the following process
needs to be followed to fallback to the currently working boot environment:

1. Boot from Solaris failsafe or boot in single user mode from the Solaris
Install CD or Network.

2. Mount the Parent boot environment root slice to some directory (like
/mnt). You can use the following command to mount:

mount -Fzfs /dev/dsk/c0t0d0s0 /mnt

3. Run utility with out any arguments from the Parent boot
environment root slice, as shown below:

/mnt/sbin/luactivate

4. luactivate, activates the previous working boot environment and
indicates the result.

5. Exit Single User mode and reboot the machine.

**********************************************************************

Modifying boot archive service
Propagating findroot GRUB for menu conversion.
File propagation successful
File propagation successful
File propagation successful
File propagation successful
Deleting stale GRUB loader from all BEs.
File deletion successful
File deletion successful
File deletion successful
Activation of boot environment successful.

Important note: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.

We can verify that Solaris_10_u8 will be active on reboot:

bash-3.00# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
————————– ——– —— ——— —— ———-
BE1 yes yes no no –
BE2 yes no no yes –
Solaris_10_u8 yes no yes no –

Before the reboot here is the content of /etc/release:
bash-3.00# cat /etc/release
Solaris 10 5/09 s10x_u7wos_08 X86
Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 30 March 2009
bash-3.00# uname -a
SunOS vigilante 5.10 Generic_142901-01 i86pc i386 i86pc

Now, we are ready to reboot the system:

bash-3.00# sync
bash-3.00# init 6
updating /platform/i86pc/boot_archive
propagating updated GRUB menu
Saving existing file in top level dataset for BE as //boot/grub/menu.lst.prev.
Saving existing file in top level dataset for BE as //boot/grub/menu.lst.prev.
File propagation successful
File propagation successful
File propagation successful
File propagation successful
bash-3.00# Hangup

after the boot:

bash-3.00# cat /etc/release
Solaris 10 10/09 s10x_u8wos_08a X86
Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 16 September 2009
bash-3.00# uname -a
SunOS vigilante 5.10 Generic_141445-09 i86pc i386 i86pc

One Response to “Perform Live Upgrade on Solaris 10 x86, update 7 to update 8”

  1. Von Meile says:

    You made some good factors there. I did a search on the subject and located most individuals will agree with your blog.

Leave a Reply

Spam Protection by WP-SpamFree