Upgrade using a new boot environment

From Wiki
Jump to: navigation, search
Enclosed below are revised instructions for using "pkg image-update" to
update to the latest OpenSolaris development builds via

For more information on this command and the Image Packaging System
(IPS) technology, refer to the pkg(1), beadm(1M) and pkg(5) manual
pages and the following documents

Getting Started With the Image Packaging System

Upgrading and Managing Your Boot Environments

General instructions for updating to the latest OpenSolaris development build
1) Before using the "image-update" subcommand, it is recommended that
the latest available version of the IPS software be installed for your
current boot environment (BE)

$ BUILD=`uname -v | sed s/snv_//`
$ pfexec pkg refresh
$ pfexec pkg install SUNWipkg@0.5.11-0.$BUILD
$ pfexec pkg install entire@0.5.11-0.$BUILD

2) Verify the build of OpenSolaris in the current BE

$ echo $BUILD

3) If you are running build 93 or greater, you can use "image-update"
directly as follows

$ pfexec pkg image-update

At this point, you can boot into the updated BE using reboot(1M) or
init(1M) as usual.

4) If you are using a build prior to 93, it is recommended one apply
the update directly to an alternate BE in order to work-around

2387 libbe.so:beCopy() frees nvlist variables before using them

First, display the list of the existing BEs on the system

$ beadm list
BE Active Active on Mountpoint Space
Name reboot Used
---- ------ --------- ---------- -----
opensolaris no no - 3.92G
opensolaris-1 yes yes - 17.06M

Next, choose the name of a new BE - if the most recent created BE is of
the form "opensolaris-" where is an integer, then a suitable
choice for the new BE is "opensolaris-". In the above example,
the new BE would be "opensolaris-2".

Finally, execute the following sequence of commands to create, mount
and update the new BE

$ pfexec beadm create opensolaris-
$ mkdir /tmp/mnt$$
$ pfexec beadm mount opensolaris- /tmp/mnt$$
$ pfexec pkg -R /tmp/mnt$$ image-update

5) If you are running build 86, the following step is required in order
to work-around

1979 libbe: be_activate needs to run installgrub

/mnt/boot/solaris/bin/update_grub -R /mnt

>>>>>>>>>> IMPORTANT
$ pfexec beadm activate opensolaris-

At this point, you can boot into the updated BE using reboot(1M) or
init(1M) as usual.