<chapter id="z.conf.start-1"><title>Planning and Configuring Non-Global Zones
(Tasks)</title><highlights><para>This chapter describes what you need to do before you can configure
a zone on your system. This chapter also describes how to configure a zone,
modify a zone configuration, and delete a zone configuration from your system.</para><para>For an introduction to the zone configuration process, see <olink targetptr="z.config.ov-1" remap="internal">Chapter&nbsp;17, Non-Global Zone Configuration (Overview)</olink>.</para><para>For information about <literal>lx</literal> branded zone configuration,
see <olink targetptr="gcwwm" remap="internal">Chapter&nbsp;30, Planning the lx Branded Zone
Configuration (Overview)</olink> and <olink targetptr="gdajn" remap="internal">Chapter&nbsp;31,
Configuring the lx Branded Zone (Tasks)</olink>.</para>
</highlights><sect1 id="z.conf.start-2"><title>Planning and Configuring a Non-Global Zone
(Task Map)</title><para>Before you set up your system to use zones, you must first collect
information and make decisions about how to configure the zones. The following
task map summarizes how to plan and configure a zone.</para><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Plan your zone strategy.</para>
</entry><entry><itemizedlist><listitem><para>Evaluate the applications running on your system to determine
which applications you want to run in a zone.</para>
</listitem><listitem><para>Assess the availability of disk space to hold the files that
are unique in the zone.</para>
</listitem><listitem><para>If you are also using resource management features, determine
how to align the zone with the resource management boundaries.</para>
</listitem><listitem><para>If you are using resource pools, configure the pools if necessary.</para>
</listitem>
</itemizedlist>
</entry><entry><para>Refer to historical usage. Also see <olink targetptr="z.conf.start-9" remap="internal">Disk
Space Requirements</olink> and <olink targetptr="rmpool-114" remap="internal">Resource Pools
Used in Zones</olink>.</para>
</entry>
</row><row><entry><para>Determine the name for the zone.</para>
</entry><entry><para>Decide what to call the zone based on the naming conventions.</para>
</entry><entry><para>See <olink targetptr="z.config.ov-12" remap="internal">Zone Configuration Data</olink> and <olink targetptr="z.conf.start-5" remap="internal">Zone Host Name</olink>.</para>
</entry>
</row><row><entry><para>Determine the zone path.</para>
</entry><entry><para>Each zone has a path to its root directory that is relative to the global
zone's root directory.</para>
</entry><entry><para>See <olink targetptr="z.config.ov-12" remap="internal">Zone Configuration Data</olink>.</para>
</entry>
</row><row><entry><para>Evaluate the need for CPU restriction if you are not configuring resource
pools. Note that with specification in <command>zonecfg</command>, pool settings
propagate during migrations.</para>
</entry><entry><para>Review your application requirements.</para>
</entry><entry><para>See <olink targetptr="gejlw" remap="internal">dedicated-cpu Resource</olink>.</para>
</entry>
</row><row><entry><para>Evaluate the need for memory allocation if you plan to cap memory for
the zone by using <literal>rcapd</literal> from the global zone.</para>
</entry><entry><para>Review your application requirements.</para>
</entry><entry><para>See <olink targetptr="rm.rcapd-1" remap="internal">Chapter&nbsp;10, Physical Memory Control
Using the Resource Capping Daemon (Overview)</olink>, <olink targetptr="rm.rcapd.task-1" remap="internal">Chapter&nbsp;11, Administering the Resource Capping
Daemon (Tasks)</olink>, and <olink targetptr="gejkz" remap="internal">Physical Memory Control
and the capped-memory Resource</olink>.</para>
</entry>
</row><row><entry><para>Make the FSS the default scheduler on the system.</para>
</entry><entry><para>Give each zone CPU shares to control the zone's entitlement to CPU resources.
The FSS guarantees a fair dispersion of CPU resources among zones that is
based on allocated shares.</para>
</entry><entry><para><olink targetptr="rmfss-1" remap="internal">Chapter&nbsp;8, Fair Share Scheduler (Overview)</olink>, <olink targetptr="gejen" remap="internal">Scheduling Class</olink>.</para>
</entry>
</row><row><entry><para>Determine whether the zone will be a shared-IP zone or an exclusive-IP
zone.</para>
</entry><entry><para>For a shared-IP zone, which is the default, obtain or configure IP addresses
for the zone. Depending on your configuration, you must obtain at least one
IP address for each non-global zone that you want to have network access.</para><para>For an exclusive-IP zone, determine the data-link that will be assigned
to the zone. The zone requires exclusive access to one or more network interfaces.
The interface could be a separate LAN such as <literal>bge1</literal>, or
a separate VLAN such as <literal>bge2000</literal>. <emphasis>Prior to <trademark>OpenSolaris</trademark> build snv_83</emphasis>, the data-link must be GLDv3. </para>
</entry><entry><para>See <olink targetptr="z.conf.start-4" remap="internal">Determine the Zone Host Name and
Obtain the Network Address</olink>, <olink targetptr="z.conf.start-29" remap="internal">How
to Configure the Zone</olink>, and <olink targetdoc="sysadv3" remap="external"><citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.</para><para>For more information on GLDv3 interfaces, see <olink targetdoc="sysadv3" targetptr="gaugz" remap="external"><citetitle remap="section">Solaris OS Interface Types</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.</para>
</entry>
</row><row><entry><para>Determine which file systems you want to mount in the zone.</para>
</entry><entry><para>Review your application requirements.</para>
</entry><entry><para>See <olink targetptr="z.config.ov-7" remap="internal">File Systems Mounted in Zones</olink> for
more information.</para>
</entry>
</row><row><entry><para>Determine which network interfaces should be made available in the zone.</para>
</entry><entry><para>Review your application requirements.</para>
</entry><entry><para>See <olink targetptr="z.admin.ov-12" remap="internal">Shared-IP Network Interfaces</olink> for
more information.</para>
</entry>
</row><row><entry><para>Determine whether you must alter the default set of non-global zone
permissions.</para>
</entry><entry><para>Check the set of privileges: default, privileges that can be added and
removed, and privileges that cannot be used at this time.</para>
</entry><entry><para>See <olink targetptr="z.admin.ov-18" remap="internal">Privileges in a Non-Global Zone</olink>.</para>
</entry>
</row><row><entry><para>Determine which devices should be configured in each zone.</para>
</entry><entry><para>Review your application requirements.</para>
</entry><entry><para>Refer to the documentation for your application.</para>
</entry>
</row><row><entry><para>Configure the zone.</para>
</entry><entry><para> Use <command>zonecfg</command> to create a configuration for the zone.</para>
</entry><entry><para>See <olink targetptr="z.conf.start-85" remap="internal">Configuring, Verifying, and Committing
a Zone</olink>.</para>
</entry>
</row><row><entry><para>Verify and commit the configured zone.</para>
</entry><entry><para>Determine whether the resources and properties specified are valid on
a hypothetical system.</para>
</entry><entry><para>See <olink targetptr="z.conf.start-85" remap="internal">Configuring, Verifying, and Committing
a Zone</olink>.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1><sect1 id="z.conf.start-3"><title>Evaluating the Current System Setup</title><para>Zones can be used on any machine that runs the Solaris 10 or later release.
The following primary machine considerations are associated with the use of
zones.</para><itemizedlist><listitem><para>The performance requirements of the applications running within
each zone.</para>
</listitem><listitem><para>The availability of disk space to hold the files that are
unique within each zone.</para>
</listitem>
</itemizedlist><sect2 id="z.conf.start-9"><title>Disk Space Requirements</title><para>There are no limits on how much disk space can be consumed by
a zone. The global administrator is responsible for space restriction. The
global administrator must ensure that local storage is sufficient to hold
a non-global zone's root file system. Even a small uniprocessor system can
support a number of zones running simultaneously.</para><para>The nature of the packages installed in the global zone affects the
space requirements of the non-global zones that are created. The number of
packages and space requirements are factors.</para><sect3 id="fgotf"><title>Sparse Root Zones</title><para>Non-global zones that have <literal>inherit-pkg-dir</literal> resources
are called sparse root zones.</para><para>The sparse root zone model optimizes the sharing of objects in the following
ways:</para><itemizedlist><listitem><para>Only a subset of the packages installed in the global zone
are installed directly into the non-global zone.</para>
</listitem><listitem><para>Read-only loopback file systems, identified as <literal>inherit-pkg-dir</literal> resources, are used to gain access to other files.</para>
</listitem>
</itemizedlist><para>In this model, all packages appear to be installed in the non-global
 zone. Packages that do not deliver content into read-only loopback mount
