Using Live Upgrade To Apply Patches To Running Solaris 10 x86

The following is my procedure to patch a Sun x4540 booted on a ZFS filesystem with the 10_x86_Recommended_CPU_2012-01 patches from Oracle.

uname -a
SunOS jumpstart 5.10 Generic_144489-17 i86pc i386 i86pcls
lustatus

Boot Environment NameIs CompleteActive NowActive On RebootCan DeleteCopy Status
————————–——–——————————-
s10x_u9wos_14ayesnonoyes
s10x_u9wos_20110822yesnonoyes
s10x_u9wos_20110909yesyesyesno

zfs list
NAME USED AVAIL REFER MOUNTPOINT
rootpool 47.0G 867G 38K /rootpool
rootpool/ROOT 35.1G 867G 21K legacy
rootpool/ROOT/s10x_u9wos_14a 79.6M 867G 8.24G /
rootpool/ROOT/s10x_u9wos_20110822 26.2M 867G 13.9G /
rootpool/ROOT/s10x_u9wos_20110909 35.0G 867G 28.6G /
rootpool/ROOT/s10x_u9wos_20110909@s10x_u9wos_20110822 5.07G – 8.24G –
rootpool/ROOT/s10x_u9wos_20110909@s10x_u9wos_20110909 934M – 13.9G –
rootpool/dump 1.00G 867G 1.00G –
rootpool/export 8.73G 867G 4.63G /export
rootpool/export/home 4.11G 867G 4.11G /export/home
rootpool/swap 2.13G 868G 1.13G –
# lucreate -n s10x_u9wos_20120126
Checking GRUB menu…
System has findroot enabled GRUB
Analyzing system configuration.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment .
Source boot environment is .
Creating file systems on boot environment .
Populating file systems on boot environment .
Analyzing zones.
Duplicating ZFS datasets from PBE to ABE.
Creating snapshot for on .
Creating clone for on .
Mounting ABE .
Generating file list.
Finalizing ABE.
Fixing zonepaths in ABE.
Unmounting ABE .
Fixing properties on ZFS datasets in ABE.
Reverting state of zones in PBE .
Making boot environment bootable.
Updating bootenv.rc on ABE .
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.
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.
# lustatus

Boot Environment NameIs CompleteActive NowActive On RebootCan DeleteCopy Status
————————–——–——————————-
s10x_u9wos_14ayesnonoyes
s10x_u9wos_20110822yesnonoyes
s10x_u9wos_20110909yesyesyesno
s10x_u9wos_20120126yesnonoyes

# ludelete s10x_u9wos_20110822
System has findroot enabled GRUB
Checking if last BE on any disk…
BE is not the last BE on any disk.
Updating GRUB menu default setting
Changing GRUB menu default setting to
Saving existing file in top level dataset for BE as //boot/grub/menu.lst.prev.
File propagation successful
Successfully deleted entry from GRUB menu
Updating boot environment configuration database.
Updating boot environment description database on all BEs.
Updating all boot environment configuration databases.
lustatus

Boot Environment NameIs CompleteActive NowActive On RebootCan DeleteCopy Status
————————–——–——————————-
s10x_u9wos_14ayesnonoyes
s10x_u9wos_20110909yesyesyesno
s10x_u9wos_20120126yesnonoyes

There is no need to bring the running system to single-user mode when installing this patchset to an inactive Live Upgrade boot environment.

pwd
/var/tmp/10_x86_Recommended_CPU_2012-01
# ls
10_x86_Recommended_CPU_2012-01.html LEGAL_LICENSE.TXT
10_x86_Recommended_CPU_2012-01.README patches
Copyright patch_order
installpatchset patchset.conf

# ./installpatchset -B s10x_u9wos_20120126
Correct passcode not confirmed.

usage: installpatchset [-d] [-h] [-R alt-root-path|-B alt-boot-env]
[–apply-prereq] —

