If a user does a "zpool attach" to a root pool, we presume that they want
to be able to boot from that newly attached device. That means it needs
a boot block, applied either by installgrub (x86) or installboot(sparc).
http://www.opensolaris.org/jive/thread.jspa?threadID=61050&tstart=0
http://malsserver.blogspot.com/2008/08/mirroring-resolved-correct-way.html
Similarly, "zpool upgrade" should ensure an updated GRUB is placed on a root pool. See http://defect.opensolaris.org/bz/show_bug.cgi?id=2995
Work Around
For sparc, after zpool attach run
installboot -F zfs /platform/`uname -m`/lib/fs/zfs/bootblk /dev/rdsk/c0t0d0s0
( obviously changing c0t0d0s0 to appropriate slice etc )
x86
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t0d0s0
I have tested the sparc workaround, not the x86 one.
Enda