file systems are fully installed. There is no need to install content  delivered
into read-only loopback mounted file systems since that content is inherited
(and visible) from the global zone.</para><itemizedlist><listitem><para>As a general guideline, a zone requires about 100 megabytes
of free disk space per zone when the global zone has been installed with all
of the standard Solaris packages.</para>
</listitem><listitem><para>By default, any additional packages installed in the global
zone also populate the non-global zones. The amount of disk space required
might be increased accordingly, depending on whether the additional packages
deliver files that reside in the <literal>inherit-pkg-dir</literal> resource
space.</para>
</listitem>
</itemizedlist><para>An additional 40 megabytes of RAM per zone are suggested, but not required
on a machine with sufficient swap space.</para>
</sect3><sect3 id="fgouj"><title>Whole Root Zones</title><para>The whole root zone model provides the maximum configurability. All
of the required and any selected optional Solaris packages are installed into
the private file systems of the zone. The advantages of this model include
the capability for global administrators to customize their zones file system
layout. This would be done, for example, to add arbitrary unbundled or third-party
packages.</para><para>The disk requirements for this model are determined by the disk space
used by the packages currently installed in the global zone.</para><note><para>If you create a sparse root zone that contains the following <literal>inherit-pkg-dir</literal> directories, you must remove these directories from
the non-global zone's configuration <emphasis>before the zone is installed</emphasis> to
have a whole root zone :</para><itemizedlist><listitem><para><filename>/lib</filename></para>
</listitem><listitem><para><filename>/platform</filename></para>
</listitem><listitem><para><filename>/sbin</filename></para>
</listitem><listitem><para><filename>/usr</filename></para>
</listitem>
</itemizedlist><para>See <olink targetptr="z.conf.start-29" remap="internal">How to Configure the Zone</olink>.</para>
</note>
</sect3>
</sect2><sect2 id="z.conf.start-13"><title>Restricting Zone Size</title><para>The following options can be used to restrict zone size:</para><itemizedlist><listitem><para>You can place the zone on a <command>lofi</command>-mounted
partition. This action will limit the amount of space consumed by the zone
to that of the file used by <command>lofi</command>. For more information,
see the <olink targetdoc="group-refman" targetptr="lofiadm-1m" remap="external"><citerefentry><refentrytitle>lofiadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="lofi-7d" remap="external"><citerefentry><refentrytitle>lofi</refentrytitle><manvolnum>7D</manvolnum></citerefentry></olink> man pages.</para>
</listitem><listitem><para>You can use soft partitions to divide disk slices or logical
volumes into partitions. You can use these partitions as zone roots, and thus
limit per-zone disk consumption. The soft partition limit is 8192 partitions.
For more information, see <olink targetdoc="logvolmgradmin" targetptr="about-softpart-1" remap="external">Chapter 12, <citetitle remap="chapter">Soft Partitions (Overview),</citetitle> in <citetitle remap="book">Solaris Volume Manager Administration Guide</citetitle></olink>.</para>
</listitem><listitem><para>You can use the standard partitions of a disk for zone roots,
and thus limit per-zone disk consumption.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="z.conf.start-4"><title>Determine the Zone Host Name and Obtain
the Network Address</title><para>You must determine the host name for the zone. Then, you must assign
an IPv4 address or manually configure and assign an IPv6 address for the zone
if you want it to have network connectivity.</para><sect2 id="z.conf.start-5"><title>Zone Host Name</title><para>The host name
you select for the zone must be defined either in the <filename>hosts</filename> database
or in the <filename>/etc/inet/hosts</filename> database, as specified by the <filename>/etc/nsswitch.conf</filename> file in the global zone. The network databases
are files that provide network configuration information. The <filename>nsswitch.conf</filename> file specifies which naming service to use.</para><para>If you use local files for the naming service, the <literal>hosts</literal> database
is maintained in the <filename>/etc/inet/hosts</filename> file. The host names
for zone network interfaces are resolved from the local <literal>hosts</literal> database
in <filename>/etc/inet/hosts</filename>. Alternatively, the IP address itself
can be specified directly when configuring a zone so that no host name resolution
is required.</para><para>For more information, see <olink targetdoc="sysadv3" targetptr="ipconfig-12" remap="external"><citetitle remap="section">TCP/IP Configuration Files</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink> and <olink targetdoc="sysadv3" targetptr="ipconfig-42" remap="external"><citetitle remap="section">Network Databases and the nsswitch.conf File</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.</para>
</sect2><sect2 id="z.conf.start-6"><title>Shared-IP Zone Network Address</title><para>Each shared-IP zone that requires network connectivity has one
or more unique IP addresses. Both IPv4 and IPv6 addresses are supported.</para><sect3 id="z.conf.start-94"><title>IPv4 Zone Network Address</title><para>If you are using IPv4, obtain an address and assign the address to the
zone.</para><para>A prefix length can also be specified with the IP address. The format
of this prefix is <replaceable>address</replaceable>/<replaceable>prefix-length</replaceable>,
for example, <literal>192.168.1.1/24</literal>. Thus, the address to use is <literal>192.168.1.1</literal> and the netmask to use is <literal>255.255.255.0</literal>,
or the mask where the first 24 bits are 1-bits.</para>
</sect3><sect3 id="z.conf.start-95"><title>IPv6 Zone Network Address</title><para>If you are using IPv6, you must manually configure the address. Typically,
at least the following two types of addresses must be configured:</para><variablelist><varlistentry><term>Link-local address</term><listitem><para>A link-local address is of the form <literal>fe80::</literal><replaceable>64-bit interface ID</replaceable><literal>/10</literal>. The <literal>/10</literal> indicates
a prefix length of 10 bits.</para>
</listitem>
</varlistentry><varlistentry><term>Address formed from a global prefix configured on the
subnet</term><listitem><para>A global unicast address is based off a 64&ndash;bit prefix
that the administrator configures for each subnet, and a 64-bit interface
ID. The prefix can also be obtained by running the <literal>ifconfig</literal> command
with the <option>a6</option> option on any system on the same subnet that
has been configured to use IPv6.</para><para>The 64&ndash;bit interface ID is typically derived from a system's MAC
address. For zones use, an alternate address that is unique can be derived
from the global zone's IPv4 address as follows:</para><para><literal>16 bits of zero:upper 16 bits of IPv4 address:lower 16 bits
of IPv4 address:a zone-unique number</literal></para><para>For example, if the global zone's IPv4 address is 192.168.200.10, a
suitable link-local address for a non-global zone using a zone-unique number
of <literal>1</literal> is <literal>fe80::c0a8:c80a:1/10</literal>. If the
global prefix in use on that subnet is <literal>2001:0db8:aabb:ccdd/64</literal>,
a unique global unicast address for the same non-global zone is <literal>2001:0db8:aabb:ccdd::c0a8:c80a:1/64</literal>. Note that you must specify a prefix length when configuring an
IPv6 address.</para>
</listitem>
</varlistentry>
</variablelist><para>For more information about link-local and global unicast addresses,
see the <olink targetdoc="group-refman" targetptr="inet6-7p" remap="external"><citerefentry><refentrytitle>inet6</refentrytitle><manvolnum>7P</manvolnum></citerefentry></olink> ma
page.</para>
</sect3>
</sect2><sect2 id="gekzd"><title>Exclusive-IP Zone Network Address</title><para>Inside an exclusive-IP zone, configure addresses as you do for the global
zone. Note that DHCP and IPv6 stateless address autoconfiguration can be used
to configure addresses.</para><para> See <olink targetdoc="group-refman" targetptr="sysidcfg-4" remap="external"><citerefentry><refentrytitle>sysidcfg</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> for
more information.</para>
</sect2>
</sect1><sect1 id="z.conf.start-12"><title>File System Configuration</title><para>You can specify a number of mounts to be performed when the virtual
platform is set up. File systems that are loopback-mounted into a zone by
using the loopback virtual file system (LOFS) file system should be mounted
with the <literal>nodevices</literal> option. For information on the <command>nodevices</command> option, see <olink targetptr="z.admin.ov-2" remap="internal">File Systems and Non-Global
Zones</olink>.</para><para>LOFS lets you create a new virtual file system so that you can access
files by using an alternative path name. In a non-global zone, a loopback
mount makes the file system hierarchy look as though it is duplicated under
the zone's root. In the zone, all files will be accessible with a path name
that starts from the zone's root. LOFS mounting preserves the file system
name space.</para><figure id="z.conf.start-fig-87"><title>Loopback-Mounted File Systems</title><mediaobject><imageobject><imagedata entityref="lofs-mount" width="100"/>
</imageobject><textobject><simpara>Illustration shows loopback-mounted file systems.</simpara>
</textobject>
</mediaobject>
</figure><para>See the <citerefentry><refentrytitle>lofs</refentrytitle><manvolnum>7S</manvolnum></citerefentry> man page for more information.</para>
</sect1><sect1 id="z.conf.start-116"><title>Creating, Revising, and Deleting Non-Global
Zone Configurations (Task Map)</title><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Configure a non-global zone.</para>
</entry><entry><para>Use the <command>zonecfg</command> command to create a zone, verify
the configuration, and commit the configuration. You can also use a script
to configure and boot multiple zones on your system.  </para><para>You can use the <command>zonecfg</command> command to display the configuration
of a non-global zone.</para>
</entry><entry><para><olink targetptr="z.conf.start-85" remap="internal">Configuring, Verifying, and Committing
a Zone</olink>, <olink targetptr="z.conf.start-96" remap="internal">Script to Configure Multiple
Zones</olink></para>
</entry>
</row><row><entry><para>Modify a zone configuration.</para>
</entry><entry><para>Use these procedures to modify a resource type in a zone configuration,
modify a property type such as the name of a zone, or add a dedicated device
to a zone.</para>
</entry><entry><para><olink targetptr="z.conf.start-115" remap="internal">Using the zonecfg Command to Modify
a Zone Configuration</olink></para>
</entry>
</row><row><entry><para>Revert a zone configuration or delete a zone configuration.</para>
</entry><entry><para>Use the <command>zonecfg</command> command to undo a resource setting
made to a zone configuration or to delete a zone configuration.</para>
</entry><entry><para><olink targetptr="z.conf.start-81" remap="internal">Using the zonecfg Command to Revert
or Remove a Zone Configuration</olink></para>
</entry>
</row><row><entry><para>Delete a zone configuration.</para>
</entry><entry><para>Use the <command>zonecfg</command> command with the <literal>delete</literal> subcommand
to delete a zone configuration from the system.</para>
</entry><entry><para><olink targetptr="z.conf.start-82" remap="internal">How to Delete a Zone Configuration</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1><sect1 id="z.conf.start-85"><title>Configuring, Verifying, and Committing
a Zone</title><para>You use the <command>zonecfg</command> command described in the <citerefentry><refentrytitle>zonecfg</refentrytitle><manvolnum>1M</manvolnum></citerefentry> man
page to perform the following actions.</para><itemizedlist><listitem><para>Create the zone configuration</para>
</listitem><listitem><para>Verify that all required information is present</para>
</listitem><listitem><para>Commit the non-global zone configuration</para>
</listitem>
</itemizedlist><para>The <command>zonecfg</command> command can also
be used to persistently specify the resource management settings for the global
zone.</para><para>While configuring a zone with the <command>zonecfg</command> utility,
you can use the <literal>revert</literal> subcommand to undo the setting for
a resource. See <olink targetptr="z.conf.start-30" remap="internal">How to Revert a Zone Configuration</olink>.</para><para>A script to configure multiple zones on your system is provided in <olink targetptr="z.conf.start-96" remap="internal">Script to Configure Multiple Zones</olink>.</para><para>To display a non-global zone's configuration, see <olink targetptr="fnzbc" remap="internal">How to Display the Configuration of a Non-Global Zone</olink>.</para><task id="z.conf.start-29"><title>How to Configure the Zone</title><tasksummary><para>Note that the only required elements to create a native non-global zone
are the <literal>zonename</literal> and <literal>zonepath</literal> properties.
Other resources and properties are optional. Some optional resources also
require choices between alternatives, such as the decision to use either the <literal>dedicated-cpu</literal> resource or the <literal>capped-cpu</literal> resource.
See <olink targetptr="z.config.ov-12" remap="internal">Zone Configuration Data</olink> for
information on available <command>zonecfg</command> properties and resources.</para><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step id="z.conf.start-step-31"><para>Become superuser, or assume the Primary
Administrator role.</para><para>To create the role and assign the role to
a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="z.conf.start-step-15"><para>Set up a zone configuration with the
zone name you have chosen.</para><para>The name <literal>my-zone</literal> is
used in this example procedure.</para><screen>global# <userinput>zonecfg -z my-zone</userinput></screen><para>If this is the first time you have configured this zone, you will see
the following system message:</para><screen>my-zone: No such zone configured
Use 'create' to begin configuring a new zone.</screen>
</step><step id="z.conf.start-step-16"><para>Create the new zone configuration.</para><para>This procedure uses the Sun default settings.</para><screen>zonecfg:my-zone> <userinput>create</userinput></screen>
</step><step id="z.conf.start-step-17"><para>Set the zone path, <literal>/export/home/my-zone</literal> in this procedure.</para><screen>zonecfg:my-zone> <userinput>set zonepath=/export/home/my-zone</userinput></screen>
</step><step id="z.conf.start-step-41"><para>Set the autoboot value.</para><para>If
set to <literal>true</literal>, the zone is automatically booted when the
global zone is booted. Note that for the zones to autoboot, the zones service <literal>svc:/system/zones:default</literal> must also be enabled. The default value
is <literal>false</literal>.</para><screen>zonecfg:my-zone> <userinput>set autoboot=true</userinput></screen>
</step><step><para>Set persistent boot arguments for a zone.</para><screen>zonecfg:my-zone> <userinput>set bootargs="-m verbose"</userinput></screen>
</step><step><para>Dedicate one CPU to this zone.</para><screen>zonecfg:my-zone> <userinput>add dedicated-cpu</userinput></screen><substeps><step><para>Set the number of CPUs.</para><screen>zonecfg:my-zone:dedicated-cpu> <userinput>set ncpus=1-2</userinput></screen>
</step><step><para>(Optional) Set the importance.</para><screen>zonecfg:my-zone:dedicated-cpu> <userinput>set importance=10</userinput></screen><para>The default is <literal>1</literal>.</para>
</step><step><para>End the specification.</para><screen>zonecfg:my-zone:dedicated-cpu> <userinput>end</userinput></screen>
</step>
</substeps>
</step><step><para>Revise the default set of privileges.</para><screen>zonecfg:my-zone> <userinput>set limitpriv="default,sys_time"</userinput></screen><para>This line adds the ability to set the system clock to the default set
of privileges.</para>
</step><step><para>Set the scheduling class to <literal>FSS</literal>.</para><screen>zonecfg:my-zone> <userinput>set scheduling-class=FSS</userinput></screen>
</step><step><para>Add a memory cap.</para><screen>zonecfg:my-zone> <userinput>add capped-memory</userinput></screen><substeps><step><para>Set the memory cap.</para><screen>zonecfg:my-zone:capped-memory> <userinput>set physical=50m</userinput></screen>
</step><step><para>Set the swap memory cap.</para><screen>zonecfg:my-zone:capped-memory> <userinput>set swap=100m</userinput></screen>
</step><step><para>Set the locked memory cap.</para><screen>zonecfg:my-zone:capped-memory> <userinput>set locked=30m</userinput></screen>
</step><step><para>End the memory cap specification.</para><screen>zonecfg:my-zone:capped-memory> <userinput>end</userinput></screen>
</step>
</substeps>
</step><step id="z.conf.start-step-22"><para>Add a file system.</para><screen>zonecfg:my-zone> <userinput>add fs</userinput></screen><substeps><step id="z.conf.start-step-97"><para>Set the mount point for the file system, <literal>/usr/local</literal> in this procedure.</para><screen>zonecfg:my-zone:fs> <userinput>set dir=/usr/local</userinput></screen>
</step><step id="z.conf.start-step-98"><para>Specify that <literal>/opt/local</literal> in
the global zone is to be mounted as <literal>/usr/local</literal> in the zone
being configured.</para><screen>zonecfg:my-zone:fs> <userinput>set special=/opt/local</userinput></screen><para>In the non-global zone, the <literal>/usr/local</literal> file system
will be readable and writable.</para>
</step><step id="z.conf.start-step-99"><para>Specify the file system type, <literal>lofs</literal> in this procedure.</para><screen>zonecfg:my-zone:fs> <userinput>set type=lofs</userinput></screen><para>The type indicates how the kernel interacts with the file system.</para>
</step><step id="z.conf.start-step-100"><para>End the file system specification.</para><screen>zonecfg:my-zone:fs> <userinput>end</userinput></screen>
</step>
</substeps><para>This step can be performed more than once to add more than one file
system.</para>
</step><step><para>Add a ZFS dataset named <replaceable>sales</replaceable> in the
storage pool <replaceable>tank</replaceable></para><screen>zonecfg:my-zone> <userinput>add dataset</userinput></screen><substeps><step><para>Specify the path to the ZFS dataset <replaceable>sales</replaceable>.</para><screen>zonecfg:my-zone> <userinput>set name=tank/sales</userinput></screen>
</step><step><para>End the dataset specification.</para><screen>zonecfg:my-zone> <userinput>end</userinput></screen>
</step>
</substeps>
</step><step id="z.conf.start-step-46"><para>(Sparse Root Zone Only) Add a shared
file system that is loopback-mounted from the global zone.</para><para>Do <emphasis>not</emphasis> perform this step to create a whole root zone, which does not
have any shared file systems. See the discussion for whole root zones in <olink targetptr="z.conf.start-9" remap="internal">Disk Space Requirements</olink>.</para><screen>zonecfg:my-zone> <userinput>add inherit-pkg-dir</userinput></screen><substeps><step id="z.conf.start-step-101"><para>Specify that <filename>/opt/sfw</filename> in
the global zone is to be mounted in read-only mode in the zone being configured.</para><screen>zonecfg:my-zone:inherit-pkg-dir> <userinput>set dir=/opt/sfw</userinput></screen><note><para>The zone's packaging database is updated to reflect the packages.
These resources cannot be modified or removed after the zone has been installed
using <command>zoneadm</command>.</para>
</note>
</step><step id="z.conf.start-step-102"><para>End the <literal>inherit-pkg-dir</literal> specification.</para><screen>zonecfg:my-zone:inherit-pkg-dir> <userinput>end</userinput></screen>
</step>
</substeps><para>This step can be performed more than once to add more than one shared
file system.</para><note><para>If you want to create a whole root zone but default shared file
systems resources have been added by using <literal>inherit-pkg-dir</literal>,
 you must remove these default <literal>inherit-pkg-dir</literal> resources
