14371 Need to update the existing DC documentation
authorGlenn Lagasse <glenn.lagasse@sun.com>
Tue, 09 Feb 2010 09:38:14 -0800
changeset 723 4c9eb65ee7b6
parent 721 ce5ad86e8aed
child 725 d1b3f9dad401
14371 Need to update the existing DC documentation 14304 Need to update the existing DC man page and add the dc_manifest man page
usr/src/Makefile.master
usr/src/Targetdirs
usr/src/cmd/distro_const/docs/Makefile
usr/src/cmd/distro_const/docs/addimage.html
usr/src/cmd/distro_const/docs/addl.html
usr/src/cmd/distro_const/docs/addpkg.html
usr/src/cmd/distro_const/docs/appendix.html
usr/src/cmd/distro_const/docs/bootimage.html
usr/src/cmd/distro_const/docs/buildvm.html
usr/src/cmd/distro_const/docs/buildvmc.html
usr/src/cmd/distro_const/docs/customvmc.html
usr/src/cmd/distro_const/docs/diffs.html
usr/src/cmd/distro_const/docs/distconstguide.html
usr/src/cmd/distro_const/docs/distro_const.html
usr/src/cmd/distro_const/docs/docinfo.html
usr/src/cmd/distro_const/docs/how.html
usr/src/cmd/distro_const/docs/index.html
usr/src/cmd/distro_const/docs/manifest.html
usr/src/cmd/distro_const/docs/overview.html
usr/src/cmd/distro_const/docs/scripts.html
usr/src/cmd/distro_const/docs/sysreq.html
usr/src/cmd/distro_const/docs/testpkg.html
usr/src/cmd/distro_const/docs/trouble.html
usr/src/cmd/distro_const/docs/troublevm.html
usr/src/cmd/distro_const/docs/using.html
usr/src/cmd/distro_const/docs/vm.html
usr/src/cmd/distro_const/docs/vmcblog.html
usr/src/cmd/distro_const/docs/vmsysreq.html
usr/src/cmd/distro_const/docs/whatis.html
usr/src/man/Makefile
usr/src/man/dc_manifest.4.txt
usr/src/man/distro_const.1m.txt
usr/src/pkgdefs/SUNWdistro-const/prototype_com
--- a/usr/src/Makefile.master	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/Makefile.master	Tue Feb 09 09:38:14 2010 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 
@@ -90,6 +90,7 @@
 ROOTINC=		$(ROOT)/usr/include
 ROOTINCADMIN=		$(ROOTINC)/admin
 ROOTMAN1M=		$(ROOTMAN)/man1m
+ROOTMAN4=		$(ROOTMAN)/man4
 ROOTMAN=		$(ROOT)/usr/share/man
 ROOTOPTINSTALLTESTBIN=	$(ROOT)/opt/install-test/bin
 ROOTPYTHON=		$(ROOTUSRLIB)/python2.6
--- a/usr/src/Targetdirs	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/Targetdirs	Tue Feb 09 09:38:14 2010 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 #
@@ -76,6 +76,7 @@
 	/usr/share/lib/xml/rng/auto_install \
 	/usr/share/man \
 	/usr/share/man/man1m \
+	/usr/share/man/man4 \
 	/usr/share/auto_install \
 	/usr/snadm \
 	/usr/snadm/bin 
--- a/usr/src/cmd/distro_const/docs/Makefile	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/Makefile	Tue Feb 09 09:38:14 2010 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 
@@ -31,10 +31,17 @@
 clobber:=	TARGET=	clobber
 install:=	TARGET=	install
 
-HTML_FILES=	addl.html \
+HTML_FILES=	addimage.html \
+		addl.html \
+		addpkg.html \
 		appendix.html \
+		bootimage.html \
+		buildvm.html \
+		buildvmc.html \
 		command.html \
+		customvmc.html \
 		diffs.html \
+		distconstguide.html \
 		distro_const.html \
 		distroconst.html \
 		docinfo.html \
@@ -47,8 +54,15 @@
 		scripts.html \
 		setup.html \
 		sysreq.html \
+		testpkg.html \
 		trouble.html \
-		using.html
+		troublevm.html \
+		using.html \
+		vm.html \
+		vmcblog.html \
+		vmsysreq.html \
+		whatis.html
+
 
 CSS_FILES=	css/advanced.css \
 		css/elements.css \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/addimage.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Sample Script for Adding Packages to an Image - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="appendix.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="testpkg.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Sample Script for Adding Packages to an Image</a></p>
+</div>
+<p class="toc level2"><a href="testpkg.html">Sample Script for Testing Alternate Packages</a></p>
+<p class="toc level2"><a href="addpkg.html">Sample Script for Adding an SVR4 Package to an Image</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="addimage"></a><h3>Sample Script for Adding Packages to an Image</h3>
+<p>When putting together an image, you can experiment with how an image works
+when packages are added or removed from a working set. This type
+of experimentation is supported by the distribution constructor. Additional packages can be added to
+the existing list in the <tt>package</tt> section of a manifest file. And, packages
+that you want to remove can be added to the <tt>post_install_remove_package</tt> section. After
+you have made your modifications to the manifest file to add or remove
+packages, you need to restart the build process from the beginning, and download
+all the packages again. That can take time. You can make these modifications
+more rapidly by using finalizer scripts.</p><p>The following custom script adds an IPS package to the image from
+an alternate repository specified in the manifest file. The package is added to the
+package image area. The name of the package to add is included
+in the script. This example also demonstrates how to use the <tt>ManifestRead</tt> program
+to obtain values from the manifest file.</p><h6>Example&nbsp;A-1 Sample Script &mdash; Adding Packages</h6><pre>#!/bin/ksh
+#
+#
+# Name:
+# add_my_pkg
+#
+# Description:
+# This script will add the package SUNWcdrw from
+# the alternate repository specified in the manifest
+# at pkg_repo_addl_authority.
+# 
+# Args:
+#
+#   5 arguments are passed in by default from the DC.
+#
+#   MFEST_SOCKET: Socket needed to get manifest data via ManifestRead object
+#   PKG_IMG_PATH: Package image area
+#   TMP_DIR: Temporary directory 
+#   BR_BUILD: Area where boot archive is put together (not used in this example)
+#   MEDIA_DIR: Area where the media is put (not used)
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+if [ "$#" != "5" ] ; then
+        print -u2 "Usage: $0: Requires 5 args:"
+        print -u2 "    Reader socket, pkg_image area, tmp dir,"
+
+        print -u2 "    boot archive build area, media area"
+        exit 1
+fi
+
+MFEST_SOCKET=$1
+
+PKG_IMG_PATH=$2
+if [ ! -d $PKG_IMG_PATH ] ; then
+        print -u2 "$0: Image package area $PKG_IMG_PATH is not valid"
+        exit 1
+fi
+
+PKGCMD="/bin/pkg"
+
+#Install this package 
+TEST_PKGS="SUNWcdrw"
+
+#
+# You would have specified the additional repository like this in the manifest
+#
+#                 
+#   &lt;pkg_repo_addl_authority>
+#        &lt;main url="http://localhost:10000" authname="localtest"/>
+#   &lt;/pkg_repo_addl_authority>
+
+# Get the alternate repository URL from the manifest
+add_url=/usr/bin/ManifestRead ${MFEST_SOCKET} \
+"img_params/pkg_repo_addl_authority/main/url"
+
+# Get the alternate repository authority from the manifest
+add_auth=/usr/bin/ManifestRead ${MFEST_SOCKET} \
+"img_params/pkg_repo_addl_authority/main/authname"
+
+added_authority=0
+
+#
+# Check if authority is already set in the package image area
+# if not, add it in
+#
+${PKGCMD} -R $PKG_IMG_PATH authority $add_auth > /dev/null 2>&amp; 1
+if [ $? != 0 ] ; then
+        ${PKGCMD} -R $PKG_IMG_PATH  set-authority -O ${add_url} ${add_auth}
+        added_authority=1
+fi
+
+if [ $? != "0" ] ; then
+        print -u2 "$0: Unable to set additional authority"
+        exit 1
+fi
+
+for t in ${TEST_PKGS} ; do
+        pkg_name="pkg://${add_auth}/${t}"
+        ${PKGCMD} -R $PKG_IMG_PATH install ${pkg_name}
+        if [ $? != "0" ] ; then
+                print -u2 "$0: Unable to install ${pkg_name}"
+
+                exit 1
+        fi
+done
+
+# if we have added the additional authority, unset it so it doesn't pollute what's
+# originally there
+if [ $added_authority == 1 ] ; then
+         ${PKGCMD} -R $PKG_IMG_PATH  unset-authority ${add_auth}
+fi
+
+exit 0</pre>
+
+<a name="usingscript"></a><h4>Using Custom Scripts</h4>
+<p>Once you have prepared your custom script, you must add the script
+reference to the manifest. Then, you're ready to use the script when building
+the image.</p>
+
+<a name="addscript"></a><h5>Adding Script to Manifest</h5>
+<p>You must update the manifest to point to any custom scripts that
+you want to use. For example, if you have created a script, <tt>/export/home/user1/test_my_pkg</tt>,
+to test your custom package, you would reference the script as follows in
+the finalizer section of the manifest file. The checkpoint, <b>my_test</b>, indicates where
+the build will restart.</p><pre>&lt;finalizer>
+      &lt;script name="/export/home/user1/test_my_pkg">
+           &lt;checkpoint name="my_test" message="Running my test package"/>
+      &lt;/script>
+      &lt;script name="/usr/share/distro_const/pre_boot_archive_pkg_image_mod">
+           &lt;checkpoint name="im-mod" message="Image area modifications"/>
+      &lt;/script>
+      ........
+&lt;/finalizer></pre><p>The custom script above is designed to add or remove packages from
+the package image area, so you must reference this script as the first
+finalizer script in the <tt>&lt;finalizer></tt> section of the manifest file. Include in this reference
+a checkpoint name that indicates the point in the image-building process where you
+want to restart the build to test your added package.</p>
+<hr><p><b>Note - </b>This particular sample script above assumes that an alternate repository was specified in
+the manifest, by using the <tt>pkg_repo_addl_authority</tt> field.  The default manifest is
+provided with the <tt>pkg_repo_addl_authority</tt> field commented out, and, thus, unused. So, remove
+the comment tag from this field, and update the field values to provide
+a valid URL and <tt>authname</tt>.</p><p>For example, if the additional authority is available on the <tt>localhost</tt> at port
+10000, with the name, <tt>localtest</tt>, you would modify the <tt>pkg_repo_addl_authority</tt> field in
+the manifest as follows:</p><pre>&lt;pkg_repo_addl_authority>
+&lt;main
+url="http://localhost:10000"
+authname="localtest"/>
+&lt;mirror url="" />
+&lt;/pkg_repo_addl_authority> </pre>
+<hr>
+
+
+<a name="usescript"></a><h5>Running the Script</h5>
+<p>After you finish the changes to the manifest file to reference your new
+script, you can start building your image from the beginning once. Subsequently, if
+you make any changes to your package, you do not need to
+restart from the beginning. You can generate an image with your modified package
+by starting at the checkpoint that runs your script.</p>
+<hr><p><b>Note - </b>This option assumes that the build area is in a ZFS file
+system.  Without ZFS, you cannot use checkpointing.</p>
+<hr>
+<p>The following is the sequence of commands a user would execute to
+repeatedly test their modifications to packages.</p>
+<ol><li><p>Run the build from the beginning after modifying the manifest. Perform this step just once.</p><pre><tt>distro_const build <i>my_updated_manifest.xml</i></tt></pre></li>
+<li><p>Check steps that are resumable.</p><pre><tt>distro_const build <tt>-l</tt> <i>my_updated_manifest.xml</i></tt></pre></li>
+<li><p>Restart from the step of your package modification. You can restart from this step as many times as you need while you are debugging your modified contents.</p><pre><tt>distro_const build <tt>-r</tt> <i>my_test my_updated_manifest.xml</i></tt></pre></li></ol>
+<p>For further information about using the <tt>distro_const</tt> command with checkpointing options, as
+demonstrated in this example, see <a href="distro_const.html#checkpoint">Building an Image in Stages</a>.</p>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="appendix.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="testpkg.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- a/usr/src/cmd/distro_const/docs/addl.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/addl.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Additional Information - OpenSolaris Distribution Constructor Guide</title>
+<title>Additional Information - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -35,7 +38,7 @@
                  <a href="trouble.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="appendix.html">Next</a>
+                 <a href="vm.html">Next</a>
              </td>
            </tr>
          </table>
@@ -45,17 +48,17 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level2"><a href="manifest.html">Editing the Manifest Files</a></p>
-<p class="toc level2"><a href="scripts.html">Using the Finalizer Scripts</a></p>
-<p class="toc level2"><a href="distro_const.html">Creating an Image</a></p>
-<p class="toc level2"><a href="command.html"><tt>distro_const</tt> Command Reference</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level2"><a href="sysreq.html">System Requirements</a></p>
+<p class="toc level2"><a href="manifest.html">Customize Your Image by Editing the Manifests</a></p>
+<p class="toc level2"><a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a></p>
+<p class="toc level2"><a href="distro_const.html">Building an Image</a></p>
 <p class="toc level2"><a href="trouble.html">Troubleshooting</a></p>
-<div class="onpage">
+<div id="scrolltoc" class="onpage">
 <p class="toc level2"><a href="">Additional Information</a></p>
 </div>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
@@ -63,8 +66,8 @@
              
 
 <a name="addl"></a><h3>Additional Information</h3>
-<p>Additional information and resources about using the distribution constructor are available at the
-following sites.</p>
+<p>Additional information and resources about building preconfigured images are available at the following
+sites.</p>
 <ul><li><p>For further troubleshooting help, see the Release Notes at <a href="http://www.opensolaris.com/use/">http://www.opensolaris.com/use/</a>.</p></li>
 <li><p>Send questions or comments about the distribution constructor application to <tt>[email protected]</tt>. Submit bugs or enhancement requests to <a href="http://defect.opensolaris.org">http://defect.opensolaris.org</a>.</p></li></ul>
 
@@ -81,7 +84,7 @@
                  <a href="trouble.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="appendix.html">Next</a>
+                 <a href="vm.html">Next</a>
              </td>
            </tr>
          </table>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/addpkg.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Sample Script for Adding an SVR4 Package to an Image - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="testpkg.html">Previous</a>
+             </td>
+             <td align="right">
+                 
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+<p class="toc level2"><a href="addimage.html">Sample Script for Adding Packages to an Image</a></p>
+<p class="toc level2"><a href="testpkg.html">Sample Script for Testing Alternate Packages</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Sample Script for Adding an SVR4 Package to an Image</a></p>
+</div>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="addpkg"></a><h3>Sample Script for Adding an SVR4 Package to an Image</h3>
+<p>If you have a package that is in SVR4 format, you can
+test that package in an image before you convert it into an IPS
+package. You can use a finalizer script to add the content of an
+SVR4 package to the image. See the following custom script and note the
+comments in the script that explain how the script accomplishes this task.</p>
+<hr><p><b>Note - </b>You will have to modify this script to include the path to
+your SVR4 package. See comments in script.</p>
+<hr>
+<h6>Example&nbsp;A-3 Sample Script &mdash; Adding SVR4 Packages</h6><pre>#!/bin/ksh
+#
+#
+# Name:
+# add_my_svr4_pkg
+#
+# Description:
+# This script will build an image using an SVR4 package
+# located at a user specified file path.
+#
+# Note:
+# The user must modify this script and provide a valid
+# path to an SVR4 package in the PKG_PATH variable.
+#
+# #
+# Args:
+#
+#   5 arguments are passed in by default from the DC.
+#
+#   MFEST_SOCKET: Socket needed to get manifest data via ManifestRead object (not used)
+#   PKG_IMG_PATH: Package image area
+#   TMP_DIR: Temporary directory
+#   BR_BUILD: Area where boot archive is put together (not used in this example)
+#   MEDIA_DIR: Area where the media is put (not used)
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+if [ "$#" != "5" ] ; then
+        print -u2 "Usage: $0: Requires 5 args:"
+
+        print -u2 "    Reader socket, pkg_image area, tmp dir,"
+        print -u2 "    boot archive build area, media area"
+        exit 1
+fi
+
+PKG_IMG_PATH=$2
+if [ ! -d $PKG_IMG_PATH ] ; then
+        print -u2 "$0: Image package area $PKG_IMG_PATH is not valid"
+        exit 1
+fi
+
+TMP_DIR=$3
+
+#
+# Install an SVR4 packages into the package image area
+#
+
+#create an admin file for non-interactive pkgadd's
+
+ADMIN_FILE=${TMP_DIR}/admin.$$
+cat &lt;&lt; \ADMIN_EOF > $ADMIN_FILE
+mail=
+instance=unique
+partial=nocheck
+runlevel=nocheck
+idepend=nocheck
+rdepend=nocheck
+space=nocheck
+setuid=nocheck
+conflict=nocheck
+action=nocheck
+networktimeout=60
+networkretries=3
+authentication=quit
+keystore=/var/sadm/security
+proxy=
+basedir=default
+ADMIN_EOF
+
+#
+# Path to your new packages
+#
+PKG_PATH=&lt;User-specified path for SVR4 package>
+
+#
+# Test package name 
+#
+SVR4_TEST_PKG=SUNWmy-test
+
+/usr/sbin/pkgadd -n -a ${ADMIN_FILE} -d $PKG_PATH -R ${PKG_IMG_PATH} ${SVR4_TEST_PKG}
+
+if [ $? != "0" ] ; then
+        echo "installing package failed"
+
+        exit 1
+fi
+
+/bin/rm ${ADMIN_FILE}
+
+exit 0</pre>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="testpkg.html">Previous</a>
+             </td>
+             <td align="right">
+                 
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- a/usr/src/cmd/distro_const/docs/appendix.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/appendix.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Appendix: Sample Manifest File - OpenSolaris Distribution Constructor Guide</title>
+<title>Custom Finalizer Scripts &mdash; Examples - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -32,10 +35,10 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="addl.html">Previous</a>
+                 <a href="vmcblog.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="manifestfile.html">Next</a>
+                 <a href="addimage.html">Next</a>
              </td>
            </tr>
          </table>
@@ -45,17 +48,27 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<div class="onpage">
-<p class="toc level1 tocsp"><a href="">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level1 tocsp"><a href="">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </div>
-<p class="toc level2"><a href="manifestfile.html">Slim CD Manifest File</a></p>
+<p class="toc level2"><a href="addimage.html">Sample Script for Adding Packages to an Image</a></p>
+<p class="toc level2"><a href="testpkg.html">Sample Script for Testing Alternate Packages</a></p>
+<p class="toc level2"><a href="addpkg.html">Sample Script for Adding an SVR4 Package to an Image</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
-             <a name="appendix"></a>Chapter&nbsp;4<h3>Appendix: Sample Manifest File</h3><p>The x86 Slim CD manifest file is shown below:</p>
+             <a name="appendix"></a>Appendix&nbsp;A<h3>Custom Finalizer Scripts &mdash; Examples</h3><p>The following are custom finalizer scripts that enable you to perform particular tasks.</p>
+<ul><li><p><a href="addimage.html">Sample Script for Adding Packages to an Image</a></p></li>
+<li><p><a href="testpkg.html">Sample Script for Testing Alternate Packages</a></p></li>
+<li><p><a href="addpkg.html">Sample Script for Adding an SVR4 Package to an Image</a></p></li></ul>
+
+<hr><p><b>Note - </b>You will have to modify the manifest to point to any new
+custom scripts. See instructions in <a href="addimage.html#usingscript">Using Custom Scripts</a>.</p>
+<hr>
+
          </div>
       </td>
    </tr>
@@ -66,10 +79,10 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="addl.html">Previous</a>
+                 <a href="vmcblog.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="manifestfile.html">Next</a>
+                 <a href="addimage.html">Next</a>
              </td>
            </tr>
          </table>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/bootimage.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Get an AI Boot Image - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="buildvm.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="customvmc.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Get an AI Boot Image</a></p>
