Oracle Solaris ZFS Administration Guide

ProcedureHow to Upgrade or Patch a ZFS Root File System With Zone Roots on ZFS (Solaris 10 10/08)

Use this procedure when you need to upgrade or patch a ZFS root file system with zone roots on ZFS. These updates can either be a system upgrade or the application of patches.

In the steps that follow, newBE is the example name of the boot environment that is upgraded or patched.

  1. Create the boot environment to upgrade or patch.

    # lucreate -n newBE

    The existing boot environment, including all the zones, is cloned. A dataset is created for each dataset in the original boot environment. The new datasets are created in the same pool as the current root pool.

  2. Select one of the following to upgrade the system or apply patches to the new boot environment:

    • Upgrade the system.

      # luupgrade -u -n newBE -s /net/install/export/s10u7/latest

      where the -s option specifies the location of the Solaris installation medium.

    • Apply patches to the new boot environment.

       # luupgrade -t -n newBE -t -s /patchdir 139147-02 157347-14
  3. Activate the new boot environment.

    # luactivate newBE
  4. Boot from the newly activated boot environment.

    # init 6
  5. Resolve any potential mount-point problems.

    Due to a bug in Oracle Solaris Live Upgrade feature, the inactive boot environment might fail to boot because a ZFS dataset or a zone's ZFS dataset in the boot environment has an invalid mount point.

    1. Review the zfs list output.

      Look for incorrect temporary mount points. For example:

      # zfs list -r -o name,mountpoint rpool/ROOT/newBE
      NAME                               MOUNTPOINT
      rpool/ROOT/newBE                   /.alt.tmp.b-VP.mnt/
      rpool/ROOT/newBE/zones             /.alt.tmp.b-VP.mnt/zones
      rpool/ROOT/newBE/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

      The mount point for the root ZFS BE (rpool/ROOT/newBE) should be /.

    2. Reset the mount points for the ZFS BE and its datasets.

      For example:

      # zfs inherit -r mountpoint rpool/ROOT/newBE
      # zfs set mountpoint=/ rpool/ROOT/newBE
    3. Reboot the system.

      When the option to boot a specific boot environment is presented, either in the GRUB menu or at the OpenBoot PROM prompt, select the boot environment whose mount points were just corrected.