Edit /rootpool/boot/grub/menu.lst to include an entry for
this ZFS boot filesystem by appending '-B $ZFS-BOOTFS' after the unix program. Your entry should look something like this:
title Solaris ZFS
kernel$ /platform/i86pc/kernel/unix -B $ZFS-BOOTFS,console=ttya
module$ /platform/i86pc/boot_archive
This entry boots from the default ZFS boot filesystem 'rootpool/rootfs' defined
in the 'bootfs' pool property of the 'rootpool' assuming rootpool is the default boot device.
If rootpool is not the default boot device, you can use 'root' command to redirect the boot device to the ZFS rootpool. Your entry could look
something like this, assuming the UFS root is on slice 0 (default boot device) and ZFS root is on slice 3 of c0d0:
title Solaris ZFS
root (hd0,0,d)
kernel$ /platform/i86pc/kernel/unix -B $ZFS-BOOTFS,console=ttya
module$ /platform/i86pc/boot_archive
This entry boots from the default ZFS boot filesystem 'rootpool/rootfs' defined
in the 'bootfs' pool property of the 'rootpool' on c0d0s3.
The root entry has the following format (hdx,x,x)
where the first entry in the tuple is the disk identifier, the
second entry is the partition number (0-3), and the third entry
is the slice number (a-h), where a is slice 0 and h is slice 7.
The root command is not needed if your boot environment is on
the disk slice given to the installgrub command. See step
#7 for more information.
There can be multiple
bootable filesystems in a single pool. You can override the
default boot filesystem name by using a GRUB command 'bootfs
<pool/fs>'. Put it before the kernel command. Example:
title Solaris ZFS
bootfs rootpool/rootfs2
kernel$ /platform/i86pc/kernel/unix -B $ZFS-BOOTFS,console=ttya
module$ /platform/i86pc/boot_archive
For the failsafe mode, use the following entry in menu.lst:
kernel /boot/platform/i86pc/kernel/unix -B console=ttya
module /boot/x86.miniroot