+</div>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="bootimage"></a><h3>Get an AI Boot Image</h3>
+<p>A complete virtual machine will be created using the settings specified in the
+virtual machine manifest, <tt>vmc_image.xml</tt>. The virtual machine manifest is an XML file located
+at <tt>/usr/share/distro_const/vmc/vmc_image.xml</tt>. The <tt>vmc_image.xml</tt> file points to a default set of finalizer scripts
+that are used to implement the final media-specific settings for the virtual machine.
+In addition, an automated installer (AI) boot image is used to create the
+virtual machine.</p><p>You must provide the AI boot image. Then, you must modify the
+virtual machine manifest to point to this image.</p><p>Download an AI image and reference that image in the virtual machine manifest
+as follows.</p>
+<hr><p><b>Note - </b>You can create a custom AI image by using the distribution constructor. However,
+it's not necessary to create a custom image. </p>
+<hr>
+
+
+<a name="provideimage"></a><h4>Providing a Boot Image</h4><ol>
+<li><b>Download an x86 AI image from <a href="http://www.opensolaris.com/get/">http://www.opensolaris.com/get/</a>.</b>
+<hr><p><b>Note - </b>The AI image is only about 200&ndash;250 MB.</p>
+<hr>
+<p>Alternately, download an AI image from <a href="http://opensolaris.org/os/downloads/">http://opensolaris.org/os/downloads/</a>, selecting an image either for the
+current release or for a particular OpenSolaris developer build.</p>
+<hr><p><b>Note - </b>Make sure that the build number or release of the AI image
+is the same build number or release for the OpenSolaris operating system that you
+plan to install in your virtual machine.</p>
+<hr>
+</li>
+<li><b>Store the AI image on your local file system.</b><p>The AI image is an .iso file, a collection of software provided in
+one file. When you download the image, you store it as an .iso
+file on your system.</p><p>Note the name and location of this file. You will have to
+provide that information in the manifest.</p></li>
+<li><b>Modify <tt>vmc_image.xml</tt> to point to this image as follows.</b><p>Find the following XML field in the manifest:</p><pre>&lt;script name="/usr/share/distro_const/vmc/prepare_ai_image">
+    &lt;checkpoint
+        name="prepare-image"
+        message="prepare bootable ai image"/>
+    &lt;argslist>
+        "/export/home/name_of_bootable_ai_image"
+    &lt;/argslist>
+&lt;/script></pre><p>This field above references the <tt>prepare_ai_image</tt> finalizer script. This script finds and prepares
+the specified boot image for installation into the virtual machine.</p><p>The following line from this script provides a default path to an
+AI image, using a variable, <tt>name_of_bootable_ai_image</tt>, in place of an actual filename.</p><pre>"/export/home/name_of_bootable_ai_image"</pre><p>In this line, change the variable, <tt>name_of_bootable_ai_image</tt>, to the name of the
+AI image that you have previously downloaded. And, modify the full path to
+point to the file location where your image is stored. For example,</p><pre>"/export/home/myimage.iso"</pre>
+<hr><p><b>Note - </b>The file location is provided within quotes. Do not remove the quotes. The
+quotes are used to delineate each argument in the field.</p>
+<hr>
+</li></ol>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="buildvm.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="customvmc.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/buildvm.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>How to Build a Virtual Machine - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="vmsysreq.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="bootimage.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">How to Build a Virtual Machine</a></p>
+</div>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="buildvm"></a><h3>How to Build a Virtual Machine</h3>
+<p>The process used to build a virtual machine is straightforward:</p>
+<ol><li><p><a href="bootimage.html">Get an AI Boot Image</a></p></li>
+<li><p><a href="customvmc.html">Optional: Customize Build Specifications</a></p></li>
+<li><p><a href="buildvmc.html">Build the Virtual Machine</a></p></li></ol>
+
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="vmsysreq.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="bootimage.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/buildvmc.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Build the Virtual Machine - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="customvmc.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="troublevm.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Build the Virtual Machine</a></p>
+</div>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="buildvmc"></a><h3>Build the Virtual Machine</h3>
+<p>After you have customized the virtual machine manifest, you are ready to build
+a virtual machine. Run the <tt>distro_const</tt> utility to build the virtual machine, using
+optional checkpoints to pause, test, and resume the build as needed. For instructions
+about using the <tt>distro_const</tt> utility, see <a href="distro_const.html">Building an Image</a>.</p>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="customvmc.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="troublevm.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/customvmc.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Optional: Customize Build Specifications - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="bootimage.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="buildvmc.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Optional: Customize Build Specifications</a></p>
+</div>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="customvmc"></a><h3>Optional: Customize Build Specifications</h3>
+<p>You may choose to customize some of the other specifications in the virtual
+machine manifest file. You can make these changes by editing the XML fields
+in <tt>vmc_image.xml</tt> before you build your virtual machine.</p><p>The following table lists the fields in <tt>vmc_image.xml</tt>, provides the default values
+for each field, and describes which fields can be edited.</p>
+<hr><p><b>Note - </b>Some of the fields in this table are also used in the
+other distribution constructor manifests. Many of these fields, however, are unique to the
+virtual machine manifest.</p>
+<hr>
+<a name="fields"></a><h6>Table&nbsp;3-2 Virtual Machine Manifest Fields</h6><table><col width="56%"><col width="43%"><tr><th align="left" valign="top" scope="column"><p>Manifest Field</p></th>
+<th align="left" valign="top" scope="column"><p>Description</p></th>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;build_area>rpool/dc&lt;/build_area></pre></td>
+<td align="left" valign="top" scope="row"><p>The build area field specifies the area where the virtual
+machine will be created. You can use the default area if it is
+suitable for your system, or you can specify a different build area on
+the host system.</p>
+<hr><p><b>Note - </b>To use checkpointing to pause and resume during the build,
+you must specify a ZFS dataset, or a mount point that correlates to
+a ZFS dataset, as your build area. If the ZFS dataset does not
+exist, it is created during the build. The ZFS pool that you specify,
+however, must already exist.</p>
+<hr>
+</td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;distro_constr_flags>
+        &lt;stop_on_error>true&lt;/stop_on_error>
+        &lt;checkpoint_enable>
+            true
+        &lt;/checkpoint_enable></pre></td>
+<td align="left" valign="top" scope="row"><p>Within the <tt>&lt;distro_constr_flags></tt> tag, the value of true for <tt>&lt;stop_on_error></tt>
+means that, if an error occurs in the build, the distribution constructor stops
+running.</p><p>The value of true for <tt>&lt;checkpoint_enable></tt> gives you the ability to pause at
+any specified steps, called checkpoints, when building the virtual machine, and to restart
+the build at any specified checkpoints. For instructions, see <a href="distro_const.html#checkpointtask">Building an Image in Stages by Using Checkpoint Options</a>.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;finalizer></pre></td>
+<td align="left" valign="top" scope="row"><p>The <tt>finalizer</tt> section contains
+a list of references to the finalizer scripts that are run when the
+virtual machine is built. These scripts are used to customize the image and
+are run in the order listed in this manifest. The scripts have arguments
+that can be edited as described below.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;script name="/usr/share/distro_const/vmc/prepare_ai_image">
+    &lt;checkpoint
+        name="prepare-image"
+        message="prepare bootable ai image"/>
+    &lt;argslist>
+        "/export/home/name_of_bootable_ai_image"
+    &lt;/argslist>
+&lt;/script></pre></td>
+<td align="left" valign="top" scope="row"><p>The <tt>prepare_ai_image</tt> script finds and prepares the specified
+boot image for installation into the virtual machine</p><p>Each script field includes a
+required <tt>checkpoint</tt> field with a name for the checkpoint. The checkpoint marks the
+stage during the virtual machine build when this script is run. For this
+script, the checkpoint is named &ldquo;prepare-image.&rdquo; The checkpoint field also contains a checkpoint message.
+When the <tt>prepare_ai_image</tt> script runs, the default message, &ldquo;prepare bootable ai image,&rdquo; will
+display.</p><p>Each script also includes a field, <tt>argslist</tt>, that provides any arguments that are
+required for that particular script to run. You can edit these arguments as
+described in this table. For example, the <tt>prepare_ai_image</tt> script has an argument
+that provides the location of the boot image that will be used for
+the virtual machine build.  You have already edited the default location, <tt>/export/home/name_of_bootable_ai_image</tt>,
+to point to the boot image that you will be using.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;script name="/usr/share/distro_const/vmc/create_vm">
+    &lt;checkpoint
+        name="create-vm"
+        message="create and configure virtual machine"/>
+    &lt;argslist>
+        "16000"
+        "1536"
+        "opensolaris"
+    &lt;/argslist>
+&lt;/script></pre></td>
+<td align="left" valign="top" scope="row"><p>The <tt>create_vm</tt>
+script builds and configures the virtual machine. The <tt>argslist</tt> field provides 3 arguments
+for the script. You can edit these arguments as follows.</p>
+<ul><li><p>Virtual machine disk size &ndash; The default is 16000 MB. Values between 12000 and 99.999.999 are valid.</p></li>
+<li><p>Virtual machine ram size &ndash; The default is 1536 MB. Values between 1000 and 16,384 MB are valid.</p></li>
+<li><p>Virtual machine type &ndash; The default is <tt>opensolaris</tt> for a 32&ndash;bit virtual machine. Or, use <tt>opensolaris_64</tt> for a 64&ndash;bit virtual machine.</p></li></ul>
+
+<hr><p><b>Note - </b>The <tt>create_vm</tt> script and
+its arguments affect the virtual machine specifically while it is being created. See
+the <tt>post_install_vm_config</tt> script below for arguments that affect the postinstallation virtual machine.</p>
+<hr>
+</td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;script name="/usr/share/distro_const/vmc/install_vm">
+     &lt;checkpoint
+        name="install-vm"
+        message="Boot and Install virtual machine"/>
+&lt;/script></pre></td>
+<td align="left" valign="top" scope="row"><p>The <tt>install_vm</tt>
+script boots and installs the virtual machine in the build area.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;script name="/usr/share/distro_const/vmc/
+post_install_vm_config">
+    &lt;checkpoint
+        name="post-config"
+        message="Post installation virtual machine 
+configuration"/>
+    &lt;argslist>
+        "1024"
+        "1"
+        "on"
+    &lt;/argslist>
+&lt;/script></pre></td>
+<td align="left" valign="top" scope="row"><p>The <tt>post_install_vm_config</tt> script
+performs postinstallation configuration on the virtual machine. The <tt>argslist</tt> field provides 3 arguments for
+the script. You can edit these arguments as follows.</p>
+<ul><li><p>Virtual machine ram size &ndash; The default is 1024 MB. Values between 1000 and 16,394 are valid.</p></li>
+<li><p>Virtual machine number of CPUs &ndash; The default is 1 CPU. Values between 1 and 32 are valid.</p></li>
+<li><p>Virtual machine VT-x/AMD&mdash;V support &ndash; Valid options are on or off.</p></li></ul>
+</td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;script name="/usr/share/distro_const/vmc/export_esx">
+    &lt;checkpoint
+        name="export-esx"
+        message="Export virtual machine for VMWare ESX"/>
+    &lt;argslist>
+        "esx"
+    &lt;/argslist>
+&lt;/script></pre></td>
+<td align="left" valign="top" scope="row"><p>The <tt>export_esx</tt> script converts
+the virtual machine into a set of ESX files that are ready for
+import. If you want your virtual machine files to be set up in
+ESX format, use this script. Otherwise, comment out this script.</p><p>For example, if you
+want to comment out the following field:</p><pre>&lt;sample_script>example&lt;/sample_script></pre><p>Enclose it as follows:</p><pre>&lt;!--
+&lt;sample_script>example&lt;/sample_script>
+--></pre><p>The ESX virtual
+machine will consist of a set of files in the <tt>build_area/media/esx</tt> folder.</p>
+<hr><p><b>Note - </b>If
+you use both the <tt>export_esx</tt> and <tt>export_ovf</tt> scripts, identical virtual machines for
+each format are created.</p>
+<hr>
+</td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><pre>&lt;script name="/usr/share/distro_const/vmc/export_ovf">
+    &lt;checkpoint
+        name="export-ovf"
+        message="Export virtual machine in OVF format"/>
+    &lt;argslist>
+        "ovf"
+    &lt;/argslist>
+&lt;/script></pre></td>
+<td align="left" valign="top" scope="row"><p>The <tt>export_ovf</tt> script converts the virtual machine into a set of
+OVF files that are ready for import.  If you want your
+virtual machine files to be set up in OVF format, use this script.
+Otherwise, comment out this script, so it will not be run.</p><p>The OVF virtual
+machine will consist of a set of files in the <tt>build_area/media/ovf</tt> folder.</p></td>
+</tr>
+</table>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="bootimage.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="buildvmc.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- a/usr/src/cmd/distro_const/docs/diffs.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/diffs.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>SPARC and x86 Differences - OpenSolaris Distribution Constructor Guide</title>
+<title>SPARC and x86 Differences - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -35,7 +38,7 @@
                  <a href="how.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="setup.html">Next</a>
+                 <a href="using.html">Next</a>
              </td>
            </tr>
          </table>
@@ -46,13 +49,13 @@
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
 <p class="toc level2"><a href="overview.html">What is the Distribution Constructor?</a></p>
-<p class="toc level2"><a href="how.html">How does the Distribution Constructor Work?</a></p>
-<div class="onpage">
+<p class="toc level2"><a href="how.html">Components in the Distribution Constructor</a></p>
+<div id="scrolltoc" class="onpage">
 <p class="toc level2"><a href="">SPARC and x86 Differences</a></p>
 </div>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
@@ -60,11 +63,13 @@
              
 
 <a name="diffs"></a><h3>SPARC and x86 Differences</h3>
-<p>When you use the distribution constructor to create ISO images, there are a
-few differences between creating images for SPARC systems and for x86 systems:</p>
-<ul><li><p>To prepare to use the distribution constructor, you can download an x86 Live CD image and use it to install the OpenSolaris OS on your x86 system. However, there are no SPARC Live CD images. Instead, you must use the automated installer to install the OpenSolaris OS on a SPARC system. Then you can use the distribution constructor on that SPARC system.</p><p>For information about using the automated installer, see the <a href="http://dlc.sun.com/osol/docs/content/2009.06/AIinstall/">OpenSolaris Automated Installer Guide</a>. </p></li>
-<li><p>The root archive for x86 images differs from the root archive for SPARC images. The whole root archive, or <tt>bootroot</tt>, for x86 images is a UFS filesystem, compressed by using <tt>lzma</tt>. The SPARC platform does not support the compression of the whole root archive in this way. Instead, SPARC root archives use DCFS, which compress each file individually. These individually compressed files might require specific handling in the manifest. For instructions, see <tt>&lt;bootroot_contents></tt> in <a href="manifest.html#mantbl">Table&nbsp;3-1</a>.</p></li></ul>
-
+<p>When you use the distribution constructor to create ISO images, note the following:</p><p>The root archive for x86 images differs from the root archive for
+SPARC images. The whole root archive, or <tt>boot_archive</tt>, for x86 images is a UFS
+filesystem, compressed by using <tt>lzma</tt>.  The SPARC platform does not support the
+compression of the whole root archive in this way.  Instead, SPARC root
+archives use DCFS, which compresses each file individually. These individually compressed files might
+require specific handling in the manifest. For instructions, see the <tt>&lt;boot_archive_contents></tt> field in
+the <tt>dc_manifest</tt>(4) man page.</p>
          </div>
       </td>
    </tr>
@@ -78,7 +83,7 @@
                  <a href="how.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="setup.html">Next</a>
+                 <a href="using.html">Next</a>
              </td>
            </tr>
          </table>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/distconstguide.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 
+             </td>
+             <td align="right">
+                 <a href="docinfo.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             <h1>OpenSolaris 2010.03 Distribution Constructor Guide</h1>
+
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 
+             </td>
+             <td align="right">
+                 <a href="docinfo.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- a/usr/src/cmd/distro_const/docs/distro_const.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/distro_const.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Creating an Image - OpenSolaris Distribution Constructor Guide</title>
+<title>Building an Image - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -35,7 +38,7 @@
                  <a href="scripts.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="command.html">Next</a>
+                 <a href="trouble.html">Next</a>
              </td>
            </tr>
          </table>
@@ -45,108 +48,109 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level2"><a href="manifest.html">Editing the Manifest Files</a></p>
-<p class="toc level2"><a href="scripts.html">Using the Finalizer Scripts</a></p>
-<div class="onpage">
-<p class="toc level2"><a href="">Creating an Image</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level2"><a href="sysreq.html">System Requirements</a></p>
+<p class="toc level2"><a href="manifest.html">Customize Your Image by Editing the Manifests</a></p>
+<p class="toc level2"><a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Building an Image</a></p>
 </div>
-<p class="toc level2"><a href="command.html"><tt>distro_const</tt> Command Reference</a></p>
 <p class="toc level2"><a href="trouble.html">Troubleshooting</a></p>
 <p class="toc level2"><a href="addl.html">Additional Information</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
              
 
-<a name="distro_const"></a><h3>Creating an Image</h3>
+<a name="distro_const"></a><h3>Building an Image</h3>
 <p>After you have set up the manifest file that you plan to
-use and customized the finalizer scripts if desired, you are ready to build
-an image by running the <tt>distro_const</tt> command.</p><p>The full syntax for this command is as follows:</p><pre>Syntax: <tt>distro_const build [<tt>-R</tt>] [<tt>-r</tt> <i>step</i>] [<tt>-p</tt> <i>step</i>] [<tt>-l</tt>] <i>manifest</i></tt></pre>
-<hr><p><b>Note - </b>You need to run the <tt>distro_const</tt> command as root.</p>
+use and, if desired, customized the finalizer scripts, you are ready to build
+an image by running the <tt>distro_const</tt> command.</p>
+<hr><p><b>Note - </b>You need to run the <tt>distro_const</tt> command as root user.</p>
 <hr>
 <p>You can use the <tt>distro_const</tt> command to do either of the following:</p>
 <ul><li><p>Build an image in one step.</p></li>
-<li><p>Build an image, but pause and restart the build as needed in order to examine the content of the image and debug the finalizer scripts during the build process.</p></li></ul>
+<li><p>Build an image, but pause and restart the build as needed to examine the content of the image and debug the finalizer scripts during the build process.</p></li></ul>
+<p>The full syntax for this command is as follows:</p><pre>Syntax: <tt>distro_const build [<tt>-R</tt>] [<tt>-r</tt> <i>step</i>] [<tt>-p</tt> <i>step</i>] [<tt>-l</tt>] <i>manifest</i></tt></pre>
 
-
-<a name="gentextid-701"></a><h4>Creating an Image in One Step</h4>
+<a name="gentextid-532"></a><h4>Building an Image in One Step</h4>
 <p>To run a complete build of an image without pausing, use the
 basic <tt>distro_const</tt> command without options as follows:</p><pre># <tt>distro_const build <i>manifest</i></tt></pre><p>Replace <i>manifest</i> with the name of the manifest file to be used as
 the blueprint for your image. The <tt>build</tt> subcommand is required. When you
-enter this command, the distribution constructor pulls the needed packages for the image
-and builds the image to the specifications that you entered in the manifest
-file.</p>
+type this command, the distribution constructor pulls the needed packages for the image
+and builds the image to the specifications that you set up in the
+manifest file.</p>
 
-<a name="checkpoint"></a><h4>Using Checkpointing to Create an Image</h4>
-<p>You do not need to build an image without pausing. In fact,
-you may prefer to pause and restart the build process to debug your
- selection of files, packages, and scripts for creating an image. You can
-use the checkpointing options in the <tt>distro_const</tt> command to pause and restart the build
-process as needed.</p>
-<hr><p><b>Note - </b>The checkpointing feature is enabled by default in a manifest file. However, checkpointing
-can only function when you specify ZFS dataset, or a mount point that
-correlates to a ZFS dataset , as your build area.</p><p>You can disable checkpointing in the manifest file by setting the <tt>checkpoint_enable</tt>
+<a name="checkpoint"></a><h4>Building an Image in Stages</h4>
+<p>You can use the options provided in the <tt>distro_const</tt> command to stop
+and restart the build process at various stages in the image-generation process, in
+order to check and debug your  selection of files, packages, and scripts
+for the image that is being built. This process of stopping and
+restarting during the build process is called <b>checkpointing</b>.</p><p>Checkpointing supports the process of developing and debugging images. You can start building
+an image, pause at any stage where you want to stop and examine
+the contents of the image, then resume building the image. Checkpointing is optional.</p>
+<hr><p><b>Note - </b>The checkpointing feature is enabled by default in the manifest file. But a
+ZFS dataset, or a mount point that correlates to a ZFS dataset, must
+be specified as the build area.</p><p>Alternately, you can disable checkpointing in the manifest file by setting the <tt>checkpoint_enable</tt>
 parameter to <tt>false</tt>.</p>
 <hr>
 <p>Use the checkpointing options that are available in the <tt>distro_const</tt> command as
-described in the following basic instructions.</p>
-<hr><p><b>Note - </b>For a summary of the options that are available for the <tt>distro_const</tt>
-command, see <a href="command.html"><tt>distro_const</tt> Command Reference</a>.</p>
-<hr>
+described in the following basic instructions. See, also, the <tt>distro_const</tt>(1M) man page.</p>
 
