Zone Does not Halt

In the event that the system state associated with the zone cannot
be destroyed, the halt operation will fail halfway. This leaves the zone in
an intermediate state, somewhere between running and installed. In this state there are no
active user processes or kernel threads, and none can be created. When the
halt operation fails, you must manually intervene to complete the process.

The most common cause of a failure is the inability of the
system to unmount all file systems. Unlike a traditional Solaris system shutdown, which destroys
the system state, zones must ensure that no mounts performed while booting the
zone or during zone operation remain once the zone has been halted. Even
though zoneadm makes sure that there are no processes executing in the zone,
the unmount operation can fail if processes in the global zone have open
files in the zone. Use the tools described in the proc(1) (see
pfiles) and fuser(1M) man pages to find these processes and take appropriate action.
After these processes have been dealt with, reinvoking zoneadmhalt should completely
halt of the zone.

For a zone that cannot be halted, as of the Solaris 10 10/09
release, you can migrate a zone that has not been detached by using
the zoneadmattach-F option to force the attach without a validation.
The target system must be properly configured to host the zone. An incorrect
configuration could result in undefined behavior. Moreover, there is no way to know
the state of the files within the zone.