I've used this procedure for patching a live Solaris system with a ZFS Root. Please Note: I'm not sure if Sun supports this process, so don't use on a production server until you have tested patching.
1. Download and extract the latest patch bundle from Sun.
unzip 10_Recommended.zip > /dev/null 2>&1
2. Make a temporary directory for the boot environment.
mkdir /boot-env
3. Create a snapshot of the running system.
zfs snapshot rpool/ROOT/10u6@zfs-running
4. Send the snapshot to a file.
zfs send rpool/ROOT/10u6@zfs-running > /backup/zfs-running.zfs
4. Create a ZFS filesystem.
zfs create rpool/ROOT/10u6-temp
5. Restore the zfs snapshot to the temporary filesystem.
zfs receive -vF rpool/ROOT/10u6-temp < /backup/zfs-running.zfs
6. Clone/Promote the restored snapshot.
zfs clone rpool/ROOT/10u6-temp@zfs-running rpool/ROOT/10u6-patched zfs promote rpool/ROOT/10u6-patched
7. Set the mountpoint to the temporary directory from Step 3.
zfs set mountpoint=/boot-env rpool/ROOT/10u6-patched
8. Use the installcluster script to install the patch bundle.
./installcluster --apply-prereq --s10cluster ./installcluster -R /boot-env --s10cluster
9. Set the permenant mountpoint for the patched filesystem and make it bootable.
zfs set mountpoint=/ ${NEWBOOTFS} zpool set bootfs=${NEWBOOTFS} rpool
10. Reboot
init 6
After the reboot, you should see rpool/ROOT/10u6-patched as your boot filesystem.
This document was generated using AFT v5.097