-
-<a name="checkpointtask"></a><h5>Creating an Image Using Checkpoint Options</h5>
+<a name="checkpointtask"></a><h5>Building an Image in Stages by Using Checkpoint Options</h5>
 <ol>
 <li><b>Before you build the image, check the valid steps at which you can
-choose to pause or resume the build by using the following command:</b><pre># <tt>distro_const build [<tt>-l</tt>] <i>manifest</i></tt></pre><p>This command displays the valid steps at which you can pause or
-resume building an image. Use the step names provided by this command as
-valid values for the other checkpointing command options.</p>
+choose to pause or resume the build by using the following command:</b><pre># <tt>distro_const build <tt>-l</tt> <i>manifest</i></tt></pre>
 <hr><p><b>Note - </b>The <tt>build</tt> subcommand is required.</p>
 <hr>
-<p>For example, the following command confirms which checkpoints are available, given a manifest
-file named <i>slim_cd_x86.xml</i>.</p><pre># <tt>distro_const build <tt>-l</tt> <i>slim_cd_x86.xml</i></tt></pre><p>After the command is run, the valid checkpointing steps are displayed as follows.</p><pre>Step           Resumable Description
+<p>A checkpoint in the build process occurs after each finalizer script is executed.</p><p>This command displays the valid checkpoints at which you can pause or resume
+building an image. Use the step names provided by this command as
+valid values for the other checkpointing command options.</p><p>For example, the following command confirms which checkpoints are available, given a manifest
+file named <i>slim_cd_x86.xml</i>.</p><pre># <tt>distro_const build <tt>-l</tt> slim_cd_x86.xml</tt></pre><p>After the command is run, the valid checkpointing steps are displayed. Checkpointing steps
+can include the following.</p><pre>Step           Resumable Description
 -------------- --------- -------------
-im-pop             X     Populate the image with packages
-im-mod             X     Image area modifications
-slim-im-mod             X     Slim CD image area modifications
-br-init            X     Boot root initialization
-slim-br-config     X     Slim CD boot-root configuration
-br-config          X     Boot root configuration
-br-arch            X     Boot root archiving
-slim-post-mod      X     Slim CD post-boot-root image area modifications
-grub-setup         X     Grub menu setup
-post-mod           X     Post bootroot image area modification
-gen-slim-cont      X     Generate Slim CD image content list
-iso                X     ISO image creation </pre>
-<hr><p><b>Note - </b>The check in the resumable field indicates that you can restart the build
-from this step.</p>
+im-pop             X    Populate the image with packages
+im-mod             X    Image area modifications
+slim-im-mod             Slim CD image area modifications
+ba-init                 Boot archive initialization
+slim-ba-config          Slim CD boot archive configuration
+ba-config               Boot archive configuration
+ba-arch                 Boot archive archiving (64-bit)
+ba-arch-32              Boot archive archiving (32-bit)
+slim-post-mod           Slim CD post boot archive image area modifications
+grub-setup              Grub menu setup
+post-mod                Post boot archive image area modification
+gen-slim-cont           Generate Slim CD image content list
+iso                     ISO image creation 
+usb                     USB image creation</pre>
+<hr><p><b>Note - </b>In the command output, a check in the resumable field indicates that you
+can restart the build from this step.</p>
 <hr>
 </li>
 <li><b>Use the following command to build an image, and to pause building the
-image at the specified step.</b><pre># <tt>distro_const build [<tt>-p</tt> <i>step</i>] <i>manifest</i></tt></pre>
+image at the specified step.</b><pre># <tt>distro_const build <tt>-p</tt> <i>step</i> <i>manifest</i></tt></pre>
 <hr><p><b>Note - </b>The <tt>build</tt> subcommand is required. The <i>step</i> and <i>manifest</i> fields are required.</p>
 <hr>
 <p>For example, the following command starts building an image and pauses the build
-before step <i>im-mod</i> modifies the image area:</p><pre># <tt>distro_const build <tt>-p</tt> <i>im-mod</i> <i>slim_cd_x86.xml</i></tt></pre></li>
+before step <i>im-mod</i> modifies the image area:</p><pre># <tt>distro_const build <tt>-p</tt> im-mod slim_cd_x86.xml</tt></pre></li>
 <li><b>Resume the build, either from the last step executed or from a specified
 step, by using one of the following alternatives:</b><ul>
-<li><b>Use the following command to resume building the image from a specified step.</b><pre># <tt>distro_const build [<tt>-r</tt> <i>step</i>] <i>manifest</i></tt></pre>
+<li><b>Use the following command to resume building the image from a specified step.</b><pre># <tt>distro_const build <tt>-r</tt> <i>step</i> <i>manifest</i></tt></pre>
 <hr><p><b>Note - </b>The specified step must be either the step at which the previous build
 stopped executing, or an earlier step. A later step is not valid.
 The <i>step</i> and <i>manifest</i> fields are required. The <tt>build</tt> subcommand is required.</p>
 <hr>
 <p>For example, the following command resumes building the image where the <i>im-mod</i> modifies
-the image area:</p><pre># <tt>distro_const build <tt>-r</tt> <i>im-mod</i> <i>slim_cd_x86.xml</i></tt></pre></li>
+the image area:</p><pre># <tt>distro_const build <tt>-r</tt> im-mod slim_cd_x86.xml</tt></pre></li>
 <li><b>Use the following command to resume building the image from the last step
 executed.</b>
-<hr><p><b>Note - </b>The <i>manifest</i> field and the <tt>build</tt> subcommand are required.</p>
+<hr><p><b>Note - </b>The <i>manifest</i> argument and the <tt>build</tt> subcommand are required.</p>
 <hr>
-<pre># <tt>distro_const build [<tt>-R</tt>] <i>manifest</i></tt></pre><p>For example, the following command resumes building the image from wherever the build
-had paused.</p><pre># <tt>distro_const build <tt>-R</tt> <i>slim_cd_x86.xml</i></tt></pre></li></ul></li></ol>
+<pre># <tt>distro_const build <tt>-R</tt> <i>manifest</i></tt></pre><p>For example, the following command resumes building the image from wherever the build
+had paused.</p><pre># <tt>distro_const build <tt>-R</tt> slim_cd_x86.xml</tt></pre></li></ul></li></ol>
          </div>
       </td>
    </tr>
@@ -160,7 +164,7 @@
                  <a href="scripts.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="command.html">Next</a>
+                 <a href="trouble.html">Next</a>
              </td>
            </tr>
          </table>
--- a/usr/src/cmd/distro_const/docs/docinfo.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/docinfo.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Document Information - OpenSolaris Distribution Constructor Guide</title>
+<title>Document Information - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -32,7 +35,7 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="distroconst.html">Previous</a>
+                 <a href="distconstguide.html">Previous</a>
              </td>
              <td align="right">
                  <a href="index.html">Next</a>
@@ -43,18 +46,18 @@
    </tr>
    
    <tr valign="top">
-      <td class="Navigation" width="200px"><div class="onpage">
+      <td class="Navigation" width="200px"><div id="scrolltoc" class="onpage">
 <p class="toc level1"><a href="">Document Information</a></p>
 </div>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
-             <a name="documentinfo"></a><p>Part No: 820-6564-11</p><p>June 2009</p><p>4150 Network Circle<br>Santa Clara,  CA 95054<br>U.S.A.</p><p>Copyright 2009 Sun Microsystems, Inc.</p><p>This
+             <a name="documentinfo"></a><p>Part No: 820-6564-12</p><p>March 2010</p><p>4150 Network Circle<br>Santa Clara,  CA 95054<br>U.S.A.</p><p>Copyright 2010 Sun Microsystems, Inc.</p><p>This
 guide provides an introduction to the OpenSolaris releases, including instructions about how to
 install the current OpenSolaris release on your system.</p><p>The contents of this Documentation are
 subject to the Public Documentation License Version 1.01 (the "License"); you may only
@@ -142,7 +145,7 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="distroconst.html">Previous</a>
+                 <a href="distconstguide.html">Previous</a>
              </td>
              <td align="right">
                  <a href="index.html">Next</a>
--- a/usr/src/cmd/distro_const/docs/how.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/how.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>How does the Distribution Constructor Work? - OpenSolaris Distribution Constructor Guide</title>
+<title>Components in the Distribution Constructor - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -46,73 +49,55 @@
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
 <p class="toc level2"><a href="overview.html">What is the Distribution Constructor?</a></p>
-<div class="onpage">
-<p class="toc level2"><a href="">How does the Distribution Constructor Work?</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Components in the Distribution Constructor</a></p>
 </div>
 <p class="toc level2"><a href="diffs.html">SPARC and x86 Differences</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
              
 
-<a name="how"></a><h3>How does the Distribution Constructor Work?</h3>
-<p>The distribution constructor tool uses the following components:</p>
-<ul><li><p><a href="#manifests">Manifests</a></p><p>The distribution constructor creates images based on settings specified in a file. This file is the blueprint from which every image is built. This blueprint is an XML file called a <b>manifest file</b>. Sample manifest files with preset values are included in the distribution constructor package. You can manually edit a manifest file to customize the ISO images you create.</p></li>
-<li><p><a href="#finalizers">Finalizer Scripts</a></p><p>The distribution constructor enables you to specify scripts or programs that can be used to make installation customizations based on the type of image you are building.  These scripts are called <b>finalizer scripts</b>. The distribution constructor package includes the set of scripts that are used for creating the Slim Live CD and AI ISO images. It is recommended that you use the supplied finalizer scripts without editing them. You do, however, have the option to write and add your own scripts to perform additional operations.</p></li>
-<li><p><a href="#utility">distro_const Utility</a> with <a href="#checkpointing">Checkpointing Options</a></p><p>The distribution constructor package also includes a command-line utility, the <tt>distro_const</tt> command, that actually builds your image for you. After you've finished editing the image blueprint in a manifest file to suit your requirements, you run the <tt>distro_const</tt> command to build your image. You can use the options provided in the <tt>distro_const</tt> command to stop and restart the build process at various stages, in order to check and debug the image that is being built. This process of stopping and restarting during the build process is called <b>checkpointing</b>.</p></li></ul>
+<a name="how"></a><h3>Components in the Distribution Constructor</h3>
+<p>The distribution constructor uses the following components to design and build image:</p>
+<ul><li><p><a href="#manifests">Manifest Files</a></p></li>
+<li><p><a href="#finalizers">Finalizer Scripts</a></p></li>
+<li><p><a href="#utility"><tt>distro_const</tt> Utility</a> with <a href="#checkpointing">Checkpointing</a></p></li></ul>
 
 
-<a name="components"></a><h4>Components of the Distribution Constructor</h4>
-<p>The following section describes each of the components of the distribution constructor application
-more fully.</p>
-
-<a name="manifests"></a><h5>Manifests</h5>
-<p>XML manifest files contain specifications for the contents and parameters of the ISO
-images that you create using the distribution constructor. The distribution constructor contains default
+<a name="manifests"></a><h4>Manifest Files</h4>
+<p>The distribution constructor creates images based on settings specified in XML files, called
+<b>manifest files</b>. The manifest files contain specifications for the contents and parameters of the
+ISO images that you create using the distribution constructor. The distribution constructor contains default
 manifests that can be used to create a custom Slim CD, an x86
-AI ISO image, or a SPARC AI ISO image.</p><p>Manifests specify parameters such as the following:</p>
-<ul><li><p>Names of the packages to be included in the image</p></li>
-<li><p>Network location of the repository to access to retrieve packages for the image</p></li>
-<li><p>Name and location of scripts used to finalize the creation of the new image</p></li></ul>
-<p>All the fields in each manifest file provide preset, default values that will
-create the type of ISO image you need. Optionally, you can manually edit
-these preset fields in a manifest file to further customize the resulting image.</p><p>For instructions about editing manifest files, see <a href="manifest.html">Editing the Manifest Files</a>.</p>
+AI ISO image, a SPARC AI ISO image, or a virtual machine
+image.</p><p>All the fields in each manifest file provide preset, default values that will
+create the type of image you need. Optionally, you can manually edit these
+preset fields in a manifest file to further customize the resulting image. For
+instructions, see <a href="manifest.html">Customize Your Image by Editing the Manifests</a>.</p>
 
-<a name="finalizers"></a><h5>Finalizer Scripts</h5>
-<p>A manifest file points to scripts that are used to customize the
-new image. These finalizer scripts transform the generic image into a media-specific distribution. The
-default scripts that are provided in the application packages generate ISO images for
-either an x86 Slim CD, an x86 AI ISO image, or a
-SPARC AI ISO image. Start with the default scripts, and with caution, add
-your own scripts to supplement. Edit the manifest file to point to any
-new scripts.</p>
-<hr><p><b>Note - </b>While custom scripts are needed to create your own custom image, support for
-scripts is limited to the unmodified scripts that are supplied with the application
-packages. If you choose to customize these scripts, backup the original scripts first.</p>
-<hr>
-<p>For further information about these scripts and how to customize them, see <a href="scripts.html">Using the Finalizer Scripts</a>.</p>
+<a name="finalizers"></a><h4>Finalizer Scripts</h4>
+<p>The distribution constructor enables you to specify scripts that can be used to
+make installation customizations based on the type of image you are building. 
+These scripts are called <b>finalizer scripts</b>. The manifest files point to the finalizer
+scripts, and the finalizer scripts transform the generic image into a media-specific distribution.
+The default scripts are provided when you install the distribution constructor package.</p><p>For further information, see <a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a>.</p>
 
-<a name="utility"></a><h5>distro_const Utility</h5>
-<p>After setting up the manifest and, optionally, customizing the finalizer scripts, you build
-an image by using the <tt>distro_const</tt> utility from the command line.</p><p>For further information, see <a href="distro_const.html">Creating an Image</a>. See also the <tt>distro_const</tt>(1M) man page.</p>
+<a name="utility"></a><h4><tt>distro_const</tt> Utility</h4>
+<p>The distribution constructor package also includes a command-line utility, the <tt>distro_const</tt> command, that
+actually builds your image for you. After you have finished editing the image
+blueprint in a manifest file to suit your requirements, you run the <tt>distro_const</tt>
+command to build your image.</p><p>For further information, see <a href="distro_const.html">Building an Image</a>.</p>
 
-<a name="checkpointing"></a><h5>Checkpointing Options</h5>
-<p>The distribution constructor provides the ability to pause, or &ldquo;checkpoint,&rdquo; and resume at
-certain stages of the image-generation process. This checkpointing feature supports the process of
-developing and debugging images. You can start building an image, pause at any
-stage where you want to stop and examine the contents of the image,
-then resume building the image. Checkpointing is optional.</p>
-<hr><p><b>Note - </b>A checkpoint in the build process is created after each finalizer script is
-executed.  So, new checkpoint references are added when you add new finalizer
-scripts.</p>
-<hr>
-<p>You use this feature by taking advantage of the checkpointing options that are
-available in the <tt>distro_const</tt> command. Run the command to check which checkpoints are
-available, then build your image with any checkpoint options that you choose.</p><p>For instructions, see <a href="distro_const.html#checkpoint">Using Checkpointing to Create an Image</a>. See also the <tt>distro_const</tt>(1M) man page.</p>
+<a name="checkpointing"></a><h4>Checkpointing</h4>
+<p>You can use the options provided in the <tt>distro_const</tt> command to stop
+and restart the build process at various stages in the image-generation process, in
+order to check and debug the image that is being built. This
+process of stopping and restarting during the build process is called <b>checkpointing</b>.</p><p>For instructions, see <a href="distro_const.html#checkpoint">Building an Image in Stages</a>. </p>
          </div>
       </td>
    </tr>
--- a/usr/src/cmd/distro_const/docs/index.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/index.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Introduction to the Distribution Constructor - OpenSolaris Distribution Constructor Guide</title>
+<title>Introduction to the Distribution Constructor - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -44,24 +47,25 @@
    
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
-<div class="onpage">
+<div id="scrolltoc" class="onpage">
 <p class="toc level1 tocsp"><a href="">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
 </div>
 <p class="toc level2"><a href="overview.html">What is the Distribution Constructor?</a></p>
-<p class="toc level2"><a href="how.html">How does the Distribution Constructor Work?</a></p>
+<p class="toc level2"><a href="how.html">Components in the Distribution Constructor</a></p>
 <p class="toc level2"><a href="diffs.html">SPARC and x86 Differences</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
              <a name="index"></a>Chapter&nbsp;1<h3>Introduction to the Distribution Constructor</h3><p>The distribution constructor is a tool that application developers can use to build
-their own custom OpenSolaris<sup>TM</sup> image which they can then distribute to their contacts
+their own custom OpenSolaris<sup>TM</sup> image, which they can then distribute to their contacts
 and customers.</p>
-<ul><li><p>If you have not used the distribution constructor before, read this introduction. Then, install the tool on your system, using the instructions at <a href="setup.html">Chapter&nbsp;2, Setup for the Distribution Constructor</a>.</p></li>
-<li><p>If you are already familiar with the distribution constructor tool, go to <a href="using.html">Chapter&nbsp;3, Using the Distribution Constructor</a> for detailed instructions about how to design and create images.</p></li></ul>
+<ul><li><p>If you have not used the distribution constructor before, read the following introduction.</p></li>
+<li><p>If you are ready to use the distribution constructor, go to <a href="using.html">Chapter&nbsp;2, Design and Build OpenSolaris Images</a>.</p></li>
+<li><p>If you want to build a virtual machine, see the instructions at <a href="vm.html">Chapter&nbsp;3, x86: Design and Build a Virtual Machine</a>.</p></li></ul>
 
          </div>
       </td>
--- a/usr/src/cmd/distro_const/docs/manifest.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/manifest.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Editing the Manifest Files - OpenSolaris Distribution Constructor Guide</title>
+<title>Customize Your Image by Editing the Manifests - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -32,7 +35,7 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="using.html">Previous</a>
+                 <a href="sysreq.html">Previous</a>
              </td>
              <td align="right">
                  <a href="scripts.html">Next</a>
@@ -45,137 +48,78 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<div class="onpage">
-<p class="toc level2"><a href="">Editing the Manifest Files</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level2"><a href="sysreq.html">System Requirements</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Customize Your Image by Editing the Manifests</a></p>
 </div>
-<p class="toc level2"><a href="scripts.html">Using the Finalizer Scripts</a></p>
-<p class="toc level2"><a href="distro_const.html">Creating an Image</a></p>
-<p class="toc level2"><a href="command.html"><tt>distro_const</tt> Command Reference</a></p>
+<p class="toc level2"><a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a></p>
+<p class="toc level2"><a href="distro_const.html">Building an Image</a></p>
 <p class="toc level2"><a href="trouble.html">Troubleshooting</a></p>
 <p class="toc level2"><a href="addl.html">Additional Information</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
              
 
