### The goal here is to take a snapshot of the current system, clone the snapshot, and then upgrade the clone. ### This way we can BFU the system and still have a fallback in the event that the BFU fails, or the new OS/Net build ### bricks our box. [20071116-01:00:04]:[root@octopus]:[~]# tar -xf SUNWonbld.i386.tar [20071116-01:00:08]:[root@octopus]:[~]# ls SUNWonbld.i386.tar on-bfu-nightly-osol-nd.i386.tar.bz2 onbld/ [20071116-01:00:09]:[root@octopus]:[~]# cd on on-bfu-nightly-osol-nd.i386.tar.bz2 onbld/ [20071116-01:00:09]:[root@octopus]:[~]# cd onbld/ [20071116-01:00:12]:[root@octopus]:[~/onbld]# pkgadd -d . SUNWonbld [20071116-01:02:51]:[root@octopus]:[~]# mv archives-nightly-osol-nd/ /tmp/ [20071116-01:03:01]:[root@octopus]:[~]# rm on-bfu-nightly-osol-nd.i386.tar [20071116-01:01:09]:[root@octopus]:[~]# export FASTFS="/opt/onbld/bin/i386/fastfs" [20071116-01:02:05]:[root@octopus]:[~]# export GZIPBIN="/usr/bin/gzip" [20071116-01:02:07]:[root@octopus]:[~]# export BFULD="/opt/onbld/bin/`uname -p`/bfuld" [20071116-01:03:29]:[root@octopus]:[~]# export PATH="/opt/onbld/bin:/opt/onbld/bin/`uname -p`:$PATH" [20071116-01:03:52]:[root@octopus]:[~]# zfs snapshot rootpool/b74@upgrade [20071116-01:04:06]:[root@octopus]:[~]# zfs clone rootpool/b74@upgrade rootpool/b76 [20071116-01:04:28]:[root@octopus]:[~]# zfs set mountpoint=/rootpool/b76 rootpool/b76 ### used -f to skip the BIND8->BIND9 check ### commented out dbus check [20071116-01:06:09]:[root@octopus]:[~]# bfu -f /tmp/archives-nightly-osol-nd/i386 /rootpool/b76 bfu# /opt/onbld/bin/acr /rootpool/b76 bootadm archive-update -R /rootpool/b76 [20071116-01:20:22]:[root@octopus]:[~]# zfs set mountpoint=legacy rootpool/b76 ### Assuming that rootpool is mounted to /rootpool, so the BE's GRUB menu.lst is available, ### edit it, or use Tim Foster's zfs-bootadm.sh to choose which BE should be booted. [20071116-12:01:42]:[root@octopus]:[~]# ./zfs-bootadm.sh Usage: zfs-bootadm.sh [command] where command is one of: create Creates a new bootable dataset as a clone of the existing one. activate Sets a bootable dataset as the next dataset to be booted from. destroy Destroys a bootable dataset. This must not be the active dataset. list Lists the known bootable datasets. [20071116-12:02:45]:[root@octopus]:[~]# zfs set bootable:=true rootpool/b74 [20071116-12:02:52]:[root@octopus]:[~]# zfs set bootable:=true rootpool/b75 [20071116-12:02:53]:[root@octopus]:[~]# zfs set bootable:=true rootpool/b76 [20071116-12:02:55]:[root@octopus]:[~]# zfs set bootable:=true rootpool/test [20071116-12:02:58]:[root@octopus]:[~]# ./zfs-bootadm.sh list b74 (current) b75 b76 test [20071116-12:03:04]:[root@octopus]:[~]# ./zfs-bootadm.sh activate b76 Currently booted from bootable dataset rootpool/b74 On next reboot, bootable dataset rootpool/b76 will be activated.