Support for booting from an Oracle Solaris ZFS root file system has been added to Oracle Solaris. The installation software also includes support for system upgrades and patching of systems with ZFS roots. Booting, system operations, and installation procedures have been modified to support this change. Changes to booting include the implementation of a new boot architecture on the SPARC platform. The new SPARC boot design includes feature enhancements that increase commonality with the Solaris x86 boot architecture.
Before using this feature, check the Oracle Solaris 10 9/10 Release Notes to find out about any known issues.
For more information about Oracle Solaris ZFS, including a complete list of terms, see ZFS Terminology in Oracle Solaris ZFS Administration Guide.
Before performing a new installation of Oracle Solaris or using Oracle Solaris Live Upgrade to migrate a UFS root file system to an Oracle Solaris ZFS root file system, make sure the following requirements are met:
Solaris release information:
The ability to install and boot from an Oracle Solaris ZFS root file system is available, starting with the Solaris 10 10/09 release. To perform an Oracle Solaris Live Upgrade operation to migrate to a ZFS root file system, you must have installed or upgraded to at least the Solaris 10 10/09 release.
Oracle Solaris ZFS storage pool space requirements:
Because swap and dump devices are not shared in a ZFS root environment, the minimum amount of available pool space that is required for a bootable ZFS root file system is larger than for a bootable UFS root file system.
Swap volume size is calculated at half the size of physical memory, but no more than 2 Gbytes, and no less than 512 Mbytes. Dump volume size is calculated by the kernel, based on dumpadm information and the size of physical memory. You can adjust the size of your swap and dump volumes to sizes of your choosing either in an Oracle Solaris JumpStart profile or during an initial installation, as long as the new sizes support system operation. For more information, see ZFS Support for Swap and Dump Devices in Oracle Solaris ZFS Administration Guide.
Booting from an Oracle Solaris ZFS root file system works differently than booting from a UFS file system. Because ZFS applies several new concepts for installation and booting, some basic administrative practices for booting a system have changed. The most significant difference between booting from a ZFS root file system and booting from a UFS root file system is that with ZFS a device identifier does not uniquely identify a root file system, and thus a BE. With ZFS, a device identifier uniquely identifies a storage pool. A storage pool can contain multiple bootable datasets (root file systems). Therefore, in addition to specifying a boot device, a root file system within the pool that is identified by the boot device must also be specified.
On an x86 based system, if the boot device identified by GRUB contains a ZFS storage pool, the menu.lst file that is used to create the GRUB menu is located in the dataset at the root of that pool's dataset hierarchy. This dataset has the same name as the pool. There is one such dataset in each pool.
A default bootable dataset is the bootable dataset for the pool that is mounted at boot time and is defined by the root pool's bootfs property. When a device in a root pool is booted, the dataset that is specified by this property is then mounted as the root file system.
The new bootfs pool property is a mechanism that is used by the system to specify the default bootable dataset for a given pool. When a device in a root pool is booted, the dataset that is mounted by default as the root file system is the one that is identified by the bootfs pool property.
On a SPARC based system, the default bootfs pool property is overridden by using the new -Z dataset option of the boot command.
On an x86 based system, the default bootfs pool property is overridden by selecting an alternate boot environment in the GRUB menu at boot time.
On the SPARC platform, the following two boot options are new:
The -L option, which is used to print a list of all the available BEs on a system.
ok boot -L
The -L option is run from the ok prompt. This option only presents the list of available BEs on the system. To boot the system, use the- Z boot option.
The -Z option of the boot command enables you to specify a bootable dataset other than the default dataset that is specified by the bootfs pool property.
ok boot -Z dataset
The list of BEs that are displayed when you use the -L option on a device that has a ZFS boot loader reflect the menu.lst entries that are available on that particular system. Along with the list of available BEs, instructions for selecting a BE and using the -Z option to boot the system are also provided. The dataset specified by the bootfs value for the menu item is used for all subsequent files that are read by the booter, for example, the boot archive and various configuration files that are located in the /etc directory. This dataset is then mounted as the root file system.
For step-by-step instructions, see Booting From a Specified ZFS Root File System on a SPARC Based System.
On the x86 platform, a new GRUB keyword, $ZFS-BOOTFS has been introduced. When booting an x86 based system, if the root file system that corresponds with the GRUB menu entry is a ZFS dataset, the GRUB menu entry contains the -B option with the $ZFS-BOOTFS token, by default. If you install a release that supports a ZFS boot loader, the GRUB menu.lst file is updated with this information automatically. The default bootable dataset is identified by the bootfs property.
On x86 based systems that are running a release that supports a ZFS boot loader, this information is included in the GRUB menu.lst file.
For step-by-step instructions on booting a system from ZFS, see x86: Booting From a Specified ZFS Root File System on an x86 Based System.