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 or upgrade your system with a Solaris 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 Solaris release that supports a ZFS boot loader, this information is included in the GRUB menu.
The following is an example of a default menu.lst file for a GRUB implementation that supports a ZFS boot loader:
title Solaris 11 s10x_90 X86 findroot (pool_rpool,0,a) kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS module$ /platform/i86pc/$ISADIR/boot_archive title Solaris 11 failsafe findroot (pool_rpool,0,a) kernel /boot/platform/i86pc/kernel/unix -s -B console=ttyb module /boot/x86.miniroot-safe
This example shows a menu.lst file that has been manually edited to include an alternate bootable dataset entry:
title Solaris-alternate-dataset bootfs myrootpool/bootenv-alt kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS module$ /platform/i86pc/$ISADIR/boot_archive
For step-by-step instructions on booting a system from ZFS, see Booting From a ZFS Root File System on an x86 Based System.