[-d] – don’t save undo packages
[-h] – display this usage message
[-B alt-boot-env] – specify LU boot environment as target
[-R alt-root-path] – specify alternate root as target
[–apply-prereq] – apply prerequisite patches only
— – passcode required for script execution

This script will only execute when a specific passcode is provided as a command
line option. For further instructions regarding installation of this patch set,
please review the 10_x86_Recommended_CPU_2012-01.README file.

./installpatchset -B s10x_u9wos_20120126 –s10patchset
Installing this patch set to an alternate boot environment first requires the
live boot environment to have patch utilities and other prerequisite patches
at the same (or higher) patch revisions as those delivered by this patch set.

The required prerequisite patches can be applied to the live boot environment
by invoking this script with the ‘–apply-prereq’ option, ie.

# ./installpatchset -B s10x_u9wos_20120126 –apply-prereq –s10patchset
Installing this patch set to an alternate boot environment first requires the
live boot environment to have patch utilities and other prerequisite patches
at the same (or higher) patch revisions as those delivered by this patch set.

The required prerequisite patches can be applied to the live boot environment
by invoking this script with the ‘–apply-prereq’ option, ie.

./installpatchset –apply-prereq –s10patchset

This next blurb came from the 10_x86_Recommended_CPU_2012-01.README file.

Live Upgrade patch 121431-XX is included in the patches directory of the patchset, but this patch will not be applied during patchset installation. The decision to apply the Live Upgrade patch is left to the user, this is done to accommodate users who wish to independently manage the version of the Live Upgrade patch on their system. Where a user wishes to apply the Live Upgrade patch, this needs to be done manually with the patchadd command.

The following came from “Solaris Live Upgrade Software Patch Requirements [ID 1004881.1]”

Solaris 10

Solaris 10 8/07 (Update 4) or earlier:

To get full Live Upgrade functionality for Solaris 10 8/07 (Update 4) or earlier Solaris 10 Updates, please apply the “LU Starter Patchset Solaris 10 [SPARC|x86]”.

Solaris 10 5/08 (Update 5) or later:

SPARC:

119254-LR Install and Patch Utilities Patch
121430-57 Live Upgrade patch
121428-LR SUNWluzone required patches
138130-01 vold patch

x86:

119255-LR Install and Patch Utilities Patch
121431-58 Live Upgrade patch
121429-LR SUNWluzone required patches
138884-01 SunOS 5.10_x86: GRUB patch
138131-01 vold patch

I checked for the x86 patches and was deficient in only one, 119255-82 as compared with this patch bundle.

patchadd -d 119255-82
Validating patches…

Loading patches installed on the system…

Done!

Loading patches requested to install.

Done!

Checking patches that you specified for installation.

Done!

Approved patches will be installed in this order:

119255-82

Checking installed patches…
Executing prepatch script…
Installing patch packages…

Patch 119255-82 has been successfully installed.
See /var/sadm/patch/119255-82/log for details
Executing postpatch script…

Patch packages installed:
SUNWinstall-patch-utils-root
SUNWpkgcmdsr
SUNWpkgcmdsu
SUNWswmt

./installpatchset -B s10x_u9wos_20120126 –apply-prereq –s10patchset

Setup .

CPU OS Patchset 2012/01 Solaris 10 x86 (2012.01.05)

Application of patches started : 2012.01.26 12:00:20

Applying 120901-03 ( 1 of 11) … skipped
Applying 121334-04 ( 2 of 11) … skipped
Applying 119255-82 ( 3 of 11) … success
Applying 119318-01 ( 4 of 11) … skipped
Applying 121297-01 ( 5 of 11) … skipped
Applying 138216-01 ( 6 of 11) … skipped
Applying 147062-01 ( 7 of 11) … success
Applying 146956-01 ( 8 of 11) … success
Applying 146055-05 ( 9 of 11) … success
Applying 142252-02 (10 of 11) … skipped
Applying 125556-11 (11 of 11) … success

Application of patches finished : 2012.01.26 12:00:47

