After getting so excited about figuring out what was up with the upgrade to 2009.06 I ran into another, more sticky problem. I rushed into reattaching the zones I’d had to detach to get beadm working by using:

zoneadm -z zonename attach -F

Oh dear: that was a bad idea. The zone appeared to attach but zoneadm -z zonename boot failed and then I discovered it was impossible to delete, rename or reconfigure the zone.

After a few attempts to recover things, the correct answer turns out to be to manually edit /etc/zones/index to change the state of the zone to read configured, and then it’s trivial to reattach the zone with:

zoneadm -z zonename attach -u -d path/to/zonename/ROOT/zbe

at which point it automatically upgrades the zone to 2009.06.