-<a name="manifest"></a><h3>Editing the Manifest Files</h3>
-<p>The <tt>SUNWdistro-const</tt> package that you installed on your system includes default manifest files.
-These XML manifest files provide the distribution constructor with the blueprints that specify
-the contents and parameters of the image that you plan to build. </p><p>The default manifest files included in the <tt>SUNWdistro-const</tt> package are:</p>
-<ul><li><p><b>Manifest for x86 ISO image &ndash;</b> Located at <tt>/usr/share/distro_const/slim_cd/all_lang_slim_cd_x86.xml</tt>, this manifest is used to create an ISO image comparable to the OpenSolaris 2009.06 Live CD. To view the contents of the x86 Slim CD manifest, see <a href="appendix.html">Chapter&nbsp;4, Appendix: Sample Manifest File</a>.</p></li>
-<li><p><b>Manifest for SPARC AI ISO image &ndash;</b> Located at <tt>/usr/share/distro_const/auto_install/ai_sparc_image.xml</tt>, this manifest is used to create a SPARC AI ISO image for automated installations of the OpenSolaris OS to SPARC clients.</p></li>
-<li><p><b>Manifest for x86 AI ISO image &ndash;</b> Located at <tt>/usr/share/distro_const/auto_install/ai_x86_image.xml</tt>, this manifest is used to create an x86 AI ISO image for automated installations of the OpenSolaris OS to x86 clients.</p></li></ul>
-<p>You do not need to modify the default manifest files. However, you
-can edit them if you wish. The following table summaries some of the
-key sections in the manifest file and provides further instructions about how you
-can customize these sections.</p>
-<hr><p><b>Note - </b>When using the distribution constructor, you can only create SPARC images on a
-SPARC system. And, you can only create x86 images on an x86
-system.</p>
-<hr>
-<a name="mantbl"></a><h6>Table&nbsp;3-1 Primary Manifest Sections</h6><table><col width="28%"><col width="71%"><tr><th align="left" valign="top" scope="column"><p>Section XML Tags</p></th>
-<th align="left" valign="top" scope="column"><p>Description of Required Manual Edits</p></th>
+<a name="manifest"></a><h3>Customize Your Image by Editing the Manifests</h3>
+<p>The distribution constructor creates images based on settings specified in XML files, called
+<b>manifest files</b>. The manifest files contain specifications for the contents and parameters of the
+ISO images that you create using the distribution constructor. The distribution constructor contains default
+manifests that can be used to create a custom Slim CD, an x86
+AI ISO image, a SPARC AI ISO image, or a virtual machine.</p><p>Manifests specify parameters such as the following:</p>
+<ul><li><p>Names of the packages to be included in the image</p></li>
+<li><p>Network location of the repository to access to retrieve packages for the image</p></li>
+<li><p>Name and location of scripts used to finalize the creation of the new image</p></li></ul>
+<p>The default manifest files included in the <tt>SUNWdistro-const</tt> package are:</p><a name="manifesttbl"></a><h6>Table&nbsp;2-2 Default Manifests</h6><table><col width="22%"><col width="38%"><col width="38%"><tr><th align="left" valign="top" scope="column"><p>Manifest Type</p></th>
+<th align="left" valign="top" scope="column"><p>Manifest Location</p></th>
+<th align="left" valign="top" scope="column"><p>Description</p></th>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;distribution name="OpenSolaris"></tt></p></td>
-<td align="left" valign="top" scope="row"><p>This section provides a default name
-for the distribution.</p><p>You can leave the default name or type a unique
-name for your distribution.</p></td>
+<tr><td align="left" valign="top" scope="row"><p>x86
+ISO image</p></td>
+<td align="left" valign="top" scope="row"><pre>/usr/share/distro_const/slim_cd/
+all_lang_slim_cd_x86.xml</pre></td>
+<td align="left" valign="top" scope="row"><p>This manifest is used to create an ISO image comparable to
+the OpenSolaris Live CD.</p></td>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;checkpoint_enable></tt></p></td>
-<td align="left" valign="top" scope="row"><p>The default setting in this section enables checkpointing when
-you create the image. You can use checkpointing to pause while building an
-image for testing purposes. Checkpointing is described later in this topic.</p></td>
+<tr><td align="left" valign="top" scope="row"><p>SPARC AI ISO image</p></td>
+<td align="left" valign="top" scope="row"><pre>/usr/share/distro_const/
+auto_install/ai_sparc_image.xml</pre></td>
+<td align="left" valign="top" scope="row"><p>This manifest is used to create a
+SPARC AI ISO image for automated installations of the OpenSolaris OS to SPARC
+clients.</p></td>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;pkg_repo_default_authority></tt></p></td>
-<td align="left" valign="top" scope="row"><p>This section specifies
-the location of the IPS repository. The constructor accesses the repository and retrieves
-packages for the image when the image is being built. The default repository
-location is <a href="http://pkg.opensolaris.org/release">http://pkg.opensolaris.org/release</a>.</p><p>If you do not want to use the opensolaris.org repository,
-modify this location to point to the repository of your choice. To view
-a list of some of the alternate repositories, see <a href="http://dlc.sun.com/osol/docs/content/2009.06/IMGPACKAGESYS/giifx.html">OpenSolaris Repositories</a>.</p></td>
+<tr><td align="left" valign="top" scope="row"><p>x86 AI ISO image</p></td>
+<td align="left" valign="top" scope="row"><pre>/usr/share/distro_const/
+auto_install/ai_x86_image.xml</pre></td>
+<td align="left" valign="top" scope="row"><p>This manifest is used to create an x86 AI
+ISO image for automated installations of the OpenSolaris OS to x86 clients.</p></td>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;packages></tt></p></td>
-<td align="left" valign="top" scope="row"><p>This section lists the
-packages to be included in the image.</p><p>If you have packages that you
-want to add to the image, list your packages in this field, one
-package per line.</p></td>
+<tr><td align="left" valign="top" scope="row"><p>x86 virtual
+machine</p></td>
+<td align="left" valign="top" scope="row"><pre>/usr/share/distro_const/
+vmc/vmc_image.xml</pre></td>
+<td align="left" valign="top" scope="row"><p><b>Starting in the OpenSolaris 2010.03 release,</b> this manifest is used to create a virtual machine image. For
+instructions, see <a href="vm.html">Chapter&nbsp;3, x86: Design and Build a Virtual Machine</a>.</p></td>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;bootroot_contents></tt></p></td>
-<td align="left" valign="top" scope="row"><p>This section lists the default files and directories that will
-be included in the boot root for the image that is built. Files
-or directories that need to be excluded from the image are specified with
-the <tt>base_exclude</tt> tag.</p>
-<hr><p><b>Caution - </b>It is recommended that you <b>not</b> edit the boot root contents
-with the following exception. Modifying the boot root contents might cause the system
-to fail to boot.</p>
+</table>
+
+<a name="modman"></a><h4>Modifying Manifest Contents</h4>
+<p>All the fields in each manifest file provide preset, default values that will
+create the type of ISO image you need. You have the option
+to manually edit these preset fields in a manifest file to further customize
+the resulting image.</p><p>If you want to modify the manifest information, use the following process:</p>
+<ol><li><p>Copy one of the default manifests and create a custom manifest file with a new file name.</p><p>You will reference the manifest file by name when you use the <tt>distro_const</tt> command to create an image.</p>
+<hr><p><b>Note - </b>Always back up the original manifest file and the default scripts before copying them.</p>
 <hr>
-<p>The root archive for x86 images differs from the
-root archive for SPARC images. The whole root archive, or bootroot, for x86
-images is a UFS filesystem, compressed by using <tt>lzma</tt>.  The SPARC platform
-does not support the compression of the whole root archive in this way.
- Instead, SPARC root archives use DCFS, which compress each file individually. These
-individually compressed files might require specific handling in the manifest.</p><p>During boot time, some
-of the files in the root archive need to be modified. But, compressed
-files cannot be modified. Therefore, for SPARC images, you need to specify in
-the manifest which files should not be compressed. In the finalizer section of
-the manifest, find the reference to the <tt>boot_archive.py</tt> script. By default, this
-script specifies that all the files and directories in the <tt>/boot/solaris/filelist.ramdisk</tt> file, and
-all the files and subdirectories under the <tt>usr/kernel</tt> directory, are uncompressed. You must specify
-any additional files that need to be in uncompressed state in the bootroot
-by setting the <tt>fiocompress=false</tt> option in the manifest for those files.</p></td>
-</tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;build_area></tt></p></td>
-<td align="left" valign="top" scope="row"><p>This section
-specifies the area where the image will be created.</p><p>You must check that
-the package image area specified is valid for your system and revise as
-needed.</p><p>If you want to use checkpointing, you must specify a ZFS dataset,
-or a mount point that correlates to a ZFS dataset, as your build
-area. If the ZFS dataset does not exist, it will be created. The
-zpool that you specify, however, must already exist.</p><p>If you do not want to
-use checkpointing, you can use either a regular mount point or a ZFS
-or UFS file system.</p>
-<hr><p><b>Note - </b>After an image has been created, the build area
-for that image has the following structure.</p>
-<ul><li><p><tt>&lt;build_area>/build_data/pkg_image</tt> &ndash; Package image area.</p></li>
-<li><p><tt>&lt;build_area>/build_data/bootroot</tt> &ndash; Boot root build area.</p></li>
-<li><p><tt>&lt;build_area>/build_data/tmp</tt> &ndash; Temporary directory used by constructor and finalizer scripts.</p></li>
-<li><p><tt>&lt;build_area>/media</tt> &ndash; Area where the output images are placed.</p></li>
-<li><p><tt>&lt;build_area>/logs</tt> &ndash; Area that holds log files which record the steps executed by the application and the output from all commands.</p><p>The &ldquo;simple&rdquo; log, named <tt>simple-log-YYYY-MM-DD-HH-Mi-SS</tt>, contains only errors. The &ldquo;detail&rdquo; log, named <tt>detail-log-YYYY-MM-DD-HH-Mi-SS</tt>, contains informational output and errors. The console echos information in the &ldquo;simple&rdquo; log file.</p></li></ul>
+</li>
+<li><p>Edit the manifest fields to suit your needs. See the <tt>dc_manifest</tt>(4) man page for instructions.</p></li>
+<li><p>If the default finalizer scripts do not leave the <tt>build_area</tt> as you need it, you can create your own scripts to make further modifications. If you do create new scripts, update the script references in the finalizer section of the manifest file.</p><p>For instructions about editing the finalizer script section in the manifest file, see the <tt>dc_manifest</tt>(4) man page.</p><p>For instructions about creating new scripts, see <a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a>.</p></li>
+<li><p>When you have completed any revisions to the manifest file and, optionally, customized the finalizer scripts as described in the next section, you can proceed with running the <tt>distro_const</tt> utility to create an image. For instructions, see <a href="distro_const.html">Building an Image</a>.</p></li></ol>
 
-<hr>
-</td>
-</tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;finalizer></tt></p></td>
-<td align="left" valign="top" scope="row"><p>This section specifies the finalizer scripts that
-the distribution constructor invokes and the order in which the distribution constructor invokes
-them.</p><p>Default finalizer scripts are provided in the <tt>distro_const</tt> package and automatically referenced
-in this section of the manifest file. You do not need to edit
-this section unless you add new finalizer scripts, or you change the name
-or the <tt>argslist</tt> of existing scripts.</p></td>
-</tr>
-<tr><td align="left" valign="top" scope="row"><p><tt>&lt;key_value_pairs></tt></p></td>
-<td align="left" valign="top" scope="row"><p>This section specifies additional parameters that are
-needed by the distribution constructor or by the finalizer scripts. Default parameters are provided.</p><p>You
-do not need to edit the default key-value pairs except to add
-new ones that will be recognized by new or customized finalizer scripts.</p></td>
-</tr>
-</table><p>You can either use one of the default manifest files, or you
-can copy a default manifest and create a custom manifest file with a
-new file name. You will reference the manifest file by name when you
-use the <tt>distro_const</tt> command to create an image.</p><p>If the default scripts do not leave the <tt>build_area</tt> as you need
-it, you can create your own scripts to make further modifications. If you
-do create new scripts, you'll need to update the script references in the
-finalizer section of the manifest file.</p>
-<hr><p><b>Note - </b>Always backup the original manifest file and the default scripts before copying them.
-Your custom scripts are not supported.</p>
-<hr>
-<p>When you have completed any revisions to the manifest file and, optionally, customized
-the finalizer scripts as described in the next section, you can proceed with
-running the <tt>distro_const</tt> utility to create an image.</p>
          </div>
       </td>
    </tr>
@@ -186,7 +130,7 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="using.html">Previous</a>
+                 <a href="sysreq.html">Previous</a>
              </td>
              <td align="right">
                  <a href="scripts.html">Next</a>
--- a/usr/src/cmd/distro_const/docs/overview.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/overview.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>What is the Distribution Constructor? - OpenSolaris Distribution Constructor Guide</title>
+<title>What is the Distribution Constructor? - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -45,14 +48,14 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<div class="onpage">
+<div id="scrolltoc" class="onpage">
 <p class="toc level2"><a href="">What is the Distribution Constructor?</a></p>
 </div>
-<p class="toc level2"><a href="how.html">How does the Distribution Constructor Work?</a></p>
+<p class="toc level2"><a href="how.html">Components in the Distribution Constructor</a></p>
 <p class="toc level2"><a href="diffs.html">SPARC and x86 Differences</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
@@ -60,32 +63,33 @@
              
 
 <a name="overview"></a><h3>What is the Distribution Constructor?</h3>
-<p>The distribution constructor is a command-line tool for building preconfigured, bootable OpenSolaris images.
-This tool takes an XML manifest file as input, and builds an ISO
-image that is based on the parameters specified in the manifest file. Optionally,
-a USB image can be created, based on the generated ISO image.</p><p>An ISO image or a USB image is a collection of software
-in a single file. These images are bootable and can be used for
-installation and other purposes. Both ISO images and USB images can be distributed
-on the Internet.  The ISO image needs to be burned into a
-CD/DVD before use.  The USB image needs to be copied into a
-USB flash drive by using a special Solaris utility.</p>
-<hr><p><b>Note - </b>The Distribution Constructor outputs a USB image that could work in other types
-of flash memory devices, if that device has driver support provided by the
+<p>The distribution constructor is a command-line tool for building preconfigured OpenSolaris images and
+virtual machine images. The tool takes an XML manifest file as input, and
+builds an ISO image or virtual machine image that is based on the
+parameters specified in the manifest file. Optionally, a USB image can be created,
+based on a generated ISO image. Depending on the image configuration, these ISO
+or USB images can be bootable. They can be installed on a
+system or run in a live media environment. An ISO image can be
+burned to a CD or DVD. A USB image can be copied to
+a flash drive. Both ISO images and USB images can be distributed on
+the Internet.</p>
+<hr><p><b>Note - </b>The Distribution Constructor creates a USB image that could work in various types
+of flash memory devices, if those devices have driver support provided by the
 OpenSolaris release. The <tt>usbcopy</tt> utility is the only utility that can be used
-to copy the USB image into a USB flash drive. This <tt>usbcopy</tt>utility is
-available with the OpenSolaris release.</p>
+to copy the USB image into a USB flash drive. This <tt>usbcopy</tt> utility
+is available with the OpenSolaris release.</p>
 <hr>
 
 
-<a name="types"></a><h4>What Kind of Images Can I Create?</h4>
+<a name="types"></a><h4>What Kind of OpenSolaris Images Can I Build?</h4>
 <p>You can use the distribution constructor to create the following types of OpenSolaris
 images:</p>
-<ul><li><p><b>OpenSolaris 2009.06 x86 Slim CD</b> &ndash; Using the distribution constructor, you can create an x86 ISO image that is comparable to the Live CD image that's distributed as the OpenSolaris 2009.06 release. And, you can modify the content of this ISO image, selecting and adding additional packages to the image. You can revise the default settings for the resulting booted environment to create a custom, redistributable ISO image or USB image.</p></li>
-<li><p><b>x86 ISO Image for Automated Installations</b></p></li>
-<li><p><b>SPARC ISO Image for Automated Installations</b></p><p>The OpenSolaris 2009.06 release includes the automated installer tool. The automated installer (AI) is used to automate the installation of the OpenSolaris OS on one or more SPARC and x86 systems over a network. The installations can differ in architecture, packages installed, disk capacity, and other parameters. The automated installer uses a SPARC or x86 AI ISO image to install the OpenSolaris OS to client systems. You can use the distribution constructor to create a SPARC AI ISO image that can be used to install the OpenSolaris OS on SPARC clients, or to create an x86 AI ISO image that can be used to install the OpenSolaris OS on x86 clients.</p><p>For information about using the automated installer, see the <a href="http://dlc.sun.com/osol/docs/content/2009.06/AIinstall/">OpenSolaris Automated Installer Guide</a>. </p>
-<hr><p><b>Note - </b>When using the distribution constructor, you can only create SPARC images on a SPARC system. And, you can only create x86 images on an x86 system.</p><p>To see the system requirements for using the distribution constructor, see <a href="setup.html">Chapter&nbsp;2, Setup for the Distribution Constructor</a>.</p>
+<ul><li><p><b>OpenSolaris x86 Slim CD</b> &ndash; Using the distribution constructor, you can create an x86 ISO image that is comparable to the Live CD image that's distributed as an OpenSolaris release. And, you can modify the content of this ISO image by adding or removing packages. You can revise the default settings for the resulting booted environment to create a custom, redistributable ISO image or USB image. See <a href="using.html">Chapter&nbsp;2, Design and Build OpenSolaris Images</a>.</p></li>
+<li><p><b>x86 or SPARC ISO Image for Automated Installations</b> &ndash; The OpenSolaris release includes the automated installer tool. The automated installer (AI) is used to automate the installation of the OpenSolaris OS on one or more SPARC and x86 systems over a network. The installations can differ in architecture, packages installed, disk capacity, and other parameters. The automated installer uses a SPARC or x86 AI ISO image to install the OpenSolaris OS to client systems. You can use the distribution constructor to create a SPARC AI ISO image that can be used to install the OpenSolaris OS on SPARC clients, or to create an x86 AI ISO image that can be used to install the OpenSolaris OS on x86 clients.</p><p>For information about using the automated installer, see the <a href="http://docs.sun.com/doc/820-6566"><i>OpenSolaris 2010.03 Automated Installer Guide </i></a>.</p>
+<hr><p><b>Note - </b>When using the distribution constructor, you can only create SPARC images on a SPARC system. And, you can only create x86 images on an x86 system. Also, the OpenSolaris release version on your system must be the same as the release version of the AI images that you use with the distribution constructor.</p>
 <hr>
-</li></ul>
+</li>
+<li><p><b>x86 OpenSolaris Virtual Machine</b> &ndash; <b>Starting with the OpenSolaris 2010.03 release</b>, you can use the distribution constructor to create a virtual machine (VM) that's preinstalled with the OpenSolaris operating system. See <a href="vm.html">Chapter&nbsp;3, x86: Design and Build a Virtual Machine</a>.</p></li></ul>
 
          </div>
       </td>
--- a/usr/src/cmd/distro_const/docs/scripts.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/scripts.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Using the Finalizer Scripts - OpenSolaris Distribution Constructor Guide</title>
+<title>Further Customize an Image Using Finalizer Scripts - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -45,138 +48,177 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level2"><a href="manifest.html">Editing the Manifest Files</a></p>
-<div class="onpage">
-<p class="toc level2"><a href="">Using the Finalizer Scripts</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level2"><a href="sysreq.html">System Requirements</a></p>
+<p class="toc level2"><a href="manifest.html">Customize Your Image by Editing the Manifests</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Further Customize an Image Using Finalizer Scripts</a></p>
 </div>
-<p class="toc level2"><a href="distro_const.html">Creating an Image</a></p>
-<p class="toc level2"><a href="command.html"><tt>distro_const</tt> Command Reference</a></p>
+<p class="toc level2"><a href="distro_const.html">Building an Image</a></p>
 <p class="toc level2"><a href="trouble.html">Troubleshooting</a></p>
 <p class="toc level2"><a href="addl.html">Additional Information</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
              
 