using <command>zonecfg</command> <emphasis>before</emphasis> you install the
zone:</para><itemizedlist><listitem><para><literal>zonecfg:my-zone></literal> <userinput>remove inherit-pkg-dir
dir=/lib</userinput></para>
</listitem><listitem><para><literal>zonecfg:my-zone></literal> <userinput>remove inherit-pkg-dir
dir=/platform</userinput></para>
</listitem><listitem><para><literal>zonecfg:my-zone></literal> <userinput>remove inherit-pkg-dir
dir=/sbin</userinput></para>
</listitem><listitem><para><literal>zonecfg:my-zone></literal> <userinput>remove inherit-pkg-dir
dir=/usr</userinput></para>
</listitem>
</itemizedlist>
</note>
</step><step><para>(Optional) If you are creating an exclusive-IP zone, set the <literal>ip-type</literal>.</para><screen>zonecfg:my-zone> <userinput>set ip-type=exclusive</userinput></screen><note><para>Only the physical device type will be specified in the <literal>add
net</literal> step.</para>
</note>
</step><step id="z.conf.start-step-18"><para>Add a network interface.</para><screen>zonecfg:my-zone> <userinput>add net</userinput></screen><substeps><step id="z.conf.start-step-103"><para>(shared-IP only) Set the IP address
for the network interface, <literal>192.168.0.1</literal> in this procedure.</para><screen>zonecfg:my-zone:net> <userinput>set address=192.168.0.1</userinput></screen>
</step><step id="z.conf.start-step-104"><para>Set the physical device type for the
network interface, the <literal>hme</literal> device in this procedure.</para><screen>zonecfg:my-zone:net> <userinput>set physical=hme0</userinput></screen>
</step><step><para>(Optional, shared-IP only) Set the default router for the network
interface, <literal></literal> in this procedure.</para><screen>zonecfg:my-zone:net> <userinput>set defrouter=10.0.0.1</userinput></screen>
</step><step id="z.conf.start-step-105"><para>End the specification.</para><screen>zonecfg:my-zone:net> <userinput>end</userinput></screen>
</step>
</substeps><para>This step can be performed more than once to add more than one network
interface.</para>
</step><step id="z.conf.start-step-37"><para>Add a device.</para><screen>zonecfg:my-zone> <userinput>add device</userinput></screen><substeps><step id="z.conf.start-step-106"><para>Set the device match, <literal>/dev/sound/*</literal> in this procedure.</para><screen>zonecfg:my-zone:device> <userinput>set match=/dev/sound/*</userinput></screen>
</step><step id="z.conf.start-step-107"><para>End the device specification.</para><screen>zonecfg:my-zone:device> <userinput>end</userinput></screen>
</step>
</substeps><para>This step can be performed more than once to add more than one device.</para>
</step><step id="z.conf.start-step-58"><para>Add a zone-wide resource control by
using the property name.</para><screen>zonecfg:my-zone> <userinput>set max-sem-ids=10485200</userinput></screen><para>This step can be performed more than once to add more than one resource
control.</para>
</step><step id="z.conf.start-step-53"><para>Add a comment by using the <literal>attr</literal> resource
type.</para><screen>zonecfg:my-zone> <userinput>add attr</userinput></screen><substeps><step id="z.conf.start-step-111"><para>Set the name to <literal>comment</literal>.</para><screen>zonecfg:my-zone:attr> <userinput>set name=comment</userinput></screen>
</step><step id="z.conf.start-step-112"><para>Set the type to <literal>string</literal>.</para><screen>zonecfg:my-zone:attr> <userinput>set type=string</userinput></screen>
</step><step id="z.conf.start-step-113"><para>Set the value to a comment that describes
the zone.</para><screen>zonecfg:my-zone:attr> <userinput>set value="This is my work zone."</userinput></screen>
</step><step id="z.conf.start-step-114"><para>End the <literal>attr</literal> resource
type specification.</para><screen>zonecfg:my-zone:attr> <userinput>end</userinput></screen>
</step>
</substeps>
</step><step id="z.conf.start-step-33"><para>Verify the zone configuration for the
zone.</para><screen>zonecfg:my-zone> <userinput>verify</userinput></screen>
</step><step id="z.conf.start-step-34"><para>Commit the zone configuration for the
zone.</para><screen>zonecfg:my-zone> <userinput>commit</userinput></screen>
</step><step id="z.conf.start-step-35"><para>Exit the <command>zonecfg</command> command.</para><screen>zonecfg:my-zone> <userinput>exit</userinput></screen><para>Note that even if you did not explicitly type <literal>commit</literal> at
the prompt, a <literal>commit</literal> is automatically attempted when you
type <literal>exit</literal> or an EOF occurs.</para>
</step>
</procedure><taskrelated-custom><title>Using Multiple Subcommands From the Command Line</title><tip><para>The <command>zonecfg</command> command also supports multiple subcommands,
quoted and separated by semicolons, from the same shell invocation.</para><screen>global# <userinput>zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone"</userinput></screen>
</tip>
</taskrelated-custom>
</task><sect2 id="fcpfi"><title>Where to Go From Here</title><para>See <olink targetptr="z.inst.task-2" remap="internal">Installing and Booting Zones</olink> to
install your committed zone configuration.</para>
</sect2><sect2 id="z.conf.start-96"><title>Script to Configure Multiple Zones</title><para>You can use this script to configure and boot multiple zones on
your system. The script takes the following parameters:</para><itemizedlist><listitem><para>The number of zones to be created</para>
</listitem><listitem><para>The <replaceable>zonename</replaceable> prefix</para>
</listitem><listitem><para>The directory to use as the base directory</para>
</listitem>
</itemizedlist><para>You must be the global administrator in the global zone to execute the
script. The global administrator has superuser privileges in the global zone
or assumes the Primary Administrator role.</para><screen>#!/bin/ksh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"%Z%%M%	%I%	%E% SMI"

if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
	   echo "usage: $0 &lt;#-of-zones> &lt;zonename-prefix> &lt;basedir>"
	   exit 2
fi

if [[ ! -d $3 ]]; then
  	echo "$3 is not a directory"
	   exit 1
fi

nprocs=`psrinfo | wc -l`
nzones=$1
prefix=$2
dir=$3

ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if`
if [ $ip_addrs_per_if -lt $nzones ]; then
	   echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
  	echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if &lt;num>"
 	exit 1
fi

i=1
while [ $i -le $nzones ]; do
	zoneadm -z $prefix$i list > /dev/null 2>&amp;1
	if [ $? != 0 ]; then
		echo configuring $prefix$i
		F=$dir/$prefix$i.config
		rm -f $F
		echo "create" > $F
		echo "set zonepath=$dir/$prefix$i" >> $F
		zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&amp;1 | \
		    sed 's/^/    /g' 
	else
		echo "skipping $prefix$i, already configured"
	fi
	i=`expr $i + 1`
done

i=1
while [ $i -le $nzones ]; do
	j=1
	while [ $j -le $nprocs ]; do
		if [ $i -le $nzones ]; then
			if [ `zoneadm -z $prefix$i list -p | \
			    cut -d':' -f 3` != "configured" ]; then
				echo "skipping $prefix$i, already installed"
			else
				echo installing $prefix$i
				mkdir -pm 0700 $dir/$prefix$i
				chmod 700 $dir/$prefix$i
				zoneadm -z $prefix$i install > /dev/null 2>&amp;1 &amp;
				sleep 1	# spread things out just a tad
			fi
		fi
		i=`expr $i + 1`
		j=`expr $j + 1`
	done
	wait
done

i=1
while [ $i -le $nzones ]; do
	echo setting up sysid for $prefix$i
	cfg=$dir/$prefix$i/root/etc/sysidcfg
	rm -f $cfg
	echo "network_interface=NONE {hostname=$prefix$i}" > $cfg
	echo "system_locale=C" >> $cfg
	echo "terminal=xterms" >> $cfg
	echo "security_policy=NONE" >> $cfg
	echo "name_service=NONE" >> $cfg
	echo "timezone=US/Pacific" >> $cfg
	echo "root_password=Qexr7Y/wzkSbc" >> $cfg  # 'l1a'
	i=`expr $i + 1`
done

i=1
para=`expr $nprocs \* 2`
while [ $i -le $nzones ]; do
	date
	j=1
	while [ $j -le $para ]; do
		if [ $i -le $nzones ]; then
			echo booting $prefix$i
			zoneadm -z $prefix$i boot &amp;
		fi
		j=`expr $j + 1`
		i=`expr $i + 1`
	done
	wait
done</screen>
</sect2><task id="fnzbc"><title>How to Display the Configuration of a Non-Global Zone</title><tasksummary><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step><para>Become superuser, or assume the Primary Administrator role.</para><para>To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Display the configuration of a zone.</para><screen>global# <userinput>zonecfg -z zonename info</userinput></screen>
</step>
</procedure>
</task>
</sect1><sect1 id="z.conf.start-115"><title>Using the <command>zonecfg</command> Command
to Modify a Zone Configuration</title><para>You can also use the <command>zonecfg</command> command to do the following:</para><itemizedlist><listitem><para>Modify a resource type in a zone configuration</para>
</listitem><listitem><para>Clear a property value in a zone configuration</para>
</listitem><listitem><para>Add a dedicated device to a zone</para>
</listitem>
</itemizedlist><task id="z.conf.start-63"><title>How to Modify a Resource Type in a Zone
Configuration</title><tasksummary><para>You can select a resource type and modify the specification for that
resource.</para><para>Note that the contents of software packages in the <literal>inherit-pkg-dir</literal> directory cannot be modified or removed after the zone has been
installed with <command>zoneadm</command>.</para><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step id="z.conf.start-step-65"><para>Become superuser, or assume the Primary
Administrator role.</para><para>To create the role and assign the role to
a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="z.conf.start-step-67"><para>Select the zone to be modified, <literal>my-zone</literal> in this procedure.</para><screen>global# <userinput>zonecfg -z my-zone</userinput></screen>
</step><step id="z.conf.start-step-66"><para>Select the resource type to be changed,
for example, a resource control.</para><screen>zonecfg:my-zone> <userinput>select rctl name=zone.cpu-shares</userinput></screen>
</step><step id="z.conf.start-step-68"><para>Remove the current value.</para><screen>zonecfg:my-zone:rctl> <userinput>remove value (priv=privileged,limit=20,action=none)</userinput></screen>
</step><step id="z.conf.start-step-69"><para>Add the new value.</para><screen>zonecfg:my-zone:rctl> <userinput>add value (priv=privileged,limit=10,action=none)</userinput></screen>
</step><step id="z.conf.start-step-70"><para>End the revised <literal>rctl</literal> specification.</para><screen>zonecfg:my-zone:rctl> <userinput>end</userinput></screen>
</step><step id="z.conf.start-step-93"><para>Commit the zone configuration for the
zone.</para><screen>zonecfg:my-zone> <userinput>commit</userinput></screen>
</step><step id="z.conf.start-step-71"><para>Exit the <command>zonecfg</command> command.</para><screen>zonecfg:my-zone> <userinput>exit</userinput></screen><para>Note that even if you did not explicitly type <literal>commit</literal> at
the prompt, a <literal>commit</literal> is automatically attempted when you
type <literal>exit</literal> or an EOF occurs.</para><para>Committed changes made through <command>zonecfg</command> take effect
the next time the zone is booted.</para>
</step>
</procedure>
</task><task id="fpjpi"><title>How to Clear a Property Type  in a Zone Configuration</title><tasksummary><para>Use this procedure to reset a standalone property.</para>
</tasksummary><procedure><step><para>Become superuser, or assume the Primary Administrator role.</para><para>To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Select the zone to be modified, <literal>my-zone</literal> in
this procedure.</para><screen>global# <userinput>zonecfg -z my-zone</userinput></screen>
</step><step><para>Clear the property to be changed, the existing pool association
in this procedure.</para><screen>zonecfg:my-zone> <userinput>clear pool</userinput></screen>
</step><step><para>Commit the zone configuration for the zone.</para><screen>zonecfg:my-zone> <userinput>commit</userinput></screen>
</step><step><para>Exit the <command>zonecfg</command> command.</para><screen>zonecfg:my-zone> <userinput>exit</userinput></screen><para>Note that even if you did not explicitly type <literal>commit</literal> at
the prompt, a <literal>commit</literal> is automatically attempted when you
type <literal>exit</literal> or an EOF occurs.</para><para>Committed changes made through <command>zonecfg</command> take effect
the next time the zone is booted.</para>
</step>
</procedure>
</task><task id="gbrfh"><title>How to Rename a Zone</title><tasksummary><para>This
procedure can be used to rename zones that are in either the configured state
or the installed state.</para><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step><para>Become superuser, or assume the Primary Administrator role.</para><para>To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Select the zone to be renamed, <literal>my-zone</literal> in this
procedure.</para><screen>global# <userinput>zonecfg -z my-zone</userinput></screen>
</step><step><para>Change the name of the zone, for example, to <literal>newzone</literal>.</para><screen>zonecfg:my-zone> <userinput>set zonename=newzone</userinput></screen>
</step><step><para>Commit the change.</para><screen>zonecfg:newzone> <userinput>commit</userinput></screen>
</step><step><para>Exit the <command>zonecfg</command> command.</para><screen>zonecfg:newzone> <userinput>exit</userinput></screen><para>Committed changes made through <command>zonecfg</command> take effect
the next time the zone is booted.</para>
</step>
</procedure>
</task><task id="z.conf.start-73"><title>How to Add a Dedicated Device to a Zone</title><tasksummary><para>The following specification places a scanning device in a non-global
zone configuration.</para><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step id="z.conf.start-step-80"><para>Become superuser, or assume the Primary
Administrator role.</para><para>To create the role and assign the role to
a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="z.conf.start-step-75"><para>Add a device.</para><screen>zonecfg:my-zone> <userinput>add device</userinput></screen>
</step><step id="z.conf.start-step-77"><para>Set the device match, <literal>/dev/scsi/scanner/c3t4*</literal> in this procedure.</para><screen>zonecfg:my-zone:device> <userinput>set match=/dev/scsi/scanner/c3t4*</userinput></screen>
</step><step id="z.conf.start-step-78"><para>End the device specification.</para><screen>zonecfg:my-zone:device> <userinput>end</userinput></screen>
</step><step id="z.conf.start-step-79"><para>Exit the <command>zonecfg</command> command.</para><screen>zonecfg:my-zone> <userinput>exit</userinput></screen>
</step>
</procedure>
</task><task id="gejpu"><title>How to Set <literal>zone.cpu-shares</literal> in the
Global Zone</title><tasksummary><para>This procedure is used to persistently set shares
in the global zone.</para><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step><para>Become superuser, or assume the Primary Administrator role.</para><para>To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Use the <command>zonecfg</command> command .</para><screen># <userinput>zonecfg -z global</userinput></screen>
</step><step><para>Set five shares for the global zone.</para><screen>zonecfg:<userinput>global> set cpu-shares=5</userinput></screen>
</step><step><para>Exit <command>zonecfg</command>.</para><screen>zonecfg:global> <userinput>exit</userinput></screen>
</step>
</procedure>
</task>
</sect1><sect1 id="z.conf.start-81"><title>Using the <command>zonecfg</command> Command
to Revert or Remove a Zone Configuration</title><para>Use the <command>zonecfg</command> command described in <citerefentry><refentrytitle>zonecfg</refentrytitle><manvolnum>1M</manvolnum></citerefentry> to
revert a zone's configuration or to delete a zone configuration.</para><task id="z.conf.start-30"><title>How to Revert a Zone Configuration</title><tasksummary><para>While configuring a zone with the <command>zonecfg</command> utility,
use the <literal>revert</literal> subcommand to undo a resource setting made
to the zone configuration.</para><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step id="z.conf.start-step-26"><para>Become superuser, or assume the Primary
Administrator role.</para><para>To create the role and assign the role to
a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="z.conf.start-step-88"><para>While configuring a zone called <literal>tmp-zone</literal>, type <command>info</command> to view your configuration:</para><screen>zonecfg:tmp-zone> <userinput>info</userinput></screen><para>The <literal>net</literal> resource segment of the configuration displays
as follows:</para><screen>.
.
.
fs:
        dir: /tmp
        special: swap
        type: tmpfs
net:
        address: 192.168.0.1
        physical: eri0
device
        match: /dev/pts/*
.
.
.</screen>
</step><step id="z.conf.start-step-27"><para>Remove the net address:</para><screen>zonecfg:tmp-zone> <userinput>remove net address=192.168.0.1</userinput></screen>
</step><step id="z.conf.start-step-91"><para>Verify that the <literal>net</literal> entry
has been removed.</para><screen>zonecfg:tmp-zone> <userinput>info</userinput></screen><screen>.
.
.
fs:
        dir: /tmp
        special: swap
        type: tmpfs
device
        match: /dev/pts/*
.
.
.</screen>
</step><step id="z.conf.start-step-92"><para>Type <literal>revert</literal>.</para><screen>zonecfg:tmp-zone> <userinput>revert</userinput></screen>
</step><step id="z.conf.start-step-89"><para>Answer yes to the following question:</para><screen>Are you sure you want to revert (y/[n])? <userinput>y</userinput></screen>
</step><step id="z.conf.start-step-90"><para>Verify that the net address is once
again present:</para><screen>zonecfg:tmp-zone> <userinput>info</userinput></screen><screen>.
.
.
fs:
        dir: /tmp
        special: swap
        type: tmpfs
net:
        address: 192.168.0.1
        physical: eri0
device
        match: /dev/pts/*
.
.
.</screen>
</step>
</procedure>
</task><task id="z.conf.start-82"><title>How to Delete a Zone Configuration</title><tasksummary><para>Use <command>zonecfg</command> with the <literal>delete</literal> subcommand
to delete a zone configuration from the system.</para><para>You must be the global administrator in the global zone to perform this
procedure.</para>
</tasksummary><procedure><step><para>Become superuser, or assume the Primary Administrator role.</para><para>To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-95" remap="external"><citetitle remap="section">Using the Solaris Management Tools With RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="z.conf.start-step-84"><para>Delete the zone configuration for the
zone <literal>a-zone</literal> by using one of the following two methods:</para><itemizedlist><listitem><para>Use the <option>F</option> option to force the action:</para><screen>global# <userinput>zonecfg -z a-zone delete -F</userinput></screen>
</listitem><listitem><para>Delete the zone interactively by answering yes to the system
prompt:</para><screen>global# <userinput>zonecfg -z a-zone delete</userinput>
Are you sure you want to delete zone a-zone (y/[n])? <userinput>y</userinput></screen>
</listitem>
</itemizedlist>
</step>
</procedure>
</task>
</sect1>
</chapter>