### 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] <arguments>
where command is one of:
create <name>
Creates a new bootable dataset as a clone
of the existing one.
activate <name>
Sets a bootable dataset as the next
dataset to be booted from.
destroy <name>
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.