-<a name="scripts"></a><h3>Using the Finalizer Scripts</h3>
-<p>The distribution constructor application includes default scripts in the <tt>/usr/share/distro_const</tt> directory and subdirectories. These
-scripts are referenced in the finalizer section of the manifest files.</p>
-<hr><p><b>Note - </b>It is recommended that you use the default scripts without editing them. You
-do have the option to write your own scripts to perform additional operations.</p>
-<hr>
-<p>For example, some of the finalizer scripts that are used to create
-an x86 Slim CD are as follows:</p>
-<ul><li><p><tt>pre_bootroot_pkg_image_mod</tt> &ndash; Image area modifications for all types of images</p></li>
-<li><p><tt>slim_cd/slimcd_pre_bootroot_pkg_image_mod</tt> &ndash; Image area modifications specific to Slim CD</p></li>
-<li><p><tt>slim_cd/slimcd_gen_cd_content</tt> &ndash; Generate the list of files that are part of the Slim Live CD image.</p></li>
-<li><p><tt>bootroot_initialize.py</tt> &ndash; Boot-root initialization</p></li>
-<li><p><tt>slim_cd/slimcd_bootroot_configure</tt> &ndash; Boot-root configuration specific to Slim CD</p></li>
-<li><p><tt>bootroot_configure</tt> &ndash; Boot-root configuration</p></li>
-<li><p><tt>bootroot_archive.py</tt> &ndash; Boot-root archiving</p></li>
-<li><p><tt>slim_cd/slimcd_post_bootroot_pkg_image_mod</tt> &ndash; Post-boot-root image area modification specific to Slim CD</p></li>
-<li><p><tt>grub_setup</tt> &ndash; Initialization of grub menu</p></li>
-<li><p><tt>post_bootroot_pkg_image_mod</tt> &ndash; Post-boot-root image area modification</p></li>
-<li><p><tt>create_iso</tt> &ndash; ISO image creation</p></li>
-<li><p><tt>create_usb</tt> &ndash; USB image creation</p></li></ul>
-<p>These finalizer scripts are referenced in the finalizer section of the Slim CD
-manifest. You can view the complete contents of the default Slim CD manifest,
-including the finalizer section where the scripts are referenced, at <a href="manifestfile.html">Slim CD Manifest File</a>.</p>
-<hr><p><b>Note - </b>Some of the scripts listed above are also used to create SPARC or
-x86 ISO images for automated installations. But, the automated installer manifests reference other
-finalizer scripts that are specific to the SPARC or x86 automated installation processes.</p>
+<a name="scripts"></a><h3>Further Customize an Image Using Finalizer Scripts</h3>
+<p>The distribution constructor enables you to specify scripts that can be used to
+make installation customizations based on the type of image you are building. 
+These scripts are called <b>finalizer scripts</b>. The manifest files point to the finalizer
+scripts, and the finalizer scripts transform the generic image into a media-specific distribution.
+A set of default scripts are provided in the application packages.</p><p>The distribution constructor application includes default scripts in the <tt>/usr/share/distro_const</tt> directory and subdirectories. These
+scripts are referenced in the finalizer section of the manifest files.</p><p>Some of the default finalizer scripts that are used to create an
+x86 Slim CD are as follows:</p><a name="scripttbl"></a><h6>Table&nbsp;2-3 x86 Slim CD Finalizer Scripts</h6><table><col width="50%"><col width="50%"><tr><th align="left" valign="top" scope="column"><p>Finalizer Script</p></th>
+<th align="left" valign="top" scope="column"><p>Description</p></th>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>pre_boot_archive_pkg_image_mod</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Modifies image area for all types of
+images</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>slim_cd/slimcd_pre_boot_archive_pkg_image_mod</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Modifies image area, specifically for Slim CD image</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>slim_cd/slimcd_gen_cd_content</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Generates the list of files
+that are part of the Slim Live CD image</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>boot_archive_initialize.py</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Initializes the boot archive
+</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>slim_cd/slimcd_boot_archive_configure</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Configures the boot archive, specifically for the Slim CD image</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>boot_archive_configure</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Configures the boot
+archive </p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>boot_archive_archive.py</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Archives the boot archive</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>slim_cd/slimcd_post_boot_archive_pkg_image_mod</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Makes post-build modifications to the boot archive image
+area, specifically for Slim CD image</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>grub_setup</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Initializes the Grub menu</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>post_boot_archive_pkg_image_mod</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Makes post-build modifications to the
+boot archive image area</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>create_iso</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Creates an ISO image</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>create_usb</tt></p></td>
+<td align="left" valign="top" scope="row"><p>Creates a USB image</p></td>
+</tr>
+</table>
+
+<a name="customscripts"></a><h4>Creating Custom Finalizer Scripts</h4>
+<p>It is recommended that you use the supplied finalizer scripts without editing them.
+You do, however, have the option to write and add your own
+scripts to perform additional operations as described below. If you do create new scripts,
+edit the manifest files to point to these new scripts.</p>
+<hr><p><b>Note - </b>Support for scripts is limited to the unmodified, default scripts that are supplied
+with the application packages. If you choose to customize these scripts, back up
+the original scripts first.</p>
 <hr>
 
-
-<a name="customscripts"></a><h4>Customizing Finalizer Scripts</h4>
-<p>You can use the default scripts without editing them. However, you can also
-create custom scripts to perform additional tasks as follows: </p>
-<ol><li><p>Create new scripts by using the existing scripts as models for your new scripts. Review the characteristics of finalizer scripts as described below. Also, see the custom script examples that are provided below.</p></li>
-<li><p>Add your new scripts to the <tt>/usr/share/distro_const</tt> directory or anywhere on the system or network. Make sure that root can execute these scripts.</p></li>
+<ol><li><p>Plan your new scripts. Use the existing scripts as models for new scripts. Review the <a href="#characteristics">Characteristics of Finalizer Scripts</a>.</p><p>See, also, the following sample custom scripts:</p>
+<ul><li><p><a href="addimage.html">Sample Script for Adding Packages to an Image</a></p></li>
+<li><p><a href="testpkg.html">Sample Script for Testing Alternate Packages</a></p></li>
+<li><p><a href="addpkg.html">Sample Script for Adding an SVR4 Package to an Image</a></p></li></ul>
+</li>
+<li><p>Create your new scripts.</p></li>
+<li><p>Add your new scripts to either the <tt>/usr/local/</tt> directory, your home directory, or elsewhere on the system or network. Make sure that the root user can execute these scripts.</p></li>
 <li><p>Add the new script names in the finalizer section of the appropriate manifest file. Be sure to specify the full path to your scripts in the manifest file, even if they are in the <tt>/usr/share/distro_const</tt> directory.</p></li>
 <li><p>When you add a reference for a new script in the finalizer section of a manifest file, you must specify a checkpoint name that is used to pause the image build before or after this script performs its task. Optionally, you can include a custom message associated with the checkpoint name. If this message is omitted, the path of the script is used as the default checkpoint message.</p>
-<hr><p><b>Note - </b>Use meaningful names for checkpoint names instead of using numbers. If new scripts are added, the new steps for those new scripts will disrupt a prior numbered checkpoint order. </p>
+<hr><p><b>Note - </b>Use meaningful names for checkpoint names instead of using numbers. If new scripts are added, the new steps for those new scripts will disrupt a numbered checkpoint order.</p>
 <hr>
-<p>For example, the following reference in a manifest file specifies the checkpoint name of &ldquo;br-arch&rdquo; for a boot root archiving script, and the associated message is &ldquo;Boot root archiving.&rdquo;</p><pre><tt>&lt;script name="/usr/share/distro_const/bootroot_archive.py"></tt>
-<tt>&lt;checkpoint name="br-arch" message="Boot root archiving"/></tt></pre><p>In this example, when you build your image, you could refer to the &ldquo;br-arch&rdquo; checkpoint in the <tt>distro_const</tt> command. This checkpoint would enable you to pause building the image just before the boot root archiving script performs its task.</p><p>For instructions about how to refer to checkpoints in the <tt>distro_const</tt> command, see <a href="distro_const.html#checkpoint">Using Checkpointing to Create an Image</a>.</p><p>To see further examples of finalizer script references, see the finalizer section of the <a href="manifestfile.html">Slim CD Manifest File</a>.</p></li></ol>
+<p>For example, the following reference in a manifest file specifies the checkpoint name of &ldquo;ba-arch&rdquo; for a boot archive archiving script, and the associated message is &ldquo;Boot archive archiving.&rdquo;</p><pre><tt>&lt;script name="/usr/share/distro_const/boot_archive_archive.py"></tt>
+<tt>&lt;checkpoint name="ba-arch" message="Boot archive archiving"/></tt>
+<tt>&lt;/script></tt></pre><p>This example allows you to specify a <tt>distro_const</tt> command to build your image, pausing or resuming from the &ldquo;ba-arch&rdquo; checkpoint. The build will pause just before the boot archive archiving script performs its task.</p><p>For instructions about how to refer to checkpoints in the <tt>distro_const</tt> command, see <a href="distro_const.html#checkpoint">Building an Image in Stages</a>.</p></li></ol>
 
 
 <a name="characteristics"></a><h5>Characteristics of Finalizer Scripts</h5>
-<p>When you create your own scripts, note the following characteristics of the finalizer
-scripts:</p>
+<p>When you create your own finalizer scripts, note the following:</p>
 <ul><li><p>Scripts can be Python programs, shell scripts, or binaries.</p></li>
 <li><p>Scripts are executed in the order that they are listed in the manifest file.</p></li>
-<li><p>The <tt>stdout</tt> and <tt>stderr</tt> information for the scripts is captured in the log files.</p></li>
-<li><p>The <tt>argslist</tt>, which can accept a list of items, uses double-quotes to delimit the list arguments. When no double-quotes are used, or if one set of double-quotes envelopes the entire string, the entire string including spaces and newlines is interpreted as one argument. Do not use commas between arguments.</p></li>
-<li><p>The distribution constructor passes five initial arguments to all scripts which are executed. These five arguments are not included as entries in the manifest file. The manifest file specifies additional arguments passed in after these five arguments. The initial arguments are as follows:</p></li></ul>
-<h6>Table&nbsp;3-2 Finalizer Script Arguments</h6><table><col width="18%"><col width="81%"><tr><th align="left" valign="top" scope="column"><p>Argument</p></th>
+<li><p>Standard output (<tt>stdout</tt>) and error output (<tt>stderr</tt>) of commands executed within finalizer scripts (both shell and python modules) are captured in the log files. <tt>stderr</tt> is captured in the simple log. Both <tt>stdout</tt> and <tt>stderr</tt> are captured in the detail log.</p></li>
+<li><p>The distribution constructor passes five initial arguments to all scripts that are executed. These five arguments are not included as entries in the manifest file. The manifest file specifies additional arguments passed in after these five arguments. The initial arguments are as follows.</p></li></ul>
+<h6>Table&nbsp;2-4 Finalizer Script Arguments</h6><table><col width="18%"><col width="81%"><tr><th align="left" valign="top" scope="column"><p>Argument</p></th>
 <th align="left" valign="top" scope="column"><p>Description</p></th>
 </tr>
 <tr><td align="left" valign="top" scope="row"><p>Server socket file name</p></td>
 <td align="left" valign="top" scope="row"><p>The first argument is the manifest reader socket. This
 argument specifies the socket that is used with <tt>/usr/bin/ManifestRead</tt> for accessing the manifest data.
-See the section below about <a href="#manifestreader">Using the <tt>ManifestReader</tt></a>.</p></td>
+See the section about <a href="#manifestreader">Using the Manifest Reader</a>.</p></td>
 </tr>
 <tr><td align="left" valign="top" scope="row"><p>Package image area path</p></td>
-<td align="left" valign="top" scope="row"><p>The second argument is
-the <tt>PKG_IMG_PATH</tt>, which specifies the path to the area where the package image
-is created. Use this argument to locate a file in the package image
-area. The  following example checks whether the user &ldquo;jack&rdquo; is in the
-password file.</p><pre>PKG_IMG_PATH=$2
+<td align="left" valign="top" scope="row"><p>The second argument is the
+<tt>PKG_IMG_PATH</tt>, which specifies the path to the area where the package image is
+created. Use this argument to locate a file in the package image area.
+The following example checks whether the user, &ldquo;jack,&rdquo; is in the package image
+area's password file.</p><pre>PKG_IMG_PATH=$2
 /usr/bin/grep jack $PKG_IMG_PATH/etc/passwd >/dev/null
 if [[ $? == "0" ]] ; then
    print "Found Jack"
 fi </pre></td>
 </tr>
 <tr><td align="left" valign="top" scope="row"><p>Temp directory</p></td>
-<td align="left" valign="top" scope="row"><p>The third argument specifies a directory that is used when
-creating temporary files needed during the build process.  In the following example, we
-want to create a file in the temporary directory for building the
-boot root.</p><pre>TMP_DIR=$3
-/usr/sbin/mkfile $TMP_DIR/bootroot_archive
-/usr/sbin/lofiadm -a $TMP_DIR/bootroot_archive </pre></td>
+<td align="left" valign="top" scope="row"><p>The third argument specifies a directory that is used
+when creating temporary files needed during the build process.  In the following
+example, you create a file in the temporary directory for building the boot
+archive.</p><pre>TMP_DIR=$3
+/usr/sbin/mkfile $TMP_DIR/boot_archive_archive
+/usr/sbin/lofiadm -a $TMP_DIR/boot_archive_archive </pre></td>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p>Bootroot build area</p></td>
-<td align="left" valign="top" scope="row"><p>The fourth argument is the boot root build area, where
-the boot root files are gathered.  See the following example from the
-<tt>bootroot_archive.py</tt> module. The module references the boot root build area in order
-to size the boot root before creating the archive.</p><pre>BR_BUILD = sys.argv[4]          # Bootroot build area
+<tr><td align="left" valign="top" scope="row"><p>Boot archive build area</p></td>
+<td align="left" valign="top" scope="row"><p>The fourth argument is the boot archive build area,
+where the boot archive files are gathered.  See the following example from
+the <tt>boot_archive_configure</tt> module, which adds the file, <tt>/etc/nodename</tt>, to the boot archive. This
+file gives the system the hostname, &ldquo;opensolaris.&rdquo;</p><pre>BR_BUILD=$4      # Boot archive build area
 
-print "Sizing bootroot requirements..."
-cmd = /usr/bin/du + " -sk " + BR_BUILD + " | " + /usr/bin/awk + " '{print $1}'"
-bootroot_size = int(Popen(cmd, shell=True,
-   stdout=PIPE).communicate()[0].strip()) </pre></td>
+# Set nodename to opensolaris
+echo "opensolaris" > $BR_BUILD/etc/nodename</pre></td>
 </tr>
 <tr><td align="left" valign="top" scope="row"><p>Media area</p></td>
-<td align="left" valign="top" scope="row"><p>The fifth argument specifies
-where the finished media is deposited.  In the following example, the <tt>create_iso</tt>
-script uses this argument to place the resultant ISO image.</p><pre>MEDIA_DIR=$5
+<td align="left" valign="top" scope="row"><p>The fifth argument specifies where
+the finished media is deposited.  In the following example, the <tt>create_iso</tt> script
+uses this argument to place the resultant ISO image.</p><pre>MEDIA_DIR=$5
 ...
 DIST_ISO=${MEDIA_DIR}/${DISTRO_NAME}.iso
 ... </pre></td>
 </tr>
 <tr><td align="left" valign="top" scope="row"><p>Additional arguments</p></td>
-<td align="left" valign="top" scope="row"><p>A list of
-additional arguments to be passed into a script is tagged in the manifest
-with the <tt>&lt;argslist></tt> tag. The first of these arguments is  passed in
-as <tt>arg6</tt>.</p><p>In the following example from the <tt>slim_cd.xml</tt> manifest file, two additional arguments
-are passed to the <tt>bootroot_configure</tt> script, as <tt>arg6</tt> and <tt>arg7</tt>:</p><pre>&lt;argslist>
+<td align="left" valign="top" scope="row"><p>A list of additional
+arguments to be passed into a script is tagged in the manifest with
+the <tt>&lt;argslist></tt> tag. The first of these arguments is  passed in as
+<tt>arg6</tt>. Enclose each list item in double-quotes.  When no double-quotes are used,
+or if one set of double-quotes encloses the entire string, the entire string
+including spaces and newlines is interpreted as one argument.  Do not use
+commas between arguments.</p><p>In the following example from the <tt>slim_cd_x86.xml</tt> manifest file, two
+additional arguments are passed to the <tt>boot_archive_configure</tt> script, as <tt>arg6</tt> and <tt>arg7</tt>:</p><pre>&lt;argslist>
      "/usr/share/distro_const/slim_cd/slimcd_generic_live.xml"
      ".livecd"
-&lt;/argslist></pre><p>Another method for
-specifying additional arguments is to use key-value pairs. See the following section.</p></td>
+&lt;/argslist></pre><p>Another
+method for specifying additional arguments is to use key-value pairs. See the following
+section.</p></td>
 </tr>
 </table>
 
-<a name="manifestreader"></a><h5>Using the <tt>ManifestReader</tt></h5>
-<p>The distribution constructor passes the manifest reader socket argument into finalizer scripts. This
-argument specifies the socket that is used with <tt>/usr/bin/ManifestRead</tt> for accessing the
-manifest data.</p><p>The following example calls <tt>ManifestRead</tt> to request the <tt>name</tt> item from the manifest
-file. <tt>ManifestRead</tt> returns zero or more items, each on its own line.
- If <tt>ManifestRead</tt> is given multiple items to search for, the lines
+<a name="manifestreader"></a><h5>Using the Manifest Reader</h5>
+<p>The distribution constructor passes the manifest reader socket as the first argument into
+finalizer scripts.  In a finalizer shell script, pass this argument as the
+first argument to <tt>/usr/bin/ManifestRead</tt> for accessing the manifest data.  In a
+python module, pass this argument to instantiate a ManifestRead() object.</p><p>The following Shell script example calls <tt>ManifestRead</tt> to request the <tt>name</tt> item
+from the manifest file. <tt>ManifestRead</tt> returns zero or more items, each on
+its own line. If <tt>ManifestRead</tt> is given multiple items to search for, the lines
 returned contain both the item being searched for and a result.</p><pre>MFEST_SOCKET=$1
 
 VOLNAME=`/usr/bin/ManifestRead ${MFEST_SOCKET} "name"`
@@ -184,362 +226,37 @@
        print -u2 "$0: Error retrieving volume ID"
        exit 1
 fi</pre><p>The following example shows how to make use of <tt>ManifestRead</tt> from a
-python script:</p><pre>from <tt>osol_install.ManifestRead</tt> import <tt>ManifestRead</tt>
+Python script:</p><pre>from <tt>osol_install.ManifestRead</tt> import <tt>ManifestRead</tt>
 
 # get the manifest reader object from the socket
 manifest_reader_obj = ManifestRead(MFEST_SOCKET)
 
-# get bootroot compression type
+# get boot_archive compression type
 
 BR_COMPR_TYPE = get_manifest_value(manifest_reader_obj,
-   "img_params/output_image/bootroot/compression/type")
+   "img_params/output_image/boot_archive/compression/type")
 if (BR_COMPR_TYPE == None):
        raise Exception, (sys.argv[0] +
-           ": bootroot compression type missing from manifest")</pre>
+           ": boot_archive compression type missing from manifest")</pre>
 
 <a name="keyvalue"></a><h5>Specifying Key-Value Pairs</h5>
 <p>Another method for passing arguments into scripts is to specify a key-value pair.
 This method is useful for passing the same argument into multiple scripts without
 duplication. A script can access a keyed value by specifying the key to
 <tt>/usr/bin/ManifestRead</tt> from within the script. Provide the server socket as the first argument
-and then provide the nodepaths to the items whose values are needed, as
-in the following examples.</p><h6>Example&nbsp;3-1 Shell Script</h6><pre>...
+and then provide the node paths to the items whose values are needed,
+as in the following examples.</p><h6>Example&nbsp;2-1 Shell Script</h6><p>The following example calls <tt>ManifestRead</tt> from a shell script to obtain a keyed
+value.</p><pre>...
   MFEST_SOCKET=$1
   ...
   /usr/bin/ManifestRead -k $MFEST_SOCKET iso_sort
-  iso_sort_file=`/usr/bin/ManifestRead $MFEST_SOCKET iso_sort`</pre><p>The above example calls <tt>ManifestRead</tt> from a shell script to get a keyed
-value as in this sample script.</p><h6>Example&nbsp;3-2 Python Script</h6><pre>from <tt>osol_install.ManifestRead</tt> import <tt>ManifestRead</tt>
+  iso_sort_file=`/usr/bin/ManifestRead $MFEST_SOCKET iso_sort`</pre><h6>Example&nbsp;2-2 Python Script</h6><p>The following example calls <tt>ManifestRead</tt> from Python to obtain the same keyed value.</p><pre>from <tt>osol_install.ManifestRead</tt> import <tt>ManifestRead</tt>
 
 ...
   IS_KEY = True
 
   iso_sort_file = manifest_reader_obj.get_values("iso_sort", IS_KEY)
