A boot environment is a bootable instance of the Oracle Solaris operating system image plus any other application software packages installed into that image. System administrators can maintain multiple boot environments on their systems, and each boot environment can have different software versions installed.
Upon the initial installation of the Oracle Solaris release onto a system, a boot environment is created. You can use the beadm command to create and administer additional boot environments on your system. In addition, the Package Manager GUI provides some options for managing boot environments. Exactly one boot environment can be active at a time.
In terms of file structure, each boot environment consists of a root dataset and, optionally, other datasets nested under that root dataset.
For more information about ZFS datasets, see ZFS Terminology in Managing ZFS File Systems in Oracle Solaris 11.2 .
The following example shows the root dataset for a sample boot environment named BE1: rpool/ROOT/BE1. In this example, rpool is the name of the storage pool (zpool). The pool was previously set up and therefore already exists on the system. ROOT is a special dataset that was created the installer. The rpool/ROOT dataset is reserved exclusively for use by boot environment root datasets. The root dataset and any other datasets nested beneath it are included in the BE1 boot environment.
# 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, in contrast, are located outside the root dataset area of each boot environment. Shared datasets are user-defined directories, such as /export. An example of a shared dataset might be a dataset where user accounts are kept; these user accounts can be accessed regardless of which boot environment is booted.
See the following example:
# 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
Snapshots and boot environments can be automatically created by utilities other than the beadm command. For example, the pkg command may automatically create a clone of a boot environment when you install or update packages using that command.
The beadm command should always be used to manipulate boot environments. For example, use the beadm command to make a reference copy of a boot environment before making changes. Even though the beadm command is based on zfs technology, it has additional functionalities specific to managing a BE's root dataset and the datasets under the root datasets. And, the command also has special logic to track and manage the associations between BEs within a global zone, within multiple zones, or across multiple zones. For more information, see the beadm (1M) man page.