To support booting from ZFS on the Solaris SPARC platform, two new boot options have been added:
Displays a list of available bootable datasets within a ZFS pool.
The boot -L command is executed from the OBP, not from the command line.
Boots the root file system for the specified ZFS bootable dataset.
If you are booting a system from a ZFS root file system, first use the boot command with the -L option from the OBP to print a list of the available BEs on the system. Then, use the -Z option to boot the specified BE.
For more information, see the boot(1M) man page.
On SPARC based systems, the menu.lst file contains the following two GRUB commands:
title – Provides a title for a boot environment
bootfs – Specifies the full name of the bootable dataset
To display a list of bootable datasets within a ZFS pool, choose from the following methods:
Use the lustatus command. This command lists all of the BEs in a given ZFS pool.
Note that the lustatus command can also be used on x86 based systems.
Use the boot -L command. This command displays a list of available BEs in a given ZFS pool and provides instructions for booting the system.
The following procedure shows how to use the boot -L command to list available BEs on a system. To boot a specified BE after running this command, follow the instructions that are printed on the screen.
Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Bring the system to the ok prompt.
# init 0 |
List the available BEs in a ZFS pool:
ok boot device-specifier -L |
(Optional) To boot one of the entries that is displayed, type the number of the entry. To boot the specified BE, follow the directions that are printed to the screen.
For instructions, see SPARC: How to Boot From a ZFS Root File System.
# init 0 # svc.startd: The system is coming down. Please wait. svc.startd: 94 system services are now being stopped. svc.startd: The system is down. syncing file systems... done Program terminated ok boot -L . . . Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -L zfs-file-system Loading: /platformsun4u/bootlst 1.s10s_nbu6wos 2 zfs2BE Select environment to boot: [ 1 - 2 ]: 2 to boot the selected entry, invoke: boot [<root-device] -Z rpool/ROOT/zfs2BE |
For more information, see Chapter 4, Installing and Booting a ZFS Root File System, in Solaris ZFS Administration Guide.
Booting from ZFS differs from booting from UFS. When booting from ZFS, a device specifier identifies a storage pool, not a single root file system. A storage pool can contain multiple bootable datasets, or root file systems. Therefore, when booting from ZFS, you must also identify a root file system within the pool that is identified by the boot device as the default. By default, the default boot device is identified by the pool's bootfs property. This procedure shows how to boot the system by specifying a ZFS bootable dataset. See the boot(1M) man page for a complete description of all the boot options that are available.
If the bootfs property was previously set up correctly, for example, if you used the luactivate command to activate a BE, the system boots a ZFS root automatically.
For more information, see zpool(1M) man page.
Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Bring the system to the ok prompt.
# init 0 |
(Optional) To display a list of available BEs, use the boot command with the -L option.
For instructions, see SPARC: How to List Available Bootable Datasets Within a ZFS Root Pool.
To boot a specified entry, type the number of the entry and press Return:
Select environment to boot: [1 - 2]: |
To boot the system, follow the instructions that are printed to the screen:
To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/dataset
ok boot -Z rpool/ROOT/dataset |
For example:
# boot -Z rpool/ROOT/zfs2BE |
After the system has booted, type the following command to verify the active BE:
# prtconf -vp | grep whoami |
This example shows how to use the boot -Z command to boot a ZFS dataset on a SPARC based system.
# init 0 # svc.startd: The system is coming down. Please wait. svc.startd: 79 system services are now being stopped. svc.startd: The system is down. syncing file systems... done Program terminated ok boot -Z rpool/ROOT/zfs2BEe Resetting LOM event: =44d+21h38m12s host reset g ... rProcessor Speed = 648 MHz Baud rate is 9600 8 Data bits, 1 stop bits, no parity (configured from lom) Firmware CORE Sun Microsystems, Inc. @(#) core 1.0.12 2002/01/08 13:00 software Power ON Verifying nVRAM...Done Bootmode is 0 [New I2C DIMM address] . . . Environment monitoring: disabled Executng last command: boot -Z rpool/ROOT/zfs2BE Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -Z rpool/ROOT/zfs2Be zfs-file-system Loading: /platform/SUNW,UltraAX-i2/boot_archive Loading: /platform/sun4u/boot_archive ramdisk-root hsfs-file-system Loading: /platform/SUNW,UltraAX-i2/kernel/sparcv9/unix Loading: /platform/sun4u/kernel/sparcv9/unix . . . Hostname: mallory NIS domainname is boulder.Central.Sun.COM Reading ZFS config: done. Mounting ZFS filesytems: (6/6) mallory console login: |
For information about booting the failsafe archive for a specified ZFS bootable dataset, see How to Boot the Failsafe Archive on a SPARC Based System.