-  fd = open(iso_sort_file,....)</pre><p>The above example calls <tt>ManifestRead</tt> from python to get the same keyed value.</p>
-
-<a name="gentextid-622"></a><h4>Examples of Custom Finalizer Scripts</h4>
-<p>The following examples illustrate some practical applications for custom finalizer scripts.</p>
-
-<a name="gentextid-625"></a><h5>Adding Packages</h5>
-<p>When putting together an image, you can experiment with how an image works
-when packages are added or removed from a working set. This type
-of experimentation is supported by the distribution constructor. Additional packages can be added to
-the existing list in the <tt>package</tt> section of a manifest file. And, packages
-that you want to remove can be added to the <tt>post_install_remove_package</tt> section. After
-you made your modifications to the manifest file to add or remove packages,
-you need to restart the build process from the beginning, and re-download all
-the packages. That can take time. You can do these modifications more rapidly
-by using finalizer scripts.</p><p>The following custom script adds an IPS package to the image from
-an alternate repository specified in the manifest file. The package is added to the
-package image area. The name of the package to add is included
-in the script. This example also demonstrates how to use the <tt>ManifestRead</tt> program
-to get values from the manifest file.</p><h6>Example&nbsp;3-3 Script for Adding Packages</h6><pre>#!/bin/ksh
-#
-#
-# Args:
-#
-#   5 arguments are passed in by default from the DC.
-#
-#   MFEST_SOCKET: Socket needed to get manifest data via ManifestRead object
-#   PKG_IMG_PATH: Package image area
-#   TMP_DIR: Temporary directory 
-#   BR_BUILD: Area where bootroot is put together (not used in this example)
-#   MEDIA_DIR: Area where the media is put (not used)
-#
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-if [ "$#" != "5" ] ; then
-        print -u2 "Usage: $0: Requires 5 args:"
-        print -u2 "    Reader socket, pkg_image area, tmp dir,"
-
-        print -u2 "    bootroot build area, media area"
-        exit 1
-fi
-
-MFEST_SOCKET=$1
-
-PKG_IMG_PATH=$2
-if [ ! -d $PKG_IMG_PATH ] ; then
-        print -u2 "$0: Image package area $PKG_IMG_PATH is not valid"
-        exit 1
-fi
-
-PKGCMD="/bin/pkg"
-
-#Hard code package to install
-TEST_PKGS="SUNWcdrw"
-
-#
-# You would have specified the additional repository like this in the manifest
-#
-#                 
-#   &lt;pkg_repo_addl_authority>
-#        &lt;main url="http://localhost:10000" authname="localtest"/>
-#   &lt;/pkg_repo_addl_authority>
-
-# Get the alternate repository URL from the manifest
-add_url=/usr/bin/ManifestRead ${MFEST_SOCKET} \
-"distro_constr_params/pkg_repo_addl_authority/main/url"
-
-# Get the alternate repository authority from the manifest
-add_auth=/usr/bin/ManifestRead ${MFEST_SOCKET} \
-"distro_constr_params/pkg_repo_addl_authority/main/authname"
-
-added_authority=0
-
-#
-# Check to see if authority is already set in the package image area
-# if not, add it in
-#
-${PKGCMD} -R $PKG_IMG_PATH authority $add_auth > /dev/null 2>&amp; 1
-if [ $? != 0 ] ; then
-        ${PKGCMD} -R $PKG_IMG_PATH  set-authority -O ${add_url} ${add_auth}
-        added_authority=1
-fi
-
-if [$? != "0" ] ; then
-        print -u2 "$0: Unable to set additional authority"
-        exit 1
-fi
-
-for t in ${TEST_PKGS} ; do
-        pkg_name="pkg://${add_auth}/${t}"
-        ${PKGCMD} -R $PKG_IMG_PATH install ${pkg_name}
-        if [$? != "0" ] ; then
-                print -u2 "$0: Unable to install ${pkg_name}"
-
-                exit 1
-        fi
-done
-
-# if we have added the additional authority, unset it so it doesn't pollute what's
-# originally there
-if [ $added_authority == 1 ] ; then
-         ${PKGCMD} -R $PKG_IMG_PATH  unset-authority ${add_auth}
-fi
-
-return 0</pre><p>Because this type of finalizer script adds or removes packages from the package
-image area, you must reference the script as the first finalizer script in
-the <tt>&lt;finalizer></tt> section of the manifest file. Include in this reference a checkpoint
-name that indicates the point in the image-building process where you want to
-restart the build to test your added package.</p><p>For example, if you have created a script, <tt>export/home/user1/test_my_pkg</tt>, to test your
-custom package, you would reference the script as follows in the finalizer section
-of the manifest file. Note that a checkpoint, named &ldquo;my_test,&rdquo; indicates where the
-build will restart.</p><pre>&lt;finalizer>
-      &lt;script name="/export/home/user1/test_my_pkg">
-           &lt;checkpoint name="my_test" message="Running my test package"
-      &lt;/script>
-      &lt;script name="/usr/share/distro_const/pre_bootroot_pkg_image_mod">
-           &lt;checkpoint name="im-mod" message="Image area modifications"/>
-      &lt;/script>
-      ........
-&lt;/finalizer></pre><p>After you made the changes to the manifest file to reference your
-new script, you can start building your image from the beginning once. After
-that, if you make any changes to your package, you do not need
-to restart from the beginning . You can generate an image with your
-modified package by starting at the checkpoint that runs your script.</p><p>The following are the sequence of commands a user would execute to
-repeatedly test their modifications to packages.</p>
-<ol><li><p>Run the build from the beginning after modifying the manifest. Do this only once.</p><pre><tt>distro_const build <i>/my_updated_manifest.xml</i></tt></pre></li>
-<li><p>Check steps that are resumable.</p><pre><tt>distro_const build <tt>-l</tt> <i>/my_updated_manifest.xml</i></tt></pre></li>
-<li><p>Restart from the step of your package modification. You can restart from this step as many times as you need while you debugging your modified contents.</p><pre><tt>distro_const build <tt>-r</tt> <i>my_test /my_updated_manifest.xml</i></tt></pre></li></ol>
-<p>For further information about using the <tt>distro_const</tt> command with checkpointing options, as
-demonstrated in this example, see <a href="distro_const.html#checkpoint">Using Checkpointing to Create an Image</a>.</p>
-
-<a name="gentextid-663"></a><h5>Testing Packages</h5>
-<p>When a particular package is specified in the <tt>package</tt> section of a
-manifest file, that package is installed in the package image area by the
-distribution constructor. If you have an alternate version of this package, such as
-your own private copy of a package, you could test this version of
-the package by using a custom finalizer script. The finalizer script would replace
-the previously installed version of the package with a test version from an
-alternate repository.</p><p>In the following custom script, an IPS repository server is running on <tt>http://localhost:10000</tt>.
-The name of the package to replace is passed as an argument. The
-script first uninstalls the existing version of the package, then installs the test
-version from the alternate repository. This custom script also demonstrates how to get
-arguments passed in as finalizer script arguments. Note the comments in the script
-that explain how the script accomplishes these tasks.</p><h6>Example&nbsp;3-4 Script for Testing an Alternate Package</h6><pre>#!/bin/ksh
-#
-#
-# Args:
-#
-#   These Arguments are passed in by default from the DC.
-#
-#   MFEST_SOCKET: Socket needed to get manifest data via ManifestRead object \
-# (not used in this example)
-#   PKG_IMG_PATH: Package image area
-#   TMP_DIR: Temporary directory
-#   BR_BUILD: Area where bootroot is put together (not used in this example)
-#   MEDIA_DIR: Area where the media is put (not used)
-#   PKG_NAMES: Package to replace with one from the test repo. 
-#
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-if [ "$#" != "6" ] ; then
-        print -u2 "Usage: $0: Requires 6 args:"
-
-        print -u2 "    Reader socket, pkg_image area, tmp dir,"
-        print -u2 "    bootroot build area, media area, pkg_name"
-        exit 1
-fi
-
-
-PKG_IMG_PATH=$2
-if [ ! -d $PKG_IMG_PATH ] ; then
-        print -u2 "$0: Image package area $PKG_IMG_PATH is not valid"
-        exit 1
-fi
-
-PKGCMD="/bin/pkg"
-
-#The test packages are passed in as arguments to this finalizer script
-#You would have specified the argument like this in the finalizer section
-#to pass in the argument
-#
-#
-#  &lt;finalizer>
-#       &lt;script name="/my/update_my_pkg_test">
-#               &lt;checkpoint name="update-pkg" message= \
-"Replaces an existing package with my own"/>
-#                    &lt;argslist>
-
-#                       "SUNWcdrw"
-#                    &lt;/argslist>
-#        &lt;/script>
-#  &lt;/finalizer>
-#
-TEST_PKG=$6
-
-#hard code alternate repository and authority.  Assume that my test package resides in
-#a repository running on port 10000 of the localhost.
-
-# Get the alternate repository URL from the manifest
-add_url="http://localhost:10000"
-
-# Get the alternate repository authority from the manifest
-add_auth="MY_TEST"
-
-added_authority=0
-
-# Check to see if authority is already set in the package image area, if not,
-# add it in
-${PKGCMD} -R $PKG_IMG_PATH authority $add_auth > /dev/null 2>&amp; 1
-if [ $? != 0 ] ; then
-        ${PKGCMD} -R $PKG_IMG_PATH  set-authority -O ${add_url} ${add_auth}
-        added_authority=1
-fi
-
-
-if [$? != "0" ] ; then
-        print -u2 "$0: Unable to set additional authority"
-        exit 1
-fi
-
-# Remove the package that's currently in the package image area.
-${PKGCMD} -R $PKG_IMG_PATH uninstall ${TEST_PKG}
-if [$? != "0" ] ; then
-        print -u2 "$0: Unable to uninstall ${TEST_PKG}"
-        exit 1
-fi
-
-# Install the package from test repo
-pkg_name="pkg://${add_auth}/${TEST_PKG}"
-
-${PKGCMD} -R $PKG_IMG_PATH install ${pkg_name}
-if [$? != "0" ] ; then
-        print -u2 "$0: Unable to install ${pkg_name}"
-        exit 1
-fi
-
-# if we have added the additional authority, unset it so it doesn't pollute what's
-# originally there
-if [ $added_authority == 1 ] ; then
-         ${PKGCMD} -R $PKG_IMG_PATH  unset-authority ${add_auth}
-fi
-
-return 0</pre>
-
-<a name="gentextid-672"></a><h5>Adding a SVR4 Package</h5>
-<p>If you have a package that is in SVR4 format, you can
-test that package in an image before you convert it into an IPS
-package. You can use a finalizer script to add the content of a
-SVR4 package to the image. See the following custom script and note the
-comments in the script that explain how the script accomplishes this task.</p><h6>Example&nbsp;3-5 Script for Adding a SVR4 Package</h6><pre>#!/bin/ksh
-#
-#
-# Args:
-#
-#   5 arguments are passed in by default from the DC.
-#
-#   MFEST_SOCKET: Socket needed to get manifest data via ManifestRead object (not used)
-#   PKG_IMG_PATH: Package image area
-#   TMP_DIR: Temporary directory
-#   BR_BUILD: Area where bootroot is put together (not used in this example)
-#   MEDIA_DIR: Area where the media is put (not used)
-#
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-if [ "$#" != "5" ] ; then
-        print -u2 "Usage: $0: Requires 5 args:"
-
-        print -u2 "    Reader socket, pkg_image area, tmp dir,"
-        print -u2 "    bootroot build area, media area, pkg_name"
-        exit 1
-fi
-
-PKG_IMG_PATH=$2
-if [ ! -d $PKG_IMG_PATH ] ; then
-        print -u2 "$0: Image package area $PKG_IMG_PATH is not valid"
-        exit 1
-fi
-
-TMP_DIR=$3
-
-#
-# Install a SVR4 packages into the package image area
-#
-
-#create an admin file for non-interactive pkgadd's
-
-ADMIN_FILE=${TMP_DIR}/admin.$$
-cat &lt;&lt; \ADMIN_EOF > $ADMIN_FILE
-mail=
-instance=unique
-partial=nocheck
-runlevel=nocheck
-idepend=nocheck
-rdepend=nocheck
-space=nocheck
-setuid=nocheck
-conflict=nocheck
-action=nocheck
-networktimeout=60
-networkretries=3
-authentication=quit
-keystore=/var/sadm/security
-proxy=
-basedir=default
-ADMIN_EOF
-
-#
-# Path to your new packages
-#
-PKG_PATH=/path/to/my/test/svr4_pkg
-
-#
-# Test package name 
-#
-SVR4_TEST_PKG=SUNWmy-test
-
-/usr/sbin/pkgadd -n -a ${ADMIN_FILE} -d $PKG_PATH -R ${PKG_IMG_PATH} ${SVR4_TEST_PKG}
-
-if [ $? != "0" ] ; then
-        echo "installing package failed"
-
-        exit 1
-fi
-
-/bin/rm ${ADMIN_FILE}
-
-return 0</pre>
+  fd = open(iso_sort_file,....)</pre>
          </div>
       </td>
    </tr>
--- a/usr/src/cmd/distro_const/docs/sysreq.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/sysreq.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>System Requirements - OpenSolaris Distribution Constructor Guide</title>
+<title>System Requirements - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -32,10 +35,10 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="setup.html">Previous</a>
+                 <a href="using.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="files.html">Next</a>
+                 <a href="manifest.html">Next</a>
              </td>
            </tr>
          </table>
@@ -45,13 +48,17 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<div class="onpage">
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<div id="scrolltoc" class="onpage">
 <p class="toc level2"><a href="">System Requirements</a></p>
 </div>
-<p class="toc level2"><a href="files.html">Distribution Constructor Files</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level2"><a href="manifest.html">Customize Your Image by Editing the Manifests</a></p>
+<p class="toc level2"><a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a></p>
+<p class="toc level2"><a href="distro_const.html">Building an Image</a></p>
+<p class="toc level2"><a href="trouble.html">Troubleshooting</a></p>
+<p class="toc level2"><a href="addl.html">Additional Information</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
@@ -59,37 +66,33 @@
              
 
 <a name="sysreq"></a><h3>System Requirements</h3>
-<h6>Table&nbsp;2-1 System Requirements</h6><table><col width="28%"><col width="71%"><tr><th align="left" valign="top" scope="column"><p>Requirement</p></th>
+<p>In order to use the distribution constructor, you must have the following set
+up on your system.</p><h6>Table&nbsp;2-1 System Requirements</h6><table><col width="28%"><col width="71%"><tr><th align="left" valign="top" scope="column"><p>Requirement</p></th>
 <th align="left" valign="top" scope="column"><p>Description</p></th>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p>Disk Space</p></td>
+<tr><td align="left" valign="top" scope="row"><p>Disk space</p></td>
 <td align="left" valign="top" scope="row"><p>Confirm that you have sufficient space on your
 system to use the distribution constructor. The recommended minimum size for your distribution
 constructor work space is 8 Gbytes.</p></td>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p>OpenSolaris 2009.06 release</p></td>
-<td align="left" valign="top" scope="row"><p>Install the SPARC or x86 OpenSolaris
-2009.06 operating system (OS) on your system.</p><p>When using the distribution constructor, you can
-only create SPARC images on a SPARC system. And, you can only create
-x86 images on an x86 system.</p>
-<ul><li><p>X86 Slim CD images for the OpenSolaris 2009.06 operating system, also called Live CD images, can be downloaded from <a href="http://www.opensolaris.com/get/">http://www.opensolaris.com/get/</a>. For instructions about installing the OpenSolaris release from the Live CD onto your x86 system, see <a href="http://dlc.sun.com/osol/docs/content/2009.06/getstart/">Getting Started With OpenSolaris</a>.</p></li>
-<li><p>SPARC Slim CD images are not supported. However, you can use the automated installer to install the SPARC OpenSolaris OS on your system. For information about using the automated installer, see the <a href="http://dlc.sun.com/osol/docs/content/2009.06/AIinstall/">OpenSolaris Automated Installer Guide</a>.</p></li></ul>
+<tr><td align="left" valign="top" scope="row"><p>OpenSolaris 2009.06 or later release</p></td>
+<td align="left" valign="top" scope="row"><p>You must have the
+SPARC or x86 OpenSolaris 2009.06 operating system (OS), or later release, installed on
+your system. Note the following:</p>
+<ul><li><p>Your installed OpenSolaris system must have network access. The distribution constructor accesses Image Packaging System (IPS) repositories that are available on the network to retrieve packages for the ISO image. You must have network access to the repositories that you specify in the manifest file.</p></li>
+<li><p>When using the distribution constructor, you can only create SPARC images on a SPARC system. And, you can only create x86 images on an x86 system. Also, the OpenSolaris release version on your system must be the same as the release version of the AI images that you use with the distribution constructor.</p></li></ul>
 
-<hr><p><b>Note - </b>Your installed OpenSolaris system must have network
-access.</p><p>Specifically, the distribution constructor accesses Image Packaging System (IPS) repositories that are available
-on the network to retrieve packages for the ISO image. You must have
-network access to the repositories that you specify in the manifest file.</p><p>Also, note
-that you must run the distribution constructor as root.</p>
+<hr><p><b>Note - </b>You must run the distribution constructor as root.</p>
 <hr>
 </td>
 </tr>
-<tr><td align="left" valign="top" scope="row"><p>Required packages</p></td>
-<td align="left" valign="top" scope="row"><p>Install the <tt>SUNWdistro-const</tt> package,
-which contains the distribution constructor application, on your system.</p><p>You can use the Package
-Manager tool to install the required package. The Package Manager is available on
-the menu bar on the desktop of the OpenSolaris 2009.06 operating system. On
-the menu bar, go to System>Administration>Package Manager.</p><p>Alternately, use IPS commands such as the
-following to install this package:</p><pre># <tt>pkg install <i>SUNWdistro-const</i></tt></pre></td>
+<tr><td align="left" valign="top" scope="row"><p>Required
+packages</p></td>
+<td align="left" valign="top" scope="row"><p>Install the <tt>SUNWdistro-const</tt> package, which contains the distribution constructor application, on your system.</p><p>You
+can use the Package Manager tool to install the required package. The Package
+Manager is available on the menu bar on the desktop of the
+OpenSolaris operating system. On the menu bar, go to System>Administration>Package Manager.</p><p>Alternately, use IPS
+commands such as the following to install this package:</p><pre># <tt>pkg install SUNWdistro-const</tt></pre></td>
 </tr>
 </table>
          </div>
@@ -102,10 +105,10 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="setup.html">Previous</a>
+                 <a href="using.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="files.html">Next</a>
+                 <a href="manifest.html">Next</a>
              </td>
            </tr>
          </table>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/testpkg.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Sample Script for Testing Alternate Packages - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="addimage.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="addpkg.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+<p class="toc level2"><a href="addimage.html">Sample Script for Adding Packages to an Image</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Sample Script for Testing Alternate Packages</a></p>
+</div>
+<p class="toc level2"><a href="addpkg.html">Sample Script for Adding an SVR4 Package to an Image</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="testpkg"></a><h3>Sample Script for Testing Alternate Packages</h3>
+<p>When a particular package is specified in the <tt>package</tt> section of a
+manifest file, that package is installed in the package image area by the
+distribution constructor. If you have an alternate version of this package, such as
+your own private copy of a package, you could test this version of
+the package by using a custom finalizer script. The finalizer script would replace
+the previously installed version of the package with a test version from an
+alternate repository.</p><p>In the following custom script, an IPS repository server is running on <tt>http://localhost:10000</tt>.
+The name of the package to replace is passed as an argument. The
+script first uninstalls the existing version of the package, then installs the test
+version from the alternate repository. This custom script also demonstrates how to have
+arguments passed in as finalizer script arguments. Note the comments in the script
+that explain how the script accomplishes these tasks.</p><h6>Example&nbsp;A-2 Sample Script &mdash; Testing Packages</h6><pre>#!/bin/ksh
+#
+#
+# Name:
+# test_my_pkg
+#
+# Description:
+# This script will build an image using my test package
+# from my local repository. 
+#
+# Args:
+#
+#   These Arguments are passed in by default from the DC.
+#
+#   MFEST_SOCKET: Socket needed to get manifest data via ManifestRead object \
+# (not used in this example)
+#   PKG_IMG_PATH: Package image area
+#   TMP_DIR: Temporary directory
+#   BR_BUILD: Area where boot archive is put together (not used in this example)
+#   MEDIA_DIR: Area where the media is put (not used)
+#   TEST_PKG: Package to replace with one from the test repo
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+if [ "$#" != "6" ] ; then
+        print -u2 "Usage: $0: Requires 6 args:"
+
+        print -u2 "    Reader socket, pkg_image area, tmp dir,"
+        print -u2 "    boot archive build area, media area, pkg_name"
+        exit 1
+fi
+
+
+PKG_IMG_PATH=$2
+if [ ! -d $PKG_IMG_PATH ] ; then
+        print -u2 "$0: Image package area $PKG_IMG_PATH is not valid"
+        exit 1
+fi
+
+PKGCMD="/bin/pkg"
+
+#The test packages are passed in as arguments to this finalizer script
+#You would have specified the argument like this in the finalizer section
+#to pass in the argument
+#
+#
+#  &lt;finalizer>
+#       &lt;script name="/my/update_my_pkg_test">
+#               &lt;checkpoint name="update-pkg" message= \
+"Replaces an existing package with my own"/>
+#                    &lt;argslist>
+#                       "SUNWcdrw"
+#                    &lt;/argslist>
+#        &lt;/script>
+#  &lt;/finalizer>
+#
+TEST_PKG=$6
+
+# Assume that my test package resides in
+#a repository running on port 10000 of the localhost.
+
+# Specify  alternate repository URL
+add_url="http://localhost:10000"
+
+# Specify alternate repository authority
+add_auth="MY_TEST"
+# Check if authority is already set in the package image area, if not,
+# add it in
+
+added_authority=0
+
+${PKGCMD} -R $PKG_IMG_PATH authority $add_auth > /dev/null 2>&amp; 1
+if [ $? != 0 ] ; then
+        ${PKGCMD} -R $PKG_IMG_PATH  set-authority -O ${add_url} ${add_auth}
+        if [ $? != "0" ] ; then
+             print -u2 "$0: Unable to set additional authority"
+             exit 1
+        fi
+        added_authority=1
+fi
+
+
+if [ $? != "0" ] ; then
+        print -u2 "$0: Unable to set additional authority"
+        exit 1
+fi
+
+# Remove the package that's currently in the package image area.
+${PKGCMD} -R $PKG_IMG_PATH uninstall ${TEST_PKG}
+if [ $? != "0" ] ; then
+        print -u2 "$0: Unable to uninstall ${TEST_PKG}"
+        exit 1
+fi
+
+# Install the package from test repo
+pkg_name="pkg://${add_auth}/${TEST_PKG}"
+
+${PKGCMD} -R $PKG_IMG_PATH install ${pkg_name}
+if [ $? != "0" ] ; then
+        print -u2 "$0: Unable to install ${pkg_name}"
+        exit 1
+fi
+
+# if we have added the additional authority, unset it so it doesn't pollute what's
+# originally there
+if [ $added_authority == 1 ] ; then
+         ${PKGCMD} -R $PKG_IMG_PATH  unset-authority ${add_auth}
+fi
+
+exit 0</pre>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="addimage.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="addpkg.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- a/usr/src/cmd/distro_const/docs/trouble.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/trouble.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Troubleshooting - OpenSolaris Distribution Constructor Guide</title>
+<title>Troubleshooting - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -32,7 +35,7 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="command.html">Previous</a>
+                 <a href="distro_const.html">Previous</a>
              </td>
              <td align="right">
                  <a href="addl.html">Next</a>
