Go to main content

Creating and Administering Oracle® Solaris 11.4 Boot Environments

Exit Print View

Updated: November 2019
 
 

About Boot Environments

A boot environment is a bootable instance of the Oracle Solaris image and its component software packages. When you install Oracle Solaris for the first time, or upgrade the OS, a BE is automatically created on the system. The BE is also activated and becomes the default BE that is used when the system is rebooted.

You can also manually create new BEs by using the beadm command. Thus, a system can contain multiple BEs. However, only one boot BE can be active at a time.

Maintaining Multiple Boot Environments

Multiple BEs reduce risk when updating software, as shown in the following examples.

  • You can revert to a backup BE in case of errors occurring when updating software.

  • You can install, test, and update different software packages on a cloned BE and thus preserve the original BE.

    Although only one BE can be active at a time, you can mount an inactive one on which you can install or update specific packages. For more information, see Installing a Package Into a New Boot Environment in Updating Systems and Adding Software in Oracle Solaris 11.4.

  • While modifying a BE, you can take a snapshot at any stage. For example, if you are doing monthly upgrades to your boot environment, you can capture monthly snapshots.

    Although a snapshot is not bootable, you can create a BE based on that snapshot.

  • You can specify any BE to be the default boot BE at the next system reboot.

  • Packages are installed or updated on a clone of the active BE. The clone is created automatically and becomes the active and default BE when the system is rebooted. Thus, the original BE remains intact.

About Boot Environments and Datasets

A BE consists of a root dataset and, optionally, additional nested datasets.

A dataset is a generic name for ZFS entities such as clones, file systems, or snapshots. In the context of boot environment administration, the dataset more specifically refers to the file system specifications for a particular boot environment.

In the following example, the boot environment BE1's root dataset is rpool/ROOT/BE1. rpool is the name of the root storage pool. ROOT is a special dataset that was created by the installer. rpool/ROOT is reserved exclusively for use by boot environment root datasets.


Note -  Storage pools are sometimes called zpools because they are administered through the zpool command.
$ zfs list
NAME                    USED  AVAIL  REFER  MOUNTPOINT
rpool                  42.5G  24.4G  4.65M  /rpool
rpool/ROOT             25.6G  24.4G    31K  legacy
rpool/ROOT/BE1         8.91M  24.4G  4.17G  /
rpool/ROOT/BE1/var     3.96M  24.4G   276M  /var

Shared datasets are located outside a BE's root dataset. Shared datasets are user-defined directories, such as a directory that stores user accounts. These directories are accessible regardless of which BE is currently active. In this example, tank and tank/home are shared datasets.

$ zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                    42.5G  24.4G  4.65M  /rpool
rpool/ROOT               25.6G  24.4G    31K  legacy
rpool/ROOT/BE1           8.91M  24.4G  4.17G  /
rpool/ROOT/BE1/var       3.96M  24.4G   276M  /var
tank                      450K   457G    18K  /export
tank/home                 315K   457G    21K  /export/home

For further reference, see the zpool(8) and the zfs(8) man pages as well as Querying ZFS Storage Pool Status in Managing ZFS File Systems in Oracle Solaris 11.4.