Solaris ZFS Administration Guide

Installing a ZFS Root File System (JumpStart Installation)

You can create a JumpStart profile to install a ZFS root file system or a UFS root file system.

A ZFS specific profile must contain the new pool keyword. The pool keyword installs a new root pool and a new boot environment is created by default. You can provide the name of the boot environment and can create a separate /var dataset with the bootenv installbe keywords and bename and dataset options.

For general information about using JumpStart features, see Solaris Express Installation Guide: Custom JumpStart and Advanced Installations.

ZFS JumpStart Profile Examples

This section provides examples of ZFS specific JumpStart profiles.

The following profile performs an initial installation specified with install_type initial_install in a new pool, identified with pool newpool, whose size is automatically sized with the auto keyword to the size of the specified disks. The swap area and dump device are automatically sized with auto keyword in a mirrored configuration of disks (with the mirror keyword and disks specified as c0t0d0s0 and c0t1d0s0). Boot environment characteristics are set with the bootenv keyword to install a new BE with the keyword installbe and a bename named sxce_xx is created.


install_type initial_install
pool newpool auto auto auto mirror c0t0d0s0 c0t1d0s0
bootenv installbe bename sxce-xx

The following profile performs an initial installation with keyword install_type initial_install of the SUNWCall metacluster in a new pool called newpool, that is 80 Gbytes in size. This pool is created with a 2-Gbyte swap volume and a 2-Gbyte dump volume, in a mirrored configuration of any two available devices that are large enough to create an 80-Gbyte pool. If two such devices aren't available, the installation fails. Boot environment characteristics are set with the bootenv keyword to install a new BE with the keyword installbe and a bename named sxce-xx is created.


install_type initial_install
cluster SUNWCall
pool newpool 80g 2g 2g mirror any any
bootenv installbe bename sxce-xx

JumpStart installation syntax supports the ability to preserve or create a UFS file system on a disk that also includes a ZFS root pool. This configuration is not recommended for production systems, but could be used for transition or migration needs on a small system, such as a laptop.

ZFS JumpStart Keywords

The following keywords are permitted in a ZFS specific profile:

auto

Specifies the size of the slices for the pool, swap volume, or dump volume automatically. The size of the disk is checked to verify that the minimum size can be accommodated. If the minimize size can be accommodated, the largest possible pool size is allocated, given the constraints, such as the size of the disks, preserved slices, and so on.

For example, if you specify c0t0d0s0, the slice is created as large as possible if you specify either the all or auto keywords. Or, you can specify a particular size for the slice or swap or dump volume.

The auto keyword works similarly to the all keyword when used with a ZFS root pool because pools don't have the concept of unused space.

bootenv

This keyword identifies the boot environment characteristics.

The bootenv keyword already exists, but new options are defined. Use the following bootenv keyword syntax to create a bootable ZFS root environment:

bootenv installbe bename BE-name [dataset mount-point]

installbe

Creates a new BE that is identified by the bename option and BE-name entry and installs it.

bename BE-name

Identifies the BE-name to install.

If bename is not used with the pool keyword, then a default BE is created.

dataset mount-point

Use the optional dataset keyword to identify a /var dataset that is separate from the root dataset. The mount-point value is currently limited to /var. For example, a bootenv syntax line for a separate /var dataset would be similar to the following:


bootenv installbe bename zfsroot dataset /var
pool

Defines the new root pool to be created. The following keyword syntax must be provided:


poolname poolsize swapsize dumpsize vdevlist
poolname

Identifies the name of the pool to be created. The pool is created with the specified pool size and with the specified physical devices (vdevs). The poolname option should not identify the name of an existing pool or the existing pool is overwritten.

poolsize

Specifies the size of the pool to be created. The value can be auto or existing. The auto value means allocate the largest possible pool size, given the constraints, such as size of the disks, preserved slices, and so on. The existing value means the boundaries of existing slices by that name are preserved and overwritten. The size is assumed to be in Mbytes, unless specified by g (Gbytes).

swapsize

Specifies the size of the swap volume to be created. The value can be auto, which means the default swap size is used, or size, to specify a size. The size is assumed to be in Mbytes, unless specified by g (Gbytes).

dumpsize

Specifies the size of the dump volume to be created. The value can be auto, which means the default swap size is used, or size, to specify a size. The size is assumed to be in Mbytes, unless specified by g (Gbytes).

vdevlist

Specifies one or more devices that are used to create the pool. The format of the vdevlist is the same as the format of the zpool create command. At this time, only mirrored configurations are supported when multiple devices are specified. Devices in the vdevlist must be slices for the root pool. The any string, means that the installation software selects a suitable device.

You can mirror as many disks as you like, but the size of the pool that is created is determined by the smallest of the specified disks. For more information about creating mirrored storage pools, see Mirrored Storage Pool Configuration.

ZFS JumpStart Issues

Consider the following issues before starting a JumpStart installation of a bootable ZFS root file system.