@@ -45,17 +48,17 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="using.html">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
-<p class="toc level2"><a href="manifest.html">Editing the Manifest Files</a></p>
-<p class="toc level2"><a href="scripts.html">Using the Finalizer Scripts</a></p>
-<p class="toc level2"><a href="distro_const.html">Creating an Image</a></p>
-<p class="toc level2"><a href="command.html"><tt>distro_const</tt> Command Reference</a></p>
-<div class="onpage">
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level2"><a href="sysreq.html">System Requirements</a></p>
+<p class="toc level2"><a href="manifest.html">Customize Your Image by Editing the Manifests</a></p>
+<p class="toc level2"><a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a></p>
+<p class="toc level2"><a href="distro_const.html">Building an Image</a></p>
+<div id="scrolltoc" class="onpage">
 <p class="toc level2"><a href="">Troubleshooting</a></p>
 </div>
 <p class="toc level2"><a href="addl.html">Additional Information</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
@@ -70,10 +73,10 @@
 connection with the IPS server is stable. Sometimes, IPS times out when trying
 to download a big cluster of packages. To check outside of the distribution
 constructor environment, try to mimic what the constructor does in terms of installing
-packages. Try the following commands as root, and make sure they work correctly.</p><pre><tt>pkg image-create <tt>-F</tt> <tt>-a</tt> <i>opensolaris.org=http://pkg.opensolaris.org</i> <i>/tmp/test_img</i></tt>
-<tt>pkg <tt>-R</tt> <i>/tmp/test_img install SUNWcsd</i></tt>
-<tt>pkg <tt>-R</tt> <i>/tmp/test_ima</i> <i>install</i> <i>SUNWcs</i></tt>
-<tt>pkg <tt>-R</tt> <i>/tmp/test_img</i> <i>install</i> <i>slim_install</i></tt></pre>
+packages. Try the following commands as root, and make sure they work correctly.</p><pre><tt>pkg image-create <tt>-F</tt> <tt>-a</tt> opensolaris.org=http://pkg.opensolaris.org</tt>
+<tt>pkg <tt>-R</tt> /tmp/test_img install SUNWcsd</tt>
+<tt>pkg <tt>-R</tt> /tmp/test_ima install SUNWcs</tt>
+<tt>pkg <tt>-R</tt> /tmp/test_img install slim_install</tt></pre>
 
 <a name="manerr"></a><h4>How to Debug Manifests With Validation Errors</h4>
 <p>If a manifest does not validate, as could be the case after
@@ -91,9 +94,9 @@
   -t: save temporary file 
       Temp file is "/tmp/&lt;manifest_basename>_temp_&lt;pid> 
   -v: verbose defaults/validation output 
-  -s: start socket server for use by ManifestRead </pre><p>The distribution constructor validates the manifest against an XML schema and a <tt>defval</tt>
-manifest.  <tt>ManifestServ</tt> enables you to perform a manual validation, using a
-verbose mode which shows where any problems are.</p><a name="mantbl2"></a><h6>Example&nbsp;3-6 Debugging Schema Validation Errors</h6><p>The following example demonstrates a case where the manifest didn't validate against the
+  -s: start socket server for use by ManifestRead </pre><p>The distribution constructor validates the manifest against an XML schema and a default
+manifest.  <tt>ManifestServ</tt> enables you to perform a manual validation, using a verbose
+mode which shows where any problems are.</p><a name="mantbl2"></a><h6>Example&nbsp;2-3 Debugging Schema Validation Errors</h6><p>The following example demonstrates a case where the manifest didn't validate against the
 schema.  The boldface message below indicates this is a schema validation error.</p><pre># distro_const build my_distro.xml 
 /usr/share/distro_const/DC-manifest.defval.xml validates 
 /tmp/all_lang_slim_cd_x86_temp_7861.xml:350: element pair: 
@@ -104,7 +107,7 @@
 <b>Error validating manifest against schema /usr/share/distro_const/DC-manifest.rng </b>
 # </pre><p>Run <tt>ManifestServ</tt>, <tt>/usr/bin/ManifestServ</tt>, specifying the <tt>-t</tt> option, in order to save the
 temporary file, and the <tt>-v</tt> option, in order to provide verbose output which will
-have the line number of the error.</p><pre>$ <tt>ManifestServ <tt>-f</tt> <i>/usr/share/distro_const/DC-manifest</i> <tt>-t</tt> <tt>-v</tt> <i>manifest_file</i></tt></pre><pre>ManifestServ -f /usr/share/distro_const/DC-manifest -t -v my_distro.xml 
+have the line number of the error.</p><pre># <tt>ManifestServ <tt>-f</tt> /usr/share/distro_const/DC-manifest <tt>-t</tt> <tt>-v</tt> manifest_file</tt></pre><pre>ManifestServ -f /usr/share/distro_const/DC-manifest -t -v my_distro.xml 
 /usr/share/distro_const/DC-manifest.defval.xml validates 
 Checking defaults for name 
 Checking defaults for distro_constr_params/distro_constr_flags/stop_on_error 
@@ -168,7 +171,7 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="command.html">Previous</a>
+                 <a href="distro_const.html">Previous</a>
              </td>
              <td align="right">
                  <a href="addl.html">Next</a>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/troublevm.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Troubleshooting During the Build - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="buildvmc.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="vmcblog.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Troubleshooting During the Build</a></p>
+</div>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="troublevm"></a><h3>Troubleshooting During the Build</h3>
+<p>The distribution constructor uses the automated installer to perform an installation inside the
+virtual machine. The auto installer, executing in the virtual machine client, is not
+able to communicate progress to the virtual machine host. Therefore, it is not
+possible for the distribution constructor to closely track the installation progress as it
+occurs inside the virtual machine client. When the installation is complete, the auto
+installer turns off the virtual machine, and the distribution constructor resumes its work.</p>
+<hr><p><b>Note - </b>If the auto-installer encounters an error that results in a failed installation, the
+virtual machine is not shutdown. Then the distribution constructor appears to &ldquo;hang,&rdquo; when
+it's actually waiting for the virtual machine to shutdown.</p>
+<hr>
+<p>You can monitor the progress of the automated installation as it is executing
+in the virtual machine client. Use the <tt>rdesktop</tt> utility found in the
+standard OpenSolaris IPS repositories, or use another remote desktop (RDP)-enabled client.</p><p>To connect to the console of a running virtual machine installation, do the
+following:</p>
+<ol><li><p>If it's not already installed, install the <tt>SUNWrdesktop</tt> package.</p><pre># pkg install SUNWrdesktop</pre></li>
+<li><p>Connect to the running virtual machine which appears to be hung.</p><pre># rdesktop -a 16 localhost:3389</pre></li></ol>
+<p>This command tells <tt>rdesktop</tt> to connect to the local machine on port 3389,
+with a 16-bit color depth for better performance.</p><p>The port number used in this command is the default port number
+used by the first virtual machine started on the host.  If you
+are running multiple invocations of the distribution constructor, then you should look in
+the distribution constructor's detailed log file to see what port the virtual machine
+is running under.  In the log file, you'll see lines such as:</p><pre>==== install-vm: Boot and Install virtual machine 
+
+Invoking: VBoxHeadless startvm OpenSolaris_VM
+VirtualBox Headless Interface 3.0.8
+(C) 2008-2009 Sun Microsystems, Inc.
+All rights reserved.
+
+Listening on port 3389</pre><p>The last line in the log file states that the virtual machine
+in question can be contacted on port 3389.  Once you run the
+<tt>rdesktop</tt> command, a GUI window opens where you can see the console
+for the running virtual machine.  You can log in to the console
+as follows:</p><pre>username: jack
+password: opensolaris</pre><p>Once you are logged in, you can debug the installation, just like
+any other automated installer client installation. See <a href="http://dlc.sun.com/osol/docs/content/dev/AIinstall/trouble.html">http://dlc.sun.com/osol/docs/content/dev/AIinstall/trouble.html</a>.</p>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="buildvmc.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="vmcblog.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- a/usr/src/cmd/distro_const/docs/using.html	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/cmd/distro_const/docs/using.html	Tue Feb 09 09:38:14 2010 -0800
@@ -1,11 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="en-US">
+
+<!--     -->
 <head>
+<!-- GenHTML revision 23224-->
 <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-<title>Using the Distribution Constructor - OpenSolaris Distribution Constructor Guide</title>
+<title>Design and Build OpenSolaris Images - OpenSolaris 2010.03 Distribution Constructor Guide</title>
 <meta name="robots" content="index,follow">
 <meta name="robots" content="index,follow">
-<meta name="date" content="2009-06-01">
+<meta name="date" content="2010-03-01">
 <meta name="collection" content="reference">
 <link rel="stylesheet" type="text/css" href="css/elements.css">
 <link rel="stylesheet" type="text/css" href="css/opensol.css">
@@ -18,7 +21,7 @@
    <div class="MastheadLogo">
       <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
    </div>
-   <div class="Title">OpenSolaris Distribution Constructor Guide</div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
 </div>
 <div class="headerbar"></div>
 
@@ -32,10 +35,10 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="files.html">Previous</a>
+                 <a href="diffs.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="manifest.html">Next</a>
+                 <a href="sysreq.html">Next</a>
              </td>
            </tr>
          </table>
@@ -45,28 +48,29 @@
    <tr valign="top">
       <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
 <p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
-<p class="toc level1 tocsp"><a href="setup.html">2.&nbsp;&nbsp;Setup for the Distribution Constructor</a></p>
-<div class="onpage">
-<p class="toc level1 tocsp"><a href="">3.&nbsp;&nbsp;Using the Distribution Constructor</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level1 tocsp"><a href="">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
 </div>
-<p class="toc level2"><a href="manifest.html">Editing the Manifest Files</a></p>
-<p class="toc level2"><a href="scripts.html">Using the Finalizer Scripts</a></p>
-<p class="toc level2"><a href="distro_const.html">Creating an Image</a></p>
-<p class="toc level2"><a href="command.html"><tt>distro_const</tt> Command Reference</a></p>
+<p class="toc level2"><a href="sysreq.html">System Requirements</a></p>
+<p class="toc level2"><a href="manifest.html">Customize Your Image by Editing the Manifests</a></p>
+<p class="toc level2"><a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a></p>
+<p class="toc level2"><a href="distro_const.html">Building an Image</a></p>
 <p class="toc level2"><a href="trouble.html">Troubleshooting</a></p>
 <p class="toc level2"><a href="addl.html">Additional Information</a></p>
-<p class="toc level1 tocsp"><a href="appendix.html">4.&nbsp;&nbsp;Appendix: Sample Manifest File</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
 </td>
       <td class="ContentPane" width="705px">
 
 	 <div class="MainContent">      	 
-             <a name="using"></a>Chapter&nbsp;3<h3>Using the Distribution Constructor</h3><p><b>Prerequisites:</b> If you have not used the distribution constructor before, read <a href="index.html">Chapter&nbsp;1, Introduction to the Distribution Constructor</a>. Then,
-install the application on your system, using the instructions at <a href="setup.html">Chapter&nbsp;2, Setup for the Distribution Constructor</a>.</p><p>Once you have installed the distribution constructor application on your system, you are
-ready to use this tool to design and build custom images. This process
-includes the following three basic steps:</p>
-<ul><li><p>Optional: <a href="manifest.html">Editing the Manifest Files</a></p></li>
-<li><p>Optional: <a href="scripts.html">Using the Finalizer Scripts</a></p></li>
-<li><p><a href="distro_const.html">Creating an Image</a></p></li></ul>
+             <a name="using"></a>Chapter&nbsp;2<h3>Design and Build OpenSolaris Images</h3><p><b>Before You Begin:</b> If you have not used the distribution constructor before, read <a href="index.html">Chapter&nbsp;1, Introduction to the Distribution Constructor</a>.</p>
+<ol><li><p>Review the <a href="sysreq.html">System Requirements</a> and install the distribution constructor application on your system. Then, perform the following steps to design and build custom images.</p>
+<hr><p><b>Note - </b>Building a virtual machine has unique instructions, different from the general instructions below. If you want to build a virtual machine, see <a href="vm.html">Chapter&nbsp;3, x86: Design and Build a Virtual Machine</a>.</p>
+<hr>
+</li>
+<li><p>Optional: <a href="manifest.html">Customize Your Image by Editing the Manifests</a>.</p></li>
+<li><p>Optional: <a href="scripts.html">Further Customize an Image Using Finalizer Scripts</a>.</p></li>
+<li><p><a href="distro_const.html">Building an Image</a>.</p></li></ol>
 
          </div>
       </td>
@@ -78,10 +82,10 @@
          <table width="100%">
       	   <tr>
       	     <td>
-                 <a href="files.html">Previous</a>
+                 <a href="diffs.html">Previous</a>
              </td>
              <td align="right">
-                 <a href="manifest.html">Next</a>
+                 <a href="sysreq.html">Next</a>
              </td>
            </tr>
          </table>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/vm.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>x86: Design and Build a Virtual Machine - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="addl.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="whatis.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level1 tocsp"><a href="">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+</div>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             <a name="vm"></a>Chapter&nbsp;3<h3>x86: Design and Build a Virtual Machine</h3><p><b>Starting with the OpenSolaris 2010.03 release</b>, you can use the distribution constructor to design and build a
+preinstalled OpenSolaris virtual machine . You can then distribute your customized virtual machine to
+your end users. See the following information.</p>
+<ul><li><p><a href="whatis.html">What is a Virtual Machine?</a></p></li>
+<li><p><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p></li>
+<li><p><a href="buildvm.html">How to Build a Virtual Machine</a></p></li>
+<li><p><a href="troublevm.html">Troubleshooting During the Build</a></p></li></ul>
+
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="addl.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="whatis.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/vmcblog.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>Further Information - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="troublevm.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="appendix.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">Further Information</a></p>
+</div>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="vmcblog"></a><h3>Further Information</h3>
+<p>Additional information and resources for building virtual machines are available at the following
+sites.</p>
+<ul><li><p>Send questions or comments about building virtual machines to <tt>[email protected]</tt>. Submit bugs or enhancement requests to <a href="http://defect.opensolaris.org">http://defect.opensolaris.org</a>.</p></li>
+<li><p>For further troubleshooting help, see the Release Notes at <a href="http://www.opensolaris.com/use/">http://www.opensolaris.com/use/</a>.</p></li></ul>
+
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="troublevm.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="appendix.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/vmsysreq.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>System Requirements for Building Virtual Machines - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="whatis.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="buildvm.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="whatis.html">What is a Virtual Machine?</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">System Requirements for Building Virtual Machines</a></p>
+</div>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="vmsysreq"></a><h3>System Requirements for Building Virtual Machines</h3>
+<h6>Table&nbsp;3-1 System Requirements Table</h6><table><col width="28%"><col width="71%"><tr><th align="left" valign="top" scope="column"><p>Requirement</p></th>
+<th align="left" valign="top" scope="column"><p>Description</p></th>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p>40 GB Disk
+space</p></td>
+<td align="left" valign="top" scope="row"><p>To use the default distribution constructor and the default manifests, you need about
+40 GB of free disk space in the ZFS dataset on the
+host system where the virtual machine image will be built. The actual space
+needed depends in part on how many packages that you choose to install
+in the image.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p>4 GB Memory</p></td>
+<td align="left" valign="top" scope="row"><p>You need about 4 GB memory on the
+host system in order to run a VirtualBox guest, the operating system, and
+the distribution constructor. That total includes about 1GB for running the Virtual Machine,
+and about 3 GB for running the operating system and the distribution constructor.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p>OpenSolaris
+2010.03 release or later</p></td>
+<td align="left" valign="top" scope="row"><p>Install the x86 OpenSolaris operating system (OS) on the
+host system.</p><p>The OpenSolaris release version on your system must be the same
+as the release version of the AI images that you use with the
+distribution constructor.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p>Network access</p></td>
+<td align="left" valign="top" scope="row"><p>The distribution constructor makes use of an automated installer (AI) image
+and an AI client manifest in order to perform an installation inside the
+virtual machine.  The host system running the distribution constructor needs to have
+network access to an IPS repository, such as <a href="http://pkg.opensolaris.org">http://pkg.opensolaris.org</a>, that is specified
+in the AI client manifest. This manifest also provides a list of packages
+to be installed from the specified IPS repository.</p>
+<hr><p><b>Note - </b>You must run the distribution constructor
+as root on the host system.</p>
+<hr>
+</td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p>VirtualBox, version 3.0.12</p></td>
+<td align="left" valign="top" scope="row"><p>You must have VirtualBox installed on
+the host system.</p></td>
+</tr>
+<tr><td align="left" valign="top" scope="row"><p><tt>SUNWdistro-const</tt> package</p></td>
+<td align="left" valign="top" scope="row"><p>Install the most recent copy of the <tt>SUNWdistro-const</tt> package,
+which contains the distribution constructor application, on the host system.</p>
+<hr><p><b>Note - </b>You can use the
+Package Manager tool to install the required package. The Package Manager is available
+on the menu bar on the desktop of the OpenSolaris operating system. On
+the menu bar, go to System>Administration>Package Manager.</p><p>Alternately, use IPS commands such as
+the following to install this package:</p><pre># <tt>pkg install <i>SUNWdistro-const</i></tt></pre>
+<hr>
+</td>
+</tr>
+</table>
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="whatis.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="buildvm.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/docs/whatis.html	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+
+<!--     -->
+<head>
+<!-- GenHTML revision 23224-->
+<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
+<title>What is a Virtual Machine? - OpenSolaris 2010.03 Distribution Constructor Guide</title>
+<meta name="robots" content="index,follow">
+<meta name="robots" content="index,follow">
+<meta name="date" content="2010-03-01">
+<meta name="collection" content="reference">
+<link rel="stylesheet" type="text/css" href="css/elements.css">
+<link rel="stylesheet" type="text/css" href="css/opensol.css">
+</head>
+
+<body>
+
+
+<div class="Masthead">
+   <div class="MastheadLogo">
+      <a href="http://www.opensolaris.com"><img border="0" src="graphics/opensolaris_logo_trans.png"></img></a>
+   </div>
+   <div class="Title">OpenSolaris 2010.03 Distribution Constructor Guide</div>
+</div>
+<div class="headerbar"></div>
+
+
+<table class="Layout" border="0" cellspacing="0" width="100%">
+<tbody>
+
+   <tr valign="top" class="PageControls">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="vm.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="vmsysreq.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+   
+   <tr valign="top">
+      <td class="Navigation" width="200px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
+<p class="toc level1 tocsp"><a href="index.html">1.&nbsp;&nbsp;Introduction to the Distribution Constructor</a></p>
+<p class="toc level1 tocsp"><a href="using.html">2.&nbsp;&nbsp;Design and Build OpenSolaris Images</a></p>
+<p class="toc level1 tocsp"><a href="vm.html">3.&nbsp;&nbsp;x86: Design and Build a Virtual Machine</a></p>
+<div id="scrolltoc" class="onpage">
+<p class="toc level2"><a href="">What is a Virtual Machine?</a></p>
+</div>
+<p class="toc level2"><a href="vmsysreq.html">System Requirements for Building Virtual Machines</a></p>
+<p class="toc level2"><a href="buildvm.html">How to Build a Virtual Machine</a></p>
+<p class="toc level2"><a href="bootimage.html">Get an AI Boot Image</a></p>
+<p class="toc level2"><a href="customvmc.html">Optional: Customize Build Specifications</a></p>
+<p class="toc level2"><a href="buildvmc.html">Build the Virtual Machine</a></p>
+<p class="toc level2"><a href="troublevm.html">Troubleshooting During the Build</a></p>
+<p class="toc level2"><a href="vmcblog.html">Further Information</a></p>
+<p class="toc level1 tocsp"><a href="appendix.html">A.&nbsp;&nbsp;Custom Finalizer Scripts -- Examples</a></p>
+</td>
+      <td class="ContentPane" width="705px">
+
+	 <div class="MainContent">      	 
+             
+
+<a name="whatis"></a><h3>What is a Virtual Machine?</h3>
+<p>A <b>virtual machine</b> is a tightly-isolated software container that can run its own operating
+system and applications as if it were a physical computer. A virtual machine
+(VM) behaves exactly like a physical computer. A VM contains it own virtual
+hardware, such as a software-based CPU, RAM, hard disk, and network interface card
+(NIC). The VM that you create with the distribution constructor will include an
+OpenSolaris operating system preinstalled in the virtual machine.</p><p><b>VirtualBox</b> is an x86 virtualization application which facilitates the creation of virtual machines.</p>
+
+<a name="vmimage"></a><h4>What is the Final Product?</h4>
+<p>When the distribution constructor builds a virtual machine, the virtual machine is exported
+in three formats by default, and stores as a set of files in
+the <tt>&lt;build_area>/media</tt> directory on the host system.</p>
+<hr><p><b>Note - </b>A <b>host</b> system is the system on which you run the distribution constructor
+and build a virtual machine.</p><p>A <b>client</b> system is the system on which you deploy a virtual machine.</p>
+<hr>
+<p>The files are stored in the following sub-directories and formats.</p>
+<ul><li><p><tt>build_area/media/esx</tt> &ndash; Virtual machine files in a format suitable for VMware's ESX/ESXi product.</p></li>
+<li><p><tt>build_area/media/ovf</tt> &ndash; Virtual machine files in an OVF format for hypervisors that can import such a format.</p>
+<hr><p><b>Note - </b>OVF is an industry-standard, platform-independent format for virtual machines.</p>
+<hr>
+</li></ul>
+<p>The files in each folder are virtual machine images which can be
+distributed to end users. You can burn the files to a DVD and
+distribute the DVD to the end users. Or, you could make the files
+available to end users by posting the files on the network.</p>
+<hr><p><b>Note - </b>Another end product is an XML file that records, just for reference, the
+settings that the distribution constructor used to configure the virtual machine.</p>
+<hr>
+
+         </div>
+      </td>
+   </tr>
+
+   <tr class="PageControls" valign="top">
+      <td></td>
+      <td>
+         <table width="100%">
+      	   <tr>
+      	     <td>
+                 <a href="vm.html">Previous</a>
+             </td>
+             <td align="right">
+                 <a href="vmsysreq.html">Next</a>
+             </td>
+           </tr>
+         </table>
+      </td>
+   </tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+
--- a/usr/src/man/Makefile	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/man/Makefile	Tue Feb 09 09:38:14 2010 -0800
@@ -19,17 +19,21 @@
 # CDDL HEADER END
 #
 
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 
 include ../Makefile.master
 