Following patches were applied :
119255-82 147062-01 146956-01 146055-05 125556-11

Following patches were skipped :
Patches already applied
120901-03 119318-01 121297-01 138216-01 142252-02
121334-04

Installation of prerequisite patches to alternate boot environment complete.

Install log files written :
/.alt.s10x_u9wos_20120126/var/sadm/install_data/s10x_rec_patchset_short_2012.01.26_12.00.20.log
/.alt.s10x_u9wos_20120126/var/sadm/install_data/s10x_rec_patchset_verbose_2012.01.26_12.00.20.log
#

#  ./installpatchset -B s10x_u9wos_20120126 –s10patchset

Setup ……..
CPU OS Patchset 2012/01 Solaris 10 x86 (2012.01.05)

Application of patches started : 2012.01.30 10:09:18

Applying 120901-03 (  1 of 308) … skipped
Applying 121334-04 (  2 of 308) … skipped
Applying 119255-82 (  3 of 308) … skipped
Applying 119318-01 (  4 of 308) … skipped
Applying 121297-01 (  5 of 308) … skipped
Applying 138216-01 (  6 of 308) … skipped

[…stuff deleted…]

Applying 147435-01 (304 of 308) … success
Applying 147441-09 (305 of 308) … success
Applying 147702-01 (306 of 308) … success
Applying 147989-01 (307 of 308) … success
Applying 148064-01 (308 of 308) … success

Application of patches finished : 2012.01.30 10:28:12

[…list of patches that were applied, skipped, obsoleted, and not applicable…]

Installation of patch set to alternate boot environment complete.

Please remember to activate boot environment s10x_u9wos_20120126 with luactivate(1M)
before rebooting.

Install log files written :
/.alt.s10x_u9wos_20120126/var/sadm/install_data/s10x_rec_patchset_short_2012.01.30_10.09.18.log
/.alt.s10x_u9wos_20120126/var/sadm/install_data/s10x_rec_patchset_verbose_2012.01.30_10.09.18.log

The luactivate command will issue a message similar to the following and abort if an ABE (Active Boot Environment)  is not at the required patch level :

The Live Upgrade Patch revision is lower than required in boot environment. Apply Patch 121430-57 or later to boot environment in order to activate it.

If this occurs, determine the revision of Live Upgrade patch (121430 SPARC / 121431 x86) currently applied to the PBE, and then use the ‘luupgrade -t’ command to apply the same revision of the patch to the ABE

luactivate s10x_u9wos_20120126
System has findroot enabled GRUB
Generating boot-sign, partition and slice information for PBE
A Live Upgrade Sync operation will be performed on startup of boot environment.

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
Re-enabling 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 the Solaris failsafe or boot in Single User mode from Solaris
Install CD or Network.

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

zpool import rootpool
zfs inherit -r mountpoint rootpool/ROOT/s10x_u9wos_20110909
zfs set mountpoint= rootpool/ROOT/s10x_u9wos_20110909
zfs mount rootpool/ROOT/s10x_u9wos_20110909

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

/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.

# lustatus

Boot Environment NameIs CompleteActive NowActive On RebootCan DeleteCopy Status
————————–——–——————————-
s10x_u9wos_14ayesnonoyes
s10x_u9wos_20110909yesyesnono
s10x_u9wos_20120126yesnoyesno

Logged onto the console via the iLOM.

Rebooted from the console…………….

init 6

uname -a
SunOS jumpstart 5.10 Generic_147441-09 i86pc i386 i86pc
lustatus

Boot Environment NameIs CompleteActive NowActive On RebootCan DeleteCopy Status
————————–——–——————————-
s10x_u9wos_14ayesnonoyes
s10x_u9wos_20110909yesnonoyes
s10x_u9wos_20120126yesyesyesno

– See more at: http://serviceitdirect.com/blog/using-live-upgrade-apply-patches-running-solaris-10-x86#sthash.RFOQ7JWZ.dpuf