-MANPAGES = beadm.1m distro_const.1m installadm.1m
+MANPAGES1M = beadm.1m distro_const.1m installadm.1m
+MANPAGES4 = dc_manifest.4
 
 FILEMODE = 0444
 
-ROOTMANPAGES = $(MANPAGES:%=$(ROOTMAN1M)/%)
+ROOTMANPAGES1M = $(MANPAGES1M:%=$(ROOTMAN1M)/%)
+ROOTMANPAGES4 = $(MANPAGES4:%=$(ROOTMAN4)/%)
+
+MANPAGES = $(MANPAGES1M) $(MANPAGES4)
 
 all :=		TARGET = all
 clean :=	TARGET = clean
@@ -46,7 +50,10 @@
 
 clobber: clean
 
-install: all $(ROOTMANPAGES)
+install: all $(ROOTMANPAGES1M) $(ROOTMANPAGES4)
 
 $(ROOTMAN1M)/%: %.txt
 	$(INS.rename)
+
+$(ROOTMAN4)/%: %.txt
+	$(INS.rename)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/man/dc_manifest.4.txt	Tue Feb 09 09:38:14 2010 -0800
@@ -0,0 +1,424 @@
+System Administration Commands          dc_manifest(4)
+
+NAME
+
+    dc_manifest - Customizing fields in the manifests 
+    for the distribution constructor
+
+
+SYNOPSIS
+
+    The following manifest files can be used to build  
+    various OpenSolaris images. These manifests 
+    are included in the SUNWdistro_const package. 
+
+    To build an x86 virtual machine image with 
+    OpenSolaris:
+    /usr/share/distro_const/vmc/vmc_image.xml
+
+    For x86 OpenSolaris OS images:
+    /usr/share/distro_const/slim_cd/
+    all_lang_slim_cd_x86.xml
+
+    For x86 OpenSolaris OS image with limited 
+    languages:
+    /usr/share/distro_const/slim_cd/slim_cd_x86.xml
+
+    For SPARC automated installation images:
+     /usr/share/distro_const/auto_install/
+    ai_sparc_image.xml
+
+    For x86 automated installations images:
+    /usr/share/distro_const/auto_install/
+    ai_x86_image.xml
+
+
+DESCRIPTION
+
+    You can use the distribution constructor to build 
+    preconfigured OpenSolaris images to distribute to 
+    your contacts. 
+
+    XML manifest files are used as input to the 
+    distribution constructor. These manifests define the 
+    image that the distribution constructor builds. Per the 
+    list above, use different manifests to build different 
+    kinds of images.  
+  
+    Use the distro_const command to build images,
+    referencing a manifest file in the command.
+
+    If you want customize the image specifications, 
+    copy a manifest file, customize the copy, and use 
+    the copy as input for the distro_const command 
+    when you build the image.
+
+    Some of the more common fields to change in a
+    manifest include:
+    * Names of the packages to be included in the image
+    * Network location of the repository where packages
+      are stored
+    * Name and location of scripts used to finalize the
+      the new image
+
+    Note: When using the distribution constructor, you 
+    can only create SPARC images on a SPARC system. 
+    And, you can only create x86 images on an x86 
+    system. And, the operating system release version 
+    on your system must be the same release version 
+    as the image that you are building.
+
+

+PRIMARY MANIFEST FIELDS
+
+    All the manifests include the following editable
+    fields. 
+
+
+ <distribution name="OpenSolaris">
+    
+    This field provides the name of OpenSolaris
+    for the distribution, that is, the image, that you plan to
+    build. You can leave this name or type a unique
+    name for your distribution.
+

+<build_area>
+
+    This field specifies the area where the image will
+    be created. You must check that the path specified 
+    is valid for your system and revise as needed.
+
+    If you want to use checkpointing, you must specify a
+    ZFS dataset, or a mount point that correlates to a 
+    ZFS dataset, as your build area. If the ZFS dataset 
+    does not exist, it will be created. The zpool that you 
+    specify, however, must already exist.
+
+    If you do not want to use checkpointing, you can use
+    either a regular mount point or a ZFS or UFS file system.
+
+    Note - After an image has been created, the build area
+    for that image has the following structure.
+
+      <build_area>/build_data/pkg_image
+           Package image area.
+      <build_area>/build_data/boot_archive
+           boot archive build area.
+     <build_area>/build_data/tmp
+           Temporary directory used by the distribution
+           constructor and by finalizer scripts.
+     <build_area>/media
+           Area where the output images are placed.
+     <build_area>/logs
+           Area that holds log files which record the steps
+           executed by the application and the output from
+           all commands. The "simple" log, named
+           simple-log-YYYY-MM-DD-HH-Mi-SS,
+           contains only errors (stderr). The "detail" log, 
+           named detail-log-YYYY-MM-DD-HH-Mi-SS,
+           contains informational output (stdout) and 
+           errors. The console echos information in the
+           "simple" log file.
+
+
+ <distro_constr_flags>
+      <stop_on_error>true</stop_on_error>
+      <checkpoint_enable>
+              true
+      </checkpoint_enable>
+ </distro_constr_flags>  
+      The <stop_on_error> field controls whether the build
+      should stop if there is an error. The value is set at 
+      true.
+
+      Use checkpointing to insert optional pauses between
+      the steps of building an image.The value, true, in the 
+      <checkpoint_enable> field enables checkpointing.
+
+      Note: Checkpointing requires ZFS file systems.
+
+      The <resume_from> attribute subfield for
+      the <checkpoint_enable> field lets you specify 
+      the step to resume the build from. This value would
+      be overridden by the distro_const command with 
+      the -r option.
+     
+     Valid values for the <resume_from> field are the step
+     names. Use the distro_const command with the -l
+     option to list available step names.
+
+
+
+ADDITIONAL MANIFEST FIELDS
+ 
+    All the manifests, except for the virtual machine
+    manifest, include the following editable fields.
+
+
+ <pkg_repo_default_authority>
+      <main url="http://pkg.opensolaris.org/release"
+        authname="opensolaris.org"/>
+ </pkg_repo_default_authority>
+
+      This field specifies the location of an IPS repository.
+      The repository is made available by an IPS publisher,
+      also called an authority. The distribution constructor 
+      retrieves packages from the repository when it builds
+      an image.
+
+     The repository location above is set at:
+     http://pkg.opensolaris.org/release
+
+     And, the authority (publisher) is set as opensolaris.org.
+
+      Modify the URL and authname fields to point to a 
+      different repository, if needed. 
+
+      Note: If you want to use an OpenSolaris development 
+      build, change /release to /dev.
+
+      If you want to use one or more mirrors for an authority,
+      or publisher, uncomment the mirror subfield, and specify
+      the mirror urls in this field:      
+      <mirror url="" />
+
+
+ <pkg_repo_addl_authority>
+
+      This field specifies a repository to be used when the 
+      main repository is unavailable. This field uses the
+      same format as the main repository field.
+
+ <packages>
+     <pkg name="entire"/>
+     <pkg name="SUNWcsd"/>
+     <pkg name="SUNWcs"/>
+     <pkg name="slim_install"/>
+     <pkg name="SUNWslim-utils"/>
+ </packages>
+
+      This field lists the packages to be included in the
+      image. The packages provided will build the
+      OpenSolaris Live CD image. If you have packages 
+      that you want to add to the image, list your packages 
+      in this field, one package per line.
+
+      Note: “entire” is an incorporation. “slim_install” is 
+      a cluster. Both contain many packages.
+
+      Note: Due to dependency issues, SUNWcsd and
+      SUNWcs must be listed first in the package list, and
+      SUNWcsd must precede SUNWcs.
+
+      The latest build available in the specified IPS 
+      repository will be installed. If another build is 
+      required, the build number has to be appended 
+      to 'entire' in following form:
+
+           <pkg_name="[email protected]#/>
+
+
+ <post_install_remove_packages>
+      <pkg name="babel_install"/>
+      <pkg name=”slim_install”/>
+ </post_install_remove_packages>
+      
+      If you want to remove individual packages from a 
+      cluster, list the individual packages in this field, 
+      one package per line.
+
+      Note - The default manifest first installs the 
+      babel_install package, then uninstalls it. babel_install 
+      is a cluster consisting of set of packages. When the 
+      babel_install cluster is installed, all the packages in 
+      the cluster are installed. However, you cannot 
+      uninstall packages that belong to a cluster. By 
+      uninstalling the cluster definition, the individual 
+      packages can be deleted later. babel_install is 
+      used for convenience to install all the required 
+      packages, but the cluster definition is not needed 
+      once installation of packages is completed. The 
+      default manifest removes the cluster definition, 
+      so that further customization of the packages can 
+      be done.
 slim_install is another cluster. And, 
+      slim_install is part of babel_install which is installed 
+      by the default manifest. The default manifest then 
+      uninstalls slim_install, in order to permit customization.
+
+
+ <live_img_compression type="lzma"/>
+
+      Use this field to specify how the solarismisc.zlib 
+      archive will be compressed. Valid compression 
+      types are lzma, gzip, and none.
+
+
+ <grub_menu_modifications>
+
+      You can edit the GRUB menu contents here
+      and add a custom title to the menu. See the 
+      comments in the manifest file for details.
+
+
+ <boot_archive_contents>
+      This section lists the files and directories that
+      will be included in the boot archive for the image that 
+      is built. See the comments in the manifest file for
+      information.
+
+      Files or directories that need to be excluded from 
+      the image are specified with the base_exclude 
+      tag.
+
+      Caution – Modifying the boot archive contents could
+      render the system unbootable. If you do add files or
+      directories, use the base_include tag as show in
+      the manifest and these examples:
+
+         <base_include type="file">
+              var/yp/nickname
+         </base_include>
+      
+         <base_include type="dir">
+             kernel
+         </base_include>
+
+      The boot archive for x86 images differs from the boot
+      archive for SPARC images. The whole boot archive 
+      for x86 images is a UFS filesystem,
+      compressed by using gzip. The SPARC platform does
+      not support the compression of the whole boot archive
+      in this way. Instead, SPARC boot archives use DCFS,
+      which compress each file individually. These
+      individually compressed files might require specific
+      handling in the manifest.
+
+      During boot time, some of the files in the boot archive
+      need to be modified. But, compressed files cannot be
+      modified. Therefore, for SPARC images, you need to
+      specify in the manifest which files should not be
+      compressed. See the boot_archive_archive.py script,
+      referenced in the finalizer section of the manifest,
+      for the default list of boot_archive files which are not
+      compressed. You must explicitly list any file that needs
+      to be stored in the boot_archive in an uncompressed
+      state, and you must set that file's fiocompress attribute 
+      to false.
+
+
+
+FINALIZER SECTION
+
+    In all manifests, the <finalizer> section lists the
+    finalizer scripts that the distribution constructor
+    invokes when building an image, and the order in
+    which the distribution constructor invokes them.
+
+    Finalizer scripts transform the image into a
+    media-specific distribution. A set of finalizer
+    scripts are provided in the SUNWdistro_const
+    package.
+
+    All finalizer scripts are passed a standard set of five 
+    arguments as their first arguments. See a finalizer 
+    script header for more information. Some scripts, 
+    such as those used to build virtual machine images, 
+    require additional arguments. The are defined in the 
+    <argslist> field within the <script_name> field. 
+    These arguments are passed to the scripts beginning 
+    as the sixth argument.
+
+    You do have the option to write and add your own 
+    scripts. If you do create new scripts, modify the 
+    manifest to point to them.
+
+    You do not need to edit the <finalizer> section 
+    unless you add new finalizer scripts, or you 
+    change the name or the argslist of existing scripts.
+ 
+    The basic format for each script reference in the
+    <finalizer> section is as follows:
+
+    <finalizer>
+       ...
+      <script name="/usr/share/distro_const/im_pop.py">
+           <checkpoint
+                name="im-pop"
+                message="Image area creation"/>
+           <argslist>
+                "16000"
+                "1536"
+                "opensolaris"
+           </argslist>
+      </script>
+      ...
+    </finalizer>
+          
+       The <script name> field provides the name and
+       the location of a script.
+
+       The <checkpoint> field specifies a checkpoint 
+       name and is required. This field is used to specify 
+       a checkpoint when pausing and resuming a build. 
+       The checkpoint name corresponds to the point in 
+       the build just before the script associated with that 
+       checkpoint is run. See the distro_const(1M) man 
+       page.      
+
+       The checkpoint message attribute is optional. The
+       checkpoint message is displayed when the step is 
+       run.
+
+       For information about the existing finalizer scripts, 
+       creating and using custom finalizer scripts, and
+       editing script arguments, see
+       http://dlc.sun.com/osol/docs/content/dev/
+       DistroConst/scripts.html
+
+     
+KEY VALUE PAIRS FIELD
+
+ <key_value_pairs>
+      ...
+      <pair key="iso_sort"
+           value="/usr/share/distro_const/slim_cd/
+           slimcd_iso.sort"/>
+ </key_value_pairs>
+       
+      This field provides additional specifications that
+      are needed by the distribution constructor or by
+      finalizer scripts.
+
+      You do not need to edit the key-value pairs 
+      except to add new ones that will be recognized by 
+      new or customized finalizer scripts.
+
+      For information about using key-value pairs, see
+      http://dlc.sun.com/osol/docs/content/dev/DistroConst/
+      scripts.html
+
+
+ATTRIBUTES
+
+  /usr/share/man/man4/dc_manifest4
+
+  ATTRIBUTE TYPE        ATTRIBUTE VALUE
+
+  Availability          SUNWdistro-const
+
+  Interface Stability   In Development
+
+
+SEE ALSO
+
+ distro_const(1M) man page
+
+  OpenSolaris Distribution Constructor Guide
+  at /usr/share/doc/distro_const/index.html or at
+  http://dlc.sun.com/osol/docs/content/dev/DistroConst/
+
+
+OpenSolaris 2010.03  Last Changed February 7, 2010
+
--- a/usr/src/man/distro_const.1m.txt	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/man/distro_const.1m.txt	Tue Feb 09 09:38:14 2010 -0800
@@ -182,6 +182,9 @@
     Interface Stability   In Development
 
 SEE ALSO
+   
+    dc_manifest(4) at
+    /usr/share/man/man4/dc_manifest.4
 
     OpenSolaris Distribution Constructor Guide
     at /usr/share/doc/distro_const/index.html or at
@@ -191,4 +194,4 @@
     http://dlc.sun.com/osol/docs/content/dev/getstart/
     getstart
 
-OpenSolaris 2009.06  Last Changed April 30, 2009
+OpenSolaris 2010.03  Last Changed January 25, 2010
--- a/usr/src/pkgdefs/SUNWdistro-const/prototype_com	Tue Feb 09 16:10:25 2010 +0000
+++ b/usr/src/pkgdefs/SUNWdistro-const/prototype_com	Tue Feb 09 09:38:14 2010 -0800
@@ -133,10 +133,17 @@
 #
 d none usr/share/doc 0755 root other
 d none usr/share/doc/distro_const 0755 root bin
+f none usr/share/doc/distro_const/addimage.html 0444 root bin
 f none usr/share/doc/distro_const/addl.html 0444 root bin
+f none usr/share/doc/distro_const/addpkg.html 0444 root bin
 f none usr/share/doc/distro_const/appendix.html 0444 root bin
+f none usr/share/doc/distro_const/bootimage.html 0444 root bin
+f none usr/share/doc/distro_const/buildvm.html 0444 root bin
+f none usr/share/doc/distro_const/buildvmc.html 0444 root bin
 f none usr/share/doc/distro_const/command.html 0444 root bin
+f none usr/share/doc/distro_const/customvmc.html 0444 root bin
 f none usr/share/doc/distro_const/diffs.html 0444 root bin
+f none usr/share/doc/distro_const/distconstguide.html 0444 root bin
 f none usr/share/doc/distro_const/distro_const.html 0444 root bin
 f none usr/share/doc/distro_const/distroconst.html 0444 root bin
 f none usr/share/doc/distro_const/docinfo.html 0444 root bin
@@ -149,8 +156,14 @@
 f none usr/share/doc/distro_const/scripts.html 0444 root bin
 f none usr/share/doc/distro_const/setup.html 0444 root bin
 f none usr/share/doc/distro_const/sysreq.html 0444 root bin
+f none usr/share/doc/distro_const/testpkg.html 0444 root bin
 f none usr/share/doc/distro_const/trouble.html 0444 root bin
+f none usr/share/doc/distro_const/troublevm.html 0444 root bin
 f none usr/share/doc/distro_const/using.html 0444 root bin
+f none usr/share/doc/distro_const/vm.html 0444 root bin
+f none usr/share/doc/distro_const/vmcblog.html 0444 root bin
+f none usr/share/doc/distro_const/vmsysreq.html 0444 root bin
+f none usr/share/doc/distro_const/whatis.html 0444 root bin
 d none usr/share/doc/distro_const/css 0755 root bin
 f none usr/share/doc/distro_const/css/advanced.css 0444 root bin
 f none usr/share/doc/distro_const/css/elements.css 0444 root bin
@@ -164,4 +177,6 @@
 #
 d none usr/share/man 0755 root bin
 d none usr/share/man/man1m 0755 root bin
+d none usr/share/man/man4 0755 root bin
 f none usr/share/man/man1m/distro_const.1m 0444 root bin
+f none usr/share/man/man4/dc_manifest